Página 1 de 1

demoall em fivewin

Enviado: 14 Mai 2025 18:17
por JoséQuintas
moresamples.png
Só um teste básico.

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
O exemplo tem a indicação se é pra fazer dialog ou não.
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