dúvida de iniciante em HwGui: tela de login
Enviado: 02 Nov 2021 20:44
Pessoal, estou tentando iniciar em HwGui, com muita dificuldade.
Fiz um programinha bem básico, que funciona.
Mas agora estou tentando incluir uma tela inicial de login nesse programinha e não está funcionando, não sei porquê.
O programinha está assim:
Quando comento esta parte:
Mas, quando chamo essa função login(), ele até chama, pede a senha, mas, quando clico no Ok na tela do login, ele volta a uma tela em branco, não aparecem os botões.
Imagino que tenha algum erro na chamada do login(), mas não sei onde está o erro.
Alguém pode me ajudar?
p.s.: A função login() ainda não está pronta, ainda não fiz a verificação da senha no MySQL.
Fiz um programinha bem básico, que funciona.
Mas agora estou tentando incluir uma tela inicial de login nesse programinha e não está funcionando, não sei porquê.
O programinha está assim:
Código: Selecionar todos
#include "hwgui.ch"
Function Main
Local oDlg, oFont, oFontSay, oFontC
Local nRecs :=0
Local nTp :=0, oSAY1, oSAY2
private nInicio :=0
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
PREPARE FONT oFontSay NAME "MS Sans Serif" WIDTH 0 HEIGHT -13 WEIGHT 700
PREPARE FONT oFontC NAME "Georgia" WIDTH 0 HEIGHT -15
INIT DIALOG oDlg TITLE "Chat" AT 100, 100 SIZE 540, 500 FONT oFont
if !login()
return .f.
endif
@ 20,12 SAY oSAY1 CAPTION "Inicio da coversa:" SIZE 260, 24 ;
FONT oFontSay COLOR 8404992
nTp=seconds()-nInicio
IF ++nRecs == 100
hwg_processmessage() ; nRecs := 0
EndIf
@ 20, 450 LINE LENGTH 500
@ 10,458 BUTTON "Iniciar contagem" SIZE 150,28 ;
ON CLICK {||iniciacontagem()}
@ 160,458 BUTTON "Ver contagem" SIZE 150,28 ;
ON CLICK {||vercontagem()}
@ 350,458 BUTTON "Close" SIZE 90,30 ON CLICK {||oDlg:Close()}
ACTIVATE DIALOG oDlg
Return Nil
function iniciacontagem
Local oDlg, oFont, oSAY1
nInicio:=seconds()
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
INIT DIALOG oDlg TITLE "Inicia contagem" AT 280, 210 SIZE 250, 250 FONT oFont
@ 10,40 SAY oSAY1 CAPTION "Contagem iniciada" SIZE 360, 36 //Precisa do OBJETO oSAY1
@ 10,190 BUTTON "Ok" SIZE 100, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}
ACTIVATE DIALOG oDlg
return Nil
Function vercontagem()
Local oDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oTimer, oSAY1, oSAY5
Local oE5, e5 := 0
INIT DIALOG oDlg CLIPPER NOEXIT TITLE "Contagem" AT 250,20 SIZE 250,350 FONT oFont
hwg_SetColorinFocus( oDlg,, 13172680 )
@ 15,20 SAY oSAY1 CAPTION "Contagem:" SIZE 260, 22
e5=seconds()-nInicio
@ 15,115 SAY oSAY5 CAPTION str(e5)+" segundos" SIZE 150, 26
@ 15,250 BUTTON "Ok" SIZE 80, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}
oDlg:bActivate:={||oDlg:Show(),CONTA(oSay5,e5)}
ACTIVATE DIALOG oDlg
Return Nil
Function CONTA(oSay5,e5)
Local nX:=0
FOR nX := 1 to 50
e5 := seconds() - nInicio
oSay5:SetText(str(e5))
inkey(.1)
NEXT
hwg_msginfo("Ok")
Return Nil
Function login()
Local oDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oTimer, oSAY1, oSAY5
Local snh := space(20)
Local oE5
INIT DIALOG oDlg CLIPPER NOEXIT TITLE "Log in" AT 250,20 SIZE 250,350 FONT oFont
hwg_SetColorinFocus( oDlg,, 13172680 )
@ 15,20 SAY oSAY1 CAPTION "Digite a sua senha:" SIZE 260, 22
@ 15,65 GET oE5 VAR snh SIZE 150, 26 //Precisa do objeto GET oE5
@ 15,250 BUTTON "Ok" SIZE 80, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}
ACTIVATE DIALOG oDlg
Return .t.
Tudo funciona corretamente.if !login()
return .f.
endif
Mas, quando chamo essa função login(), ele até chama, pede a senha, mas, quando clico no Ok na tela do login, ele volta a uma tela em branco, não aparecem os botões.
Imagino que tenha algum erro na chamada do login(), mas não sei onde está o erro.
Alguém pode me ajudar?
p.s.: A função login() ainda não está pronta, ainda não fiz a verificação da senha no MySQL.