TVMenu
Fuente: source/classes/VMenu.prg
Hereda de: TControl
TVMenu es un panel estilo ExplorerBar que muestra una lista de objetos TVItem.
Soporta encabezado colapsable, animacion de abrir/cerrar, multiples estilos de seleccion
(SOLID, INSET, XBOX, BUMP, ETCHED, RAISED, UNDERLINE), fondos con degradado y
renderizado con temas. TVMenu es el contenedor padre de los objetos TVItem, que se
anaden automaticamente al array aItems del menu al crearse.
TC5ImgList (oImageList) está en
source/classes/tc5imglst.prg y se enlaza desde
FiveH.lib (32 bits) y, desde 26.08, desde
Five64.a / Fivexh64.a (FWH64). Sample:
samples/test/vmenu_test.prg
(build_new.bat vmenu_test hb64).
Constructor New()
TVMenu():New( nTop, nLeft, nWidth, nHeight, oWnd, bAction, nClrText, nClrPane,;
oFont, lBorder, nClrBorder, nHItem, cTextAlign, under, nMargen,;
nClrPSel, nSpeed, selmode, bChange, nClrTSel, oAttach,;
nClrTOver, nClrPOver, nClrPOver2, nClrPSel2,;
lVGradSel, lMGradSel, nClrPane2, cWaterMark )
| Parametro | Tipo | Descripcion |
|---|---|---|
| nTop, nLeft | Numerico | Posicion en pixeles |
| nWidth, nHeight | Numerico | Dimensiones en pixeles |
| oWnd | TWindow | Ventana padre |
| bAction | Bloque | Accion por defecto para los items |
| nClrText | Numerico | Color de texto (por defecto: blanco) |
| nClrPane | Numerico | Color de fondo (por defecto: gris claro) |
| oFont | TFont | Fuente para el texto de los items |
| lBorder | Logico | Mostrar borde (por defecto: .f.) |
| nHItem | Numerico | Altura minima de item en pixeles |
| cTextAlign | Caracter | "LEFT", "CENTER", "RIGHT", "MULTILINE" |
| under | Caracter | Estilo de seleccion: "SOLID", "INSET", "XBOX", etc. |
| selmode | Caracter | Modo de relleno: "FILLED", "NONE", "DOTS", etc. |
| bChange | Bloque | Se ejecuta al cambiar la seleccion |
| cWaterMark | Caracter | Nombre del archivo bitmap para marca de agua |
Metodos
| Metodo | Retorna | Descripcion |
|---|---|---|
SetTitle(cCaption, nHTitle, oFont, ...) | nil | Establecer encabezado colapsable |
CollapseToggle() | nil | Alternar estado colapsado/expandido |
NextItem() | nil | Mover seleccion al siguiente item |
PrevItem() | nil | Mover seleccion al item anterior |
ResizeItems() | nil | Recalcular posiciones de items |
Miembros DATA Principales
| DATA | Tipo | Descripcion |
|---|---|---|
aItems | Array | Array de objetos TVItem |
nOption | Numerico | Indice del item seleccionado actualmente |
cTitle | Caracter | Texto del titulo |
lBorder | Logico | Mostrar borde |
nHItem | Numerico | Altura minima de item |
oImageList | TC5ImgList | Lista de imagenes para bitmaps de items |
Ejemplo
local oMenu, oItem DEFINE VMENU oMenu OF oWnd ; SIZE 220, 380 ; COLORS RGB(55,65,80), RGB(245,246,248) ; BORDER ; ITEMHEIGHT 40 ; STYLE "SOLID" ; SELMODE "FILLED" oMenu:SetTitle( "Explorador", 28, oFont, ; RGB(255,255,255), RGB(70,130,180) ) VMENUITEM PROMPT "Inicio" OF oMenu VMENUITEM PROMPT "Documentos" OF oMenu VMENUITEM SEPARATOR OF oMenu VMENUITEM PROMPT "Configuracion" OF oMenu VMENUITEM PROMPT "Ayuda" OF oMenu
Comandos Preprocesador
DEFINE VMENU
Crea un panel TVMenu (estilo ExplorerBar) dentro de una ventana.
DEFINE VMENU [ oMenu ] ; [ AT nTop, nLeft ] ; [ SIZE nWidth, nHeight ] ; [ OF oWnd ] ; [ ACTION bAction ] ; [ COLORS nClrText [, nClrPane] ] ; [ FONT oFont ] ; [ BORDER ] ; [ BORDERCOLOR nClrBorder ] ; [ ITEMHEIGHT nHItem ] ; [ TEXTCENTER | TEXTRIGHT | TEXTMULTILINE ] ; [ STYLE "SOLID" | "INSET" | "XBOX" | "BUMP" ] ; [ MARGEN nMargen ] ; [ SELECTCOLOR nClrPSel ] ; [ SELMODE "FILLED" | "NONE" | "DOTS" ] ; [ ON CHANGE bChange ] ; [ SELECTTEXTCOLOR nClrTSel ] ; [ VGRADSEL ] ; [ PANE2COLOR nClrPane2 ] ; [ WATERMARK cWaterMark ]
REDEFINE VMENU
Redefine un TVMenu desde un recurso de dialogo.
REDEFINE VMENU [ oMenu ] ; [ ID nId ] ; [ OF oWnd ] ; [ ACTION bAction ] ; [ COLORS nClrText [, nClrPane] ] ; [ FONT oFont ] ; [ BORDER ] ; [ BORDERCOLOR nClrBorder ] ; [ ITEMHEIGHT nHItem ] ; [ TEXTCENTER | TEXTRIGHT | TEXTMULTILINE ] ; [ STYLE "SOLID" | "INSET" | "XBOX" ] ; [ SELMODE "FILLED" | "NONE" | "DOTS" ] ; [ ON CHANGE bChange ] ; [ SELECTTEXTCOLOR nClrTSel ]
VMENUITEM
Crea un TVItem y lo anade automaticamente al menu padre.
VMENUITEM [ oItem ] ; [ OF oMenu ] ; [ PROMPT cText ] ; [ BITMAP cBmp ] ; [ GROUP | HEADER ] ; [ COLORS nClrText [, nClrPane] ] ; [ TEXTCENTER | TEXTRIGHT | TEXTMULTILINE ] ; [ IMAGECENTER | IMAGERIGHT ] ; [ HEIGHT nHeight ] ; [ SEPARATOR | LINE | INSET | DOTDOT ] ; [ ACTION bAction ] ; [ POPUP oPopup ] ; [ WHEN bWhen ] ; [ TOOLTIP cToolTip ]