pipininhos na rotina devido aos CHs
Enviado: 16 Mai 2025 18:56
Pra não ficar com opção vazia, que tal colocar alguma mensagem ?
O nome do módulo ?
O nome do módulo ?
Em homenagem a Paulo Cesar Toledo
https://pctoledo.org/
Código: Selecionar todos
//MENUITEM aItem[1] ACTION { || Nil }
MENUITEM aItem[1] ACTION { || MsgBox( aItem[1] ) }
Código: Selecionar todos
@ 30, 60 TAB oTabLevel1 ITEMS {} SIZE 950, 650 OF oDlg
FOR EACH aOption IN aMenuOptions
BEGIN PAGE aOption[ 1 ] OF oTabLevel1
// without sub-level
IF Len( aOption[ 2 ] ) == 0
IF ValType( aOption[ 3 ] ) == "C" // can't run on tabpage use button
@ 30, 50 BUTTON "Dlg " + aOption[ 3 ] ;
SIZE 200, 24 ;
ON CLICK aOption[ 4 ]
ELSE
Eval( aOption[ 3 ], oTabLevel1 ) // ok display sample
ENDIF
ELSE
// with sub-level, all again
FOR EACH oTabLevel2 IN { Nil }
@ 30, 30 TAB oTabLevel2 ITEMS {} SIZE 800, 600 OF oTabLevel1
FOR EACH aOption2 IN aOption[ 2 ]
BEGIN PAGE aOption2[ 1 ] OF oTabLevel2
IF ValType( aOption2[ 3 ] ) == "C" // can't run on tabpage use button
@ 30, 50 BUTTON "Dlg " + aOption2[ 3 ] ;
SIZE 200, 24 ;
ON CLICK aOption2[ 4 ]
ELSE
Eval( aOption2[ 3 ], oTabLevel2 ) // ok display sample
ENDIF
END PAGE OF oTabLevel2
NEXT
NEXT
ENDIF
END PAGE OF oTabLevel1
NEXT
Código: Selecionar todos
/*
test codeblock
*/
#include "minigui.ch"
// don't initialize values here
STATIC nRowPos, nColPos
FUNCTION DemoButton( lWithDialog, xDlg )
LOCAL aList := {}, nCont, nMesa, xButton, bCode
hb_Default( @lWithDialog, .T. )
nColPos := -1
nRowPos := -1
FOR nCont = 1 TO 35
AAdd( aList, nCont + 50 )
NEXT
IF lWithDialog
DEFINE WINDOW ( xDlg := "DLGANY" ) ;
AT 0,0 ;
WIDTH 1000 ;
HEIGHT 500 ;
MAIN;
TITLE 'Teste de Mesa' ;
NOSIZE ;
NOMAXIMIZE
END WINDOW
ENDIF
FOR nCont := 1 TO Len( aList )
// two variables uniques
FOR EACH nMesa, xButton IN ;
{ aList[ nCont ] }, ;
{ "Mesa" + StrZero( nCont,2 ) }
RowPos( xDlg )
@ nRowPos, nColPos BUTTONEX ( xButton ) ;
OF ( xDlg ) ;
CAPTION "Mesa N." + CRLF + StrZero( nMesa, 2 ) ;
PICTURE "button.bmp" ;
BACKCOLOR GREEN GRADIENTFILL { { 1, GREEN,GREEN } } ;
WIDTH 120 ;
HEIGHT 60
bCode := { || MostraMesa( xDlg, nMesa, xButton ) }
SetProperty( xDlg, xButton, "ACTION", bCode )
NEXT
NEXT
IF lWithDialog
CENTER WINDOW ( xDlg )
ACTIVATE WINDOW ( xDlg )
ENDIF
RETURN Nil
STATIC FUNCTION RowPos( xDlg )
IF nColPos == -1
nRowPos := 35
nColPos := 5
ELSE
nColPos += 125
IF nColPos > GetProperty( xDlg, "width" ) - 200
nRowPos += 65
nColPos := 5
ENDIF
ENDIF
RETURN nRowPos
STATIC FUNCTION MostraMesa( xDlg, nMesa, xButton )
MsgInfo( "Mesa " + StrZero( nMesa, 2 ) + " selecionada" )
SetProperty( xDlg, xButton, "BACKCOLOR", RED )
SetProperty( xDlg, xButton, "GRADIENTFILL", { { 1, RED, RED } } )
RETURN Nil
Código: Selecionar todos
#include "minigui.ch"
STATIC aMenuOptions := {}, nMenuLevel := 0
PROCEDURE Demo
LOCAL xDlg, aList, aInitList := {}
aList := ze_CreateMenu()
DEFINE WINDOW ( xDlg := ze_Name( "DLG" ) ) ;
AT 0, 0 ;
WIDTH 1024 ;
HEIGHT 768 ;
MAIN;
TITLE "demoall.prg" ;
ON INIT { || ze_ListEval( aInitList ) }
END WINDOW
demo_BuildPages( xDlg, aList, 1, aInitList )
DoMethod( xDlg, "CENTER" )
DoMethod( xDlg, "ACTIVATE" )
RETURN
Código: Selecionar todos
STATIC FUNCTION Ze_CreateMenu()
MenuOption( "Button", { |o| DemoButton( .F., o ) } )
MenuOption( "Browse" )
MenuDrop()
MenuOption( "1.Brw.ADO", { || Nil } )
MenuOption( "2.Brw.Array", { |o| DemoButton( .F., o ) } )
MenuOption( "3.Brw.DBF", { || Nil } )
MenuOption( "5.Brw.BMP", { |o| DemoButton( .F., o ) } )
MenuUnDrop()
MenuOption( "Choice" )
MenuDrop()
MenuOption( "1.OwnerButton", { || Nil } )
MenuOption( "1.Checkbox", { |o| DemoButton( .F., o ) } )
MenuOption( "2.Combobox", { || Nil } )
MenuUnDrop()
MenuOption( "1.General" )
MenuDrop()
MenuOption( "2.Night", { || Nil } )
MenuOption( "3.Back image", { |o| DemoButton( .F., o ) } )
MenuUnDrop()
MenuOption( "Edit" )
MenuDrop()
MenuOption( "1.DemoGet2", { || Nil } )
MenuOption( "2.Editbox", { || Nil } )
MenuOption( "4.Datepicker", { |o| DemoButton( .F., o ) } )
MenuUnDrop()
MenuOption( "1.HTrack", { || Nil } )
MenuOption( "1.Tree", { |o| DemoButton( .F., o ) } )
MenuOption( "1.AppData", { || Nil } )
RETURN aMenuOptions
Código: Selecionar todos
@ 100, 100 BUTTON ( xButton := ze_Name( "BUTTON" ) ) ;
Código: Selecionar todos
DEFINE WINDOW ( xDlg := ze_Name( "DLG" ) ) ;
AT 0, 0 ;
WIDTH 1024 ;
HEIGHT 768 ;
Código: Selecionar todos
GetProperty( xDlg, "Width" )
SetProperty( xDlg, "Width", 100 )
DoMethod( xDlg, "Activate" )
GetProperty( xDlg, xButton, "Width" )
Código: Selecionar todos
PROCEDURE Demo
LOCAL xDlg, aList, aInitList := {}, aEndList := {}
Código: Selecionar todos
ON INIT Eval( { || ze_ListEval( aInitList ) } ) ;
ON RELEASE Eval( { || ze_ListEval( aEndList ) } ) ;
Código: Selecionar todos
MenuOption( "1.Browse10", { |o| DemoBrowse10( .F., o, aInitList, aEndList ) } )
Código: Selecionar todos
IF lWithDialog
DEFINE WINDOW (xDlg := "form_1") ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'Browse Demo' ;
MAIN NOMAXIMIZE ;
ON INIT OpenTables() ;
ON RELEASE CloseTables()
END WINDOW
ELSE
AAdd( aInitList, { || OpenTables() } )
AAdd( aEndList, { || CloseTables() } )
ENDIF
Código: Selecionar todos
aList := ze_CreateMenu( aInitList, aEndList )
Código: Selecionar todos
demo_BuildPages( xDlg, aList, 1, aInitList, aEndList )
Código: Selecionar todos
Eval( aOption[ 3 ], xWPage, aInitList, aEndList )