Mostrar o do button mais simples:
Código: Selecionar todos
/*
demobutton.prg
*/
#include "fivewin.ch"
FUNCTION DemoButton( lWithDialog, oDlg )
LOCAL oButton
hb_Default( @lWithDialog, .T. )
FW_SetTruePixel(.T.)
IF lWIthDialog
DEFINE DIALOG oDlg ;
TITLE "demobutton" ;
SIZE 1024, 768
ENDIF
@ 100, 100 BUTTONBMP oButton ;
PROMPT "test" ;
OF oDlg ;
SIZE 200, 25 ;
PIXEL ;
; // RESOURCE cResName TOP ;
ACTION MsgStop( "ok" )
IF lWithDialog
ACTIVATE DIALOG oDlg CENTER
ENDIF
(oButton)
RETURN Nil
Aí eu adiciono no demoall usando FOLDEREX
O mesmo fonte acima.
Aqui o "agrupador"., que chama todos
Este é automático.
Os exemplos, estou usando os próprios do fivewin.
Todos que tem fivewin tem os exemplos, estou apenas ajustando, e não fazem parte dos fontes que postei.
Código: Selecionar todos
/*
demoall.prg
*/
#include "fivewin.ch"
STATIC aMenuOptions := {}, nMenuLevel := 0
FUNCTION DemoAll()
LOCAL oDlg, aInitList := {}
LOCAL oTabLevel1, nIndexLevel1, aOption1
LOCAL oTabLevel2 := Array(100), nIndexLevel2, aOption2, nTab2Index := 0
LOCAL oButton := Array(100), nButtonIndex := 0
FW_SetTruePixel(.T.)
DEFINE DIALOG oDlg ;
TITLE "demoall" ;
SIZE 1024, 768
MenuOption( "browse" )
MenuDrop()
MenuOption( "demoxbsubtot", { |o| DemoxbSubTot( .F., o ) } )
MenuOption( "zodiac", { |o| DemoZodiac( .F., o ) } )
MenuOption( "xbrwpages", "xbwrwpages", { || Demoxbrwpages() } )
MenuUnDrop()
MenuOption( "button", { |o| DemoButton( .F., o ) } )
MenuOption( "checkbox", { |o| DemoCheckbox( .F., o ) } )
MenuOption( "folderex", { |o| DemoFolderEx( .F., o ) } )
MenuOption( "zorder", { |o| DemoZorder( .F., o ) } )
@ 50, 50 FOLDEREX oTabLevel1 ;
PROMPTS ListOfTabPages() ;
OF oDlg ;
TAB HEIGHT 22 ;
SIZE 900, 700 ;
PIXEL
nIndexLevel1 := 0
FOR EACH aOption1 IN aMenuOptions
oTabLevel1:aPrompts[ ++nIndexLevel1 ] := aOption1[ 1 ]
IF Empty( aOption1[ 2 ] )
Eval( aOption1[ 3 ], oTabLevel1:aDialogs[ nIndexLevel1 ] )
ELSE
@ 50, 50 FOLDEREX oTabLevel2[ ++nTab2Index ] ;
PROMPTS ListOfTabPages() ;
OF oTabLevel1:aDialogs[ nIndexLevel1 ] ;
TAB HEIGHT 22 ;
SIZE 800, 600 ;
PIXEL
nIndexLevel2 := 0
FOR EACH aOption2 IN aOption1[ 2 ]
oTabLevel2[ nTab2Index ]:aPrompts[ ++nIndexLevel2 ] := aOption2[ 1 ]
IF ValType( aOption2[3] ) == "C"
@ 100, 100 BUTTONBMP oButton[ ++nButtonIndex ] ;
PROMPT aOption2[1] ;
OF oTabLevel2[ nTab2Index ]:aDialogs[ nIndexLevel2 ] ;
SIZE 200, 25 ;
PIXEL ;
; // RESOURCE cResName TOP ;
ACTION Eval( aOption2[4] )
ELSE
Eval( aOption2[ 3 ], oTabLevel2[ nTab2Index ]:aDialogs[ nIndexLevel2 ] )
ENDIF
NEXT
aSize( oTabLevel2[ nTab2Index ]:aPrompts, nIndexLevel2 )
ENDIF
NEXT
aSize( oTabLevel1:aPrompts, nIndexLevel1 )
ACTIVATE DIALOG oDlg CENTER ;
ON INIT ( Self, ExecuteInit( aInitList ) )
RETURN Nil
STATIC FUNCTION ListOfTabPages()
LOCAL aList := Array(100)
AFill( aList, "" )
RETURN aList
STATIC FUNCTION MenuOption( cCaption, bCodeOrString, bCode )
LOCAL nCont, aLastMenu
aLastMenu := aMenuOptions
FOR nCont = 1 TO nMenuLevel
aLastMenu := aLastMenu[ Len( aLastMenu ) ]
aLastMenu := aLastMenu[ 2 ]
NEXT
AAdd( aLastMenu, { ccaption, {}, bCodeOrString, bCode } )
RETURN Nil
STATIC FUNCTION MenuDrop()
nMenuLevel++
RETURN Nil
STATIC FUNCTION MenuUndrop()
nMenuLevel --
RETURN Nil
STATIC FUNCTION ExecuteInit( aInitList )
LOCAL bCode
IF .F.
FOR EACH bCode In aInitList
Eval( bCode )
NEXT
ENDIF
RETURN Nil
