Ciclo completo.
Mostra tudo que é fonte.
Nem vão acreditar como é ridículo chegar nisso.
no exemplo:
se cria dialog ou não, e os dois botões.
Quando um exemplo usa o outro, já vão aparecendo os dois botões
O demoall usa várias tabpage, quando aproveita o fonte do exemplo, já vém com os botões, não precisa mais nada.
Só isso.
A única complicação nos fontes, não teve jeito, foram duas.
Chamar rotina
Código: Selecionar todos
// do not remove button
DemoCodeButton( "demobrowsedbf.prg", oDlg )
e pra não multiplicar fonte, um include
Esse demo.ch vai multiplicar as rotinas, fazer o que.
Código: Selecionar todos
/*
$Id: demo.ch
Created to do not duplicate source code on all samples
*/
STATIC FUNCTION DemoCodeButton( cFileName, oDlg )
LOCAL cRunName
cRunName := StrTran( cFileName, ".prg", "" )
@ 3, 30 OWNERBUTTON ;
OF oDlg ;
SIZE 200, 24 ;
TEXT cFileName ;
HSTYLES ;
HStyle():New( {16759929,16772062}, 1 ), ;
HStyle():New( {16759929}, 1,, 3, 0 ), ;
HStyle():New( {16759929}, 1,, 2, 12164479 ) ;
ON CLICK { || Do( cRunName ) }
@ 220, 30 OWNERBUTTON ;
OF oDlg ;
SIZE 100, 24 ;
TEXT "show code" ;
HSTYLES ;
HStyle():New( {16759929,16772062}, 1 ), ;
HStyle():New( {16759929}, 1,, 3, 0 ), ;
HStyle():New( {16759929}, 1,, 2, 12164479 ) ;
ON CLICK { || ShowCode( cFileName ) }
RETURN Nil
STATIC FUNCTION ShowCode( cFileName )
LOCAL oDlg, oEdit, oFont
IF ! File( cFileName )
hwg_MsgInfo( cFileName + " not found" )
ENDIF
PREPARE FONT oFont ;
NAME "Courier New" ;
WIDTH 0 ;
HEIGHT -13
INIT DIALOG oDlg ;
TITLE cFileName ;
SIZE 800, 600 ;
FONT oFont
@ 10, 10 EDITBOX oEdit ;
CAPTION MemoRead( cFileName ) ;
SIZE 780, 580 ;
; // FONT oFont
STYLE ES_MULTILINE + ES_AUTOVSCROLL + WS_VSCROLL + WS_HSCROLL
ACTIVATE DIALOG oDlg CENTER
RETURN Nil
criar dois botões, e uma dialog pra mostrar os fontes.
Se não fosse assim, eu teria que incluir manualmente em todos os fontes, ou criar fonte separado pra ser compilado, etc. etc. etc.
Pro usuário principiante, é só copiar o demo.ch.
Pro usuário interessado no código fonte, o que tem em demo.ch nem interessa, melhor que fique de fora.