Io l'ho acquistata da Paco ma mi resta difficile creare una finestra diversa dagli esempi della classe
Per esempio volevo costruire una finestra tipo il programma di alanit
l'autore ( alanit) mi ha inviato che usa vtaskbar con Tfsdi
probabilmente sbaglio qualcosa ma a me non mi viene niente anzi mi disegna una finestra un po stretta e lunga diversa da come è nella figura
il codice della finesta d'esempio inviata da alanit è la seguente
Code: Select all
Function Dialogo1()
oApp():oDlg := TFsdi():New( oApp():oWndMain )
oApp():oDlg:cTitle := i18n( "Gestión de Idiomas" )
oBrw := TXBrowse():New( oApp():oDlg )
oBrw:nTop := 00
oBrw:nLeft := nBrwSplit+2
oBrw:nBottom := ( oApp():oDlg:nHeight() - 22 ) / 2
oBrw:nRight := ( oApp():oDlg:nWidth() ) / 2
setBrwConfig( oBrw )
oBrw:cAlias := "ID"
oCol := oBrw:AddCol()
oCol:bStrData := { || ID->Idioma }
oCol:cHeader := i18n( "Idioma" )
oCol:nWidth := 479
aEval( oBrw:aCols, { |oCol| oCol:bLDClickData := { || IdForm( oBrw,"edt", oCont ) } } )
oBrw:SetRDD()
oBrw:CreateFromCode()
oApp():oDlg:oClient := oBrw
oBrw:RestoreState( cBrwState )
oBrw:bChange := { || RefreshCont( oCont, "ID" ) }
oBrw:bKeyDown := { |nKey| IdTecla( nKey, oBrw, oCont, oApp():oDlg ) }
oBrw:nRowHeight := 21
@ 05, 05 VMENU oCont SIZE nBrwSplit-10, 18 OF oApp():oDlg ;
COLOR CLR_BLACK, GetSysColor(15) ;
COLORBORDE RGB( 0, 0, 0 ) ;
FILLED UNDERLINE ; // BORDER
COLORSELECT 0, CLR_WHITE ;
HEIGHT ITEM 22 BORDER
DEFINE TITLE OF oCont ;
CAPTION strZero( ID->( ordKeyCount() ), 6 ) ;
HEIGHT 25 ;
COLOR GetSysColor(9), GetSysColor(2) ;
IMAGE "BB_IDIOMAS" ;
RADIOBTN 15 ROUNDSQUARE FONT oFont
@ 27, 05 VMENU oBar SIZE nBrwSplit-10, 125 OF oApp():oDlg ;
COLOR CLR_BLACK, GetSysColor(15) ;
COLORBORDE RGB( 0, 0, 0 ) ;
FILLED UNDERLINE ; // BORDER
COLORSELECT 0, CLR_WHITE ;
HEIGHT ITEM 22 BORDER
DEFINE TITLE OF oBar ;
CAPTION i18n( "idiomas" ) ;
HEIGHT 25 ;
COLOR GetSysColor(9), GetSysColor(2) ;
OPENCLOSE RADIOBTN 15 ROUNDSQUARE
DEFINE VMENUITEM OF obar ;
HEIGHT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Nuevo" ;
IMAGE "SH_NUEVO" ;
ACTION ( IdForm( oBrw, "add", oCont, ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Modificar" ;
IMAGE "SH_MODIF" ;
ACTION ( IdForm( oBrw, "edt", oCont ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Duplicar" ;
IMAGE "SH_DUPLICA" ;
ACTION ( IdForm( oBrw, "dup", oCont ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Borrar" ;
IMAGE "SH_BORRAR" ;
ACTION ( IdDel( oBrw, oCont ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Buscar" ;
IMAGE "SH_BUSCA" ;
ACTION ( IdSeek( oBrw, oCont, ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Imprimir" ;
IMAGE "SH_IMPRIMIR" ;
ACTION ( IdPrint( oBrw ) ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
INSET HEIGHT 15
DEFINE VMENUITEM OF oBar ;
CAPTION "Configurar rejilla" ;
IMAGE "SH_GRID" ;
ACTION ( CfgRejilla( oBrw, "IdState" ), oBrw:setFocus() ) ;
LEFT 10
DEFINE VMENUITEM OF oBar ;
CAPTION "Salir" ;
IMAGE "SH_SALIR" ;
ACTION ( oApp():oDlg:End() ) ;
LEFT 10
@ ( oApp():oDlg:nHeight / 2 ) - 11, nBrwSplit+2 TABS oTab ;
OPTION nBrwOrder ;
SIZE oApp():oWndMain:nWidth() - 80, 12 ;
PIXEL ;
OF oApp():oDlg ;
ITEMS " Idioma " ;
COLOR CLR_BLACK, GetSysColor(15) - rgb( 30, 30, 30 ) ;// 13362404
ACTION ( IdTabs( oBrw, nBrwOrder, oCont ) )
@ 00, nBrwSplit SPLITTER oSplit ;
VERTICAL ;
PREVIOUS CONTROLS oCont, oBar ;
HINDS CONTROLS oBrw, oTab ;
SIZE 1, (oApp():oDlg:nHeight/2)+1 PIXEL ;
OF oApp():oDlg ;
_3DLOOK ;
UPDATE
IF nBrwRecno <= ID->( ordKeyCount() )
ID->( dbGoTo( nBrwRecno ) )
ENDIF
ACTIVATE DIALOG oApp():oDlg NOWAIT ;
ON INIT ( oApp():oDlg:Move( oApp():oWndMain:nTop + oApp():oDlg:nYMove,
oApp():oWndMain:nLeft + 3 ),;
oTab:setOption( nBrwOrder ),;
oBrw:Refresh(), oBrw:SetFocus() ) ;
VALID ( SetIni( , "Browse", "IdState", oBrw:SaveState() ),;
SetIni( , "Browse", "IdOrder", ID->( ordNumber() ) ),;
SetIni( , "Browse", "IdRecno", ID->( recNo() ) ),;
SetIni( , "Browse", "IdSplit", lTrim( str( oSplit:nleft / 2 ) ) ),;
oBar:End(),;
oFont:End(),;
dbCloseAll(),;
.t. )