Gerador/criação de telas/executor
Enviado: 14 Ago 2023 20:20
Anotado dentro dos testes mesmo kkkk
Em homenagem a Paulo Cesar Toledo
https://pctoledo.org/
Código: Selecionar todos
AAdd( aList, { "View", { || ::View() } } )
Código: Selecionar todos
METHOD View() INLINE frm_Browse( Self, "", "", ::cFileDbf, Nil )
Código: Selecionar todos
/*
frm_browse - browse
*/
#include "frm_class.ch"
FUNCTION frm_Browse( Self, xDlg, xControl, cTable, cField )
LOCAL oTBrowse := {}, aItem, aField, oBrw
FOR EACH aField IN ::aEditList
AAdd( oTBrowse, { aField[ CFG_CAPTION ], { || Transform( aField[ CFG_FNAME ], aField[ CFG_FPICTURE ] ) } } )
NEXT
INIT DIALOG xDlg TITLE cTable ;
AT 0, 0 ;
SIZE 1024, 768
@ 0, 0 BROWSE oBrw DATABASE SIZE 800, 500 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam)}
@ 500,540 OWNERBUTTON ON CLICK {|| xDlg:Close() } SIZE 180,36 FLAT TEXT "Close" COLOR hwg_ColorC2N("0000FF")
FOR EACH aItem IN oTBrowse
ADD COLUMN aItem[2] TO oBrw HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
NEXT
ACTIVATE DIALOG xDlg
(xControl)
(cField)
(Self)
RETURN Nil
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam)
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
hwg_Msginfo("RecNo(): " + Str(RecNo()) )
ENDIF
ENDIF
( lParam )
( oBrw )
RETURN .T.
Código: Selecionar todos
METHOD View() INLINE frm_Browse( Self, "", "", ::cFileDbf, Nil ), ::UpdateEdit()
Código: Selecionar todos
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam, cField, xValue )
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
IF ! Empty( cField )
xValue := FieldGet( FieldNum( cField, xValue ) )
ENDIF
hwg_EndDialog()
ENDIF
ENDIF
Código: Selecionar todos
FUNCTION frm_Browse( Self, xDlg, xControl, cTable, cField )
Código: Selecionar todos
IF ! Empty( aItem[ CFG_VTABLE ] )
nSelect := Select()
SELECT ( Select( aItem[ CFG_VTABLE ] ) )
SEEK xValue
lFound := ! Eof()
xValue := FieldGet( FieldNum( aItem[ CFG_VSHOW ] ) )
SELECT ( nSelect )
IF ! lFound
frm_Browse( Self, ::oDlg, @aItem[ CFG_FCONTROL ], aItem[ CFG_VTABLE ] )
gui_SetFocus( ::oDlg, aItem[ CFG_FCONTROL ] ) // minigui need this
ENDIF
gui_SetLabelValue( ::oDlg, aItem[ CFG_VCONTROL ], xValue )
ENDIF
Código: Selecionar todos
ACTIVATE DIALOG ThisDlg
IF ! Empty( xValue ) .AND. ! Empty( xControl )
xControl:Value := xValue
ENDIF
SELECT ( nSelect )
(xControl)
Código: Selecionar todos
/*
frm_browse - browse
*/
#include "frm_class.ch"
FUNCTION frm_Browse( Self, xDlg, xControl, cTable )
#ifdef HBMK_HAS_HWGUI
LOCAL oTBrowse := {}, aItem, aField, oBrw, xValue, cField, nSelect, nPos, oThisDlg
nSelect := Select()
SELECT ( cTable )
nPos := hb_Ascan( ::aAllSetup, { | e | e[1] == cTable } )
FOR EACH aField IN ::aAllSetup[ nPos, 2 ]
AAdd( oTBrowse, { aField[ CFG_CAPTION ], { || Transform( FieldGet(FieldNum(aField[ CFG_FNAME ])), aField[ CFG_FPICTURE ] ) } } )
IF aField[ CFG_ISKEY ]
cField := aField[ CFG_FNAME ]
ENDIF
NEXT
INIT DIALOG oThisDlg TITLE cTable ;
AT 0, 0 ;
SIZE 1024, 768
@ 0, 0 BROWSE oBrw DATABASE SIZE 800, 500 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam, cField, @xValue ) }
@ 500,540 OWNERBUTTON ON CLICK {|| oThisDlg:Close() } SIZE 180,36 FLAT TEXT "Close" COLOR hwg_ColorC2N("0000FF")
FOR EACH aItem IN oTBrowse
ADD COLUMN aItem[2] TO oBrw HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
NEXT
ACTIVATE DIALOG oThisDlg
IF ! Empty( xValue ) .AND. ! Empty( xControl )
xControl:Value := xValue
ENDIF
SELECT ( nSelect )
(xDlg)
RETURN Nil
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam, cField, xValue )
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
IF ! Empty( cField )
xValue := FieldGet( FieldNum( cField, xValue ) )
ENDIF
hwg_EndDialog()
ENDIF
ENDIF
(oBrw)
(lParam)
#endif
RETURN .T.
Código: Selecionar todos
/*
frm_browse - browse
*/
#include "frm_class.ch"
FUNCTION frm_Browse( Self, xDlg, xControl, cTable )
#ifdef HBMK_HAS_HWGUI
LOCAL oTBrowse := {}, aItem, aField, oBrw, xValue, cField, nSelect, nPos, oThisDlg
nSelect := Select()
SELECT ( cTable )
nPos := hb_Ascan( ::aAllSetup, { | e | e[1] == cTable } )
FOR EACH aField IN ::aAllSetup[ nPos, 2 ]
AAdd( oTBrowse, { aField[ CFG_CAPTION ], { || Transform( FieldGet(FieldNum(aField[ CFG_FNAME ])), aField[ CFG_FPICTURE ] ) } } )
IF aField[ CFG_ISKEY ]
cField := aField[ CFG_FNAME ]
ENDIF
NEXT
oThisDlg := frm_Class():New()
oThisDlg:cOptions := ""
gui_CreateDialog( @oThisDlg:oDlg, 0, 0, ::nDlgWidth, ::nDlgHeight, cTable, { || Nil } )
frm_Buttons( oThisDlg, .F. )
@ 5, 70 BROWSE oBrw DATABASE SIZE oThisDlg:nDlgWidth - 10, oThisDlg:nDlgHeight - 80 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam, cField, @xValue ) }
FOR EACH aItem IN oTBrowse
ADD COLUMN aItem[2] TO oBrw HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
NEXT
gui_ActivateDialog( oThisDlg:oDlg )
IF ! Empty( xValue ) .AND. ! Empty( xControl )
xControl:Value := xValue
ENDIF
SELECT ( nSelect )
(xDlg)
RETURN Nil
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam, cField, xValue )
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
IF ! Empty( cField )
xValue := FieldGet( FieldNum( cField, xValue ) )
ENDIF
hwg_EndDialog()
ENDIF
ENDIF
(oBrw)
(lParam)
#endif
RETURN .T.
Código: Selecionar todos
oThisFrm := frm_Class():New()
oThisFrm:cOptions := ""
oThisFrm:oDlg := "browse"
Código: Selecionar todos
/*
frm_browse - browse
*/
#include "frm_class.ch"
FUNCTION frm_Browse( Self, xDlg, xControl, cTable )
LOCAL oTBrowse := {}, aItem, aField, oBrw, xValue, cField, nSelect, nPos, oThisFrm
nSelect := Select()
SELECT ( cTable )
nPos := hb_Ascan( ::aAllSetup, { | e | e[1] == cTable } )
FOR EACH aField IN ::aAllSetup[ nPos, 2 ]
AAdd( oTBrowse, { aField[ CFG_CAPTION ], { || Transform( FieldGet(FieldNum(aField[ CFG_FNAME ])), aField[ CFG_FPICTURE ] ) } } )
IF aField[ CFG_ISKEY ]
cField := aField[ CFG_FNAME ]
ENDIF
NEXT
oThisFrm := frm_Class():New()
oThisFrm:cOptions := ""
oThisFrm:oDlg := "browse"
gui_CreateDialog( @oThisFrm:oDlg, 0, 0, ::nDlgWidth, ::nDlgHeight, cTable, { || Nil } )
frm_Buttons( oThisFrm, .F. )
#ifdef HBMK_HAS_HWGUI
@ 5, 70 BROWSE oBrw DATABASE SIZE oThisFrm:nDlgWidth - 10, oThisFrm:nDlgHeight - 80 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam, cField, @xValue ) }
FOR EACH aItem IN oTBrowse
ADD COLUMN aItem[2] TO oBrw HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
NEXT
#endif
gui_ActivateDialog( oThisFrm:oDlg )
#ifdef HBMK_HAS_HWGUI
IF ! Empty( xValue ) .AND. ! Empty( xControl )
xControl:Value := xValue
ENDIF
#endif
SELECT ( nSelect )
(xDlg)
RETURN Nil
#ifdef HBMK_HAS_HWGUI
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam, cField, xValue )
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
IF ! Empty( cField )
xValue := FieldGet( FieldNum( cField, xValue ) )
ENDIF
hwg_EndDialog()
ENDIF
ENDIF
(oBrw)
(lParam)
RETURN .T.
#endif
Código: Selecionar todos
gui_Browse( 70, 5, oThisFrm:nDlgWidth - 10, oThisFrm:nDlgHeight - 80, oTbrowse, cField, @xValue )
Código: Selecionar todos
FUNCTION gui_Browse( nRow, nCol, nWidth, nHeight, oTbrowse, cField, xValue )
LOCAL oBrw, aItem
@ nCol, nRow BROWSE oBrw DATABASE SIZE nWidth, nHeight STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw:bOther := { |oBrw, msg, wParam, lParam| fKeyDown( oBrw, msg, wParam, lParam, cField, @xValue ) }
FOR EACH aItem IN oTBrowse
ADD COLUMN aItem[2] TO oBrw HEADER aItem[1] LENGTH Len( Eval( aItem[2] ) ) JUSTIFY LINE DT_LEFT
NEXT
RETURN Nil
STATIC FUNCTION fKeyDown(oBrw, msg, wParam, lParam, cField, xValue )
LOCAL nKEY
IF msg == WM_KEYDOWN
nKey := hwg_PtrToUlong( wParam ) //wParam
IF nKey = VK_RETURN
IF ! Empty( cField )
xValue := FieldGet( FieldNum( cField, xValue ) )
ENDIF
hwg_EndDialog()
ENDIF
ENDIF
(oBrw)
(lParam)
RETURN .T.
Código: Selecionar todos
/*
frm_browse - browse
*/
#include "frm_class.ch"
FUNCTION frm_Browse( Self, xDlg, xControl, cTable )
LOCAL oTBrowse := {}, aField, xValue, cField, nSelect, nPos, oThisFrm
nSelect := Select()
SELECT ( cTable )
nPos := hb_Ascan( ::aAllSetup, { | e | e[1] == cTable } )
FOR EACH aField IN ::aAllSetup[ nPos, 2 ]
AAdd( oTBrowse, { aField[ CFG_CAPTION ], { || Transform( FieldGet(FieldNum(aField[ CFG_FNAME ])), aField[ CFG_FPICTURE ] ) } } )
IF aField[ CFG_ISKEY ]
cField := aField[ CFG_FNAME ]
ENDIF
NEXT
oThisFrm := frm_Class():New()
oThisFrm:cOptions := ""
oThisFrm:oDlg := "browse"
gui_CreateDialog( @oThisFrm:oDlg, 0, 0, ::nDlgWidth, ::nDlgHeight, cTable, { || Nil } )
frm_Buttons( oThisFrm, .F. )
gui_Browse( 70, 5, oThisFrm:nDlgWidth - 10, oThisFrm:nDlgHeight - 80, oTbrowse, cField, @xValue )
gui_ActivateDialog( oThisFrm:oDlg )
IF ! Empty( xValue ) .AND. ! Empty( xControl )
SetTextboxValue( xDlg, xControl, xValue )
ENDIF
SELECT ( nSelect )
(xDlg)
RETURN Nil
Código: Selecionar todos
FUNCTION gui_CreateDialog( xDlg, nRow, nCol, nWidth, nHeight, cTitle, bAction )
STATIC nNumDialog := 1
IF Empty( xDlg )
xDlg := "Dialog" + StrZero( nNumDialog, 4 )
nNumDialog += 1
ENDIF
DEFINE WINDOW ( xDlg ) ;
AT nCol, nRow ;
WIDTH nWidth ;
HEIGHT nHeight ;
TITLE cTitle ;
MODAL ;
ON INIT Eval( bAction )
END WINDOW
RETURN Nil
Sabe a parte mais legal disso que estou fazendo?Itamar M. Lins Jr. escreveu:Vc vai fazendo isso o Ron Pinkas liberou a xIDE e vamos indo... No final ficou tudo como era para ter ficado.
Quer dizer atrasou o mundo Harbour em uns 13 anos ? quem sabe ?
Pq poderia está tudo unificado mas cada um puxa daqui e dali e vamos vivendo.
No final o Open Source vence e vencerá sempre.
O dinheiro que cada um ganhou, poderia ter ganho muito mais... Consultoria vale muito mais que códigos e mais códigos.