Página 1 de 1
SAIR COM ESC DO SISTEMA
Enviado: 27 Set 2024 13:51
por deividdjs
boa tarde amigos.. eu outra fez ..
porque não consigo de forma nenhuma saber em qual a função corrente estou e nem a form .. esse comando de sair com ESC deveria funcionar .. porquem ele não consegue identificar q está na oMainWnd...
Código: Selecionar todos
INIT WINDOW oMainWnd ;
ICON HIcon():Addresource('AppIcon') ;
MAIN ;
TITLE "CONTROLE - Sistema Integrado de Gestión Comercial";
BACKCOLOR 0x5C4223 ;
FONT oFontDlg ;
AT 0,0 SIZE hwg_Getdesktopwidth() * 0.9, hwg_Getdesktopheight() * 0.9 ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER ;;
ON EXIT { || If( hwg_MsgYesNo("Certeza que deseas salir?", "Confirmación") == .T., CloseAllDisconeccion(), .F. ) }
Thisform := oMainWnd
oMainWnd:Center()
IF oMainWnd:handle == hwg_GetActiveWindow()
hwg_SetDlgKey( Thisform, 0, VK_ESCAPE, { || Thisform:Close() }, .F. )
ENDIF
DEIVID
SAIR COM ESC DO SISTEMA
Enviado: 27 Set 2024 21:32
por Fernando queiroz
deividdjs escreveu:boa tarde amigos.. eu outra fez ..
porque não consigo de forma nenhuma saber em qual a função corrente estou e nem a form .. esse comando de sair com ESC deveria funcionar .. porquem ele não consegue identificar q está na oMainWnd...
Código: Selecionar todos
INIT WINDOW oMainWnd ;
ICON HIcon():Addresource('AppIcon') ;
MAIN ;
TITLE "CONTROLE - Sistema Integrado de Gestión Comercial";
BACKCOLOR 0x5C4223 ;
FONT oFontDlg ;
AT 0,0 SIZE hwg_Getdesktopwidth() * 0.9, hwg_Getdesktopheight() * 0.9 ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER ;;
ON EXIT { || If( hwg_MsgYesNo("Certeza que deseas salir?", "Confirmación") == .T., CloseAllDisconeccion(), .F. ) }
Thisform := oMainWnd
oMainWnd:Center()
IF oMainWnd:handle == hwg_GetActiveWindow()
hwg_SetDlgKey( Thisform, 0, VK_ESCAPE, { || Thisform:Close() }, .F. )
ENDIF
DEIVID
tente usar tudo DIALOG pois esse negocio de WINDOW só dá e problemas, eu uso DIALOG em tudo
SAIR COM ESC DO SISTEMA
Enviado: 27 Set 2024 21:58
por JoséQuintas
Não existe janela enquanto ela não for ativada.
De cabeça por enquanto posso confundir as LIBs.
ON ACTIVATE
janela:Activate( ... codeblock )
A janela precisa estar ativa pra aparecer no resultado de GetActivateWindow()
Aproveitando o que o Queiróz disse:
Nas outras LIBs existe diferença entre usar WINDOW ou DIALOG, na HWGUI dá no mesmo.
Mesmo assim, não sei porque, mas usar WINDOW na HWGUI misturado com WVG dá pau.
Por conta disso, passei a usar somente DIALOG, só por conta da mistura.
Mas o Queiróz usa pra valer a hwgui, sem misturar, tem muito mais experiência que eu, se ele diz que é melhor, então é mesmo.
SAIR COM ESC DO SISTEMA
Enviado: 27 Set 2024 22:16
por deividdjs
EU usei INIT WINDOW somente na janela principal do sistema MAIN() o restante é tudo DIALOG ... então vc acha q devo tirar o WINDOW até da tela principal tbm ??
zé .. inclusive mesmo depois de ativar o window ele não consegue retornar o form aberto .. é bem bugado mesmo !!
mais blz .. vamos mudar aqui e ver qq dá ...
Abraço amigos!
SAIR COM ESC DO SISTEMA
Enviado: 27 Set 2024 23:14
por deividdjs
Fernando matou a xarada !! troquei para DIALOG funcinou tudo na hora ... a função do de sair com o ESC .. tudo perfeito!! o tal do INIT WINDOW é bugado mesmo ... vlw amigos! abraço!
SAIR COM ESC DO SISTEMA
Enviado: 30 Set 2024 09:09
por Itamar M. Lins Jr.
Olá!
JANELA MAIN só WINDOW. Não tem como usar DIALOG MAIN.
Então sempre usei a principal WINDOW MAIN e as demais DIALOGS.
Saudações,
Itamar M. Lins Jr.
SAIR COM ESC DO SISTEMA
Enviado: 30 Set 2024 09:30
por Itamar M. Lins Jr.
Olá!
O ESC na MAIN, eu não ativei mesmo, nem notei. Até pq acredito que MAIN não é para sair com ESC. Veja ai nos navegadores, e outros programas, que não sai com ESC...
Saudações,
Itamar M. Lins Jr.
SAIR COM ESC DO SISTEMA
Enviado: 30 Set 2024 19:05
por deividdjs
Sei lá .. só sei q está funcionando perfeitamente agora com somente dialog .. como disse o Fernando .. Windows é bugado ..
SAIR COM ESC DO SISTEMA
Enviado: 01 Out 2024 08:31
por Itamar M. Lins Jr.
Olá!
Veja, WINDOW tem MENU e outras coisas que não tem na DIALOG. Eu não uso para INCLUSÃO, só a tela PRINCIPAL.
Se tem BUGs, eu não sei informar, sei que as "WINDOW CHILD" MDI tem problemas, desde sempre. Sempre usei DIALOGs para quase tudo.
Código: Selecionar todos
#xcommand INIT WINDOW <oWnd> ;
[ MAIN ] ;
[<lMdi: MDI>] ;
[ APPNAME <appname> ] ;
[ TITLE <cTitle> ] ;
[ AT <x>, <y> ] ;
[ SIZE <width>, <height> ] ;
[ ICON <ico> ] ;
[ SYSCOLOR <clr> ] ;
[ <bclr: BACKCOLOR, COLOR> <bcolor> ] ;
[ BACKGROUND BITMAP <oBmp> ] ;
[ STYLE <nStyle> ] ;
[ EXCLUDE <nExclude> ] ;
[ FONT <oFont> ] ;
[ MENU <cMenu> ] ;
[ MENUPOS <nPos> ] ;
[ ON INIT <bInit> ] ;
[ ON SIZE <bSize> ] ;
[ ON PAINT <bPaint> ] ;
[ ON GETFOCUS <bGfocus> ] ;
[ ON LOSTFOCUS <bLfocus> ] ;
[ ON OTHER MESSAGES <bOther> ] ;
[ ON EXIT <bExit> ] ;
[ HELP <cHelp> ] ;
[ HELPID <nHelpId> ] ;
E também não EXISTE a opção de SAIR COM ESC, como tem nas DIALOGs, por isso essa parte na minha opinião NÃO É BUG.
Como vc vai colocar a OPÇÃO de MENU na DIALOG ?
Saudações,
Itamar M. Lins Jr.
SAIR COM ESC DO SISTEMA
Enviado: 01 Out 2024 11:03
por deividdjs
bom dia Itamar ...
esta esse trecho com WINDOWS e testa com DIALOG por favor se puder ..
Código: Selecionar todos
IF oMainWnd:handle == hwg_GetActiveWindow()
hwg_SetDlgKey( Thisform, 0, VK_ESCAPE, { || Thisform:Close() }, .F. )
ENDIF
a função hwg_GetActiveWindow() com 'WINDOW' nao retorna nada ... e em 'DIALOG' ela já funciona perfeitamente .. não deveria funcionar nas duas ocasiões ??
Saludos,
Deivid
SAIR COM ESC DO SISTEMA
Enviado: 01 Out 2024 16:26
por JoséQuintas
Deivid
Porque ainda está usando WINDOW ?
SAIR COM ESC DO SISTEMA
Enviado: 01 Out 2024 18:55
por deividdjs
Itamar disse q tela principal MAIN deve ser ter Window e o restante sim dialog é o que estou tentando fazer desta forma ..
SAIR COM ESC DO SISTEMA
Enviado: 02 Out 2024 12:53
por JoséQuintas
Sem WINDOW
Sem WINDOW e usando GTWVG.
SAIR COM ESC DO SISTEMA
Enviado: 02 Out 2024 13:00
por JoséQuintas
Tudo igual sempre.
Modo genérico do dlgauto, com menu:
Código: Selecionar todos
STATIC FUNCTION gui_DlgMenu( xDlg, aMenuList, aAllSetup, cTitle )
LOCAL aGroupList, cDBF
gui_DialogCreate( @xDlg, 0, 0, APP_DLG_WIDTH, APP_DLG_HEIGHT, cTitle )
MENU OF xDlg
FOR EACH aGroupList IN aMenuList
MENU TITLE "Data" + Ltrim( Str( aGroupList:__EnumIndex ) )
FOR EACH cDBF IN aGroupList
MENUITEM cDBF ACTION frm_funcMain( cDBF, aAllSetup )
NEXT
ENDMENU
NEXT
MENU TITLE "NoData"
MENUITEM "NoData Layout 1" ACTION frm_DialogFree(1)
MENUITEM "NoData Layout 2" ACTION frm_DialogFree(2)
MENUITEM "NoData Layout 3" ACTION frm_DialogFree(3)
ENDMENU
MENU TITLE "Exit"
MENUITEM "&Exit" ACTION gui_DialogClose( xDlg )
ENDMENU
ENDMENU
@ 400, 400 MONTHCALENDAR SIZE 250,250
gui_DialogActivate( xDlg )
RETURN Nil
dialog que uso pra tudo
Código: Selecionar todos
STATIC FUNCTION gui_DialogCreate( xDlg, nRow, nCol, nWidth, nHeight, cTitle, bInit, lModal )
IF Empty( bInit )
bInit := { || Nil }
ENDIF
INIT DIALOG xDlg ;
CLIPPER ;
FONT oFont ;
NOEXIT ;
TITLE cTitle + " (" + GUI():LibName() + ")" ;
AT nRow, nCol ;
SIZE nWidth, nHeight ;
BACKCOLOR COLOR_WHITE ;
ON INIT bInit
(xDlg);(lModal)
RETURN Nil
Funções em GUI(): é apenas uma classe intermediária, cada lib tem seu próprio fonte
GUI():DialogCreate() por exemplo, chama essa gui_DialogCreate() acima que é a forma da hwgui criar dialog.
Lembrando que isso é só porque dlgauto é pra várias LIBs, num uso normal vai direto sem intermediários.
SAIR COM ESC DO SISTEMA
Enviado: 02 Out 2024 13:06
por JoséQuintas
Só curiosidade:
Código: Selecionar todos
STATIC FUNCTION gui_DlgMenu( xDlg, aMenuList, aAllSetup, cTitle )
gui_DialogCreate( @xDlg, 0, 0, APP_DLG_WIDTH, APP_DLG_HEIGHT, cTitle )
IF xDlg:ClassName() == "TDIALOG"
gui_DialogActivate( xDlg, { || gui_DlgMenu2( xDlg, aMenuList, aAllSetup, cTitle ) }, .T. )
ELSE
gui_DlgMenu2( xDlg, aMenuList, aAllSetup, cTitle )
gui_DialogActivate( xDlg,, .T. )
ENDIF
RETURN Nil
Em FIVEWIN, quando dialog o menu precisa ir no INIT/ACTIVATE.
Faz sentido, porque o menu depende do handle da janela, e pra ter handle a janela precisa já ter sido criada.
Mas em todas as outras LIBs, incluindo HWGUI, é só criar o menu normalmente.
Talvez em HWGUI se não indicar o parent não funcione, não lembro mais se fiz o teste no início.