demoall em fivewin

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

demoall em fivewin

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder