Problema:
Se chamar a rotina a partir do menu ok, a window funciona normalmente.
Se chamar a rotina a partir de um valid... a window tem o getbox e o valid dele não funciona.
Como debugar isso?
VALID não funciona
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
VALID não funciona
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
VALID não funciona
Usando GETBOX com VALID não vai de jeito nenhum.
Usando GETBOX com ON LOSTFOCUS deu certo, ainda não percebi se vai ter efeitos colaterais.
Na HMG3 isso funciona normalmente nos dois casos !!!!
Usando GETBOX com ON LOSTFOCUS deu certo, ainda não percebi se vai ter efeitos colaterais.
Na HMG3 isso funciona normalmente nos dois casos !!!!
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
ivanil
- Usuário Nível 3

- Mensagens: 166
- Registrado em: 11 Set 2004 15:13
- Localização: Florianópolis/SC
VALID não funciona
Ola;
O Valid do getbox necessariamente é obrigatório o uso de bloco; como você não postou o código, acredito que seja isso;
eu até levantei essa questão com o Grigory, pois a documentação diz valer as duas condições {função,Bloco}; mas a realidade é que só aceita bloco;
tem uns exemplos muito interessante no samples\basic\getbox;
At;
Ivanil
O Valid do getbox necessariamente é obrigatório o uso de bloco; como você não postou o código, acredito que seja isso;
eu até levantei essa questão com o Grigory, pois a documentação diz valer as duas condições {função,Bloco}; mas a realidade é que só aceita bloco;
tem uns exemplos muito interessante no samples\basic\getbox;
At;
Ivanil
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
VALID não funciona
Código: Selecionar todos
#include "hmg.ch"
#include "i_altsyntax.ch"
#include "i_winuser.ch"
PROCEDURE Main
LOCAL Dlg1, Text1, Text2, Label1, Label2
SET WINDOW MAIN OFF
SET NAVIGATION EXTENDED
test2()
gui_DialogCreate( @Dlg1, 0, 0, 1024, 768, "test" )
gui_LabelCreate( Dlg1, @Label1, 20, 5, 100, 20, "field 1" )
gui_TextCreate( Dlg1, @Text1, 20, 200, 200, 20, "entervalue", { || test2(), .T. } )
gui_labelCreate( Dlg1, @Label2, 50, 5, 100, 20, "field 2" )
gui_TextCreate( Dlg1, @Text2, 50, 200, 20, 20, "anothervalue" )
ACTIVATE WINDOW (Dlg1)
RETURN
FUNCTION Test2()
LOCAL Dlg2, Text3, Text4, Label3, Label4
gui_DialogCreate( @Dlg2, 0, 0, 1024, 768, "test" )
gui_LabelCreate( Dlg2, @Label3, 20, 5, 100, 20, "field 1" )
gui_TextCreate( Dlg2, @Text3, 20, 200, 200, 20, "entervalue", { || MsgBox( "test" ), .T. } )
gui_labelCreate( Dlg2, @Label4, 50, 5, 100, 20, "field 2" )
gui_TextCreate( Dlg2, @Text4, 50, 200, 20, 20, "anothervalue" )
ACTIVATE WINDOW (Dlg2)
RETURN Nil
FUNCTION gui_DialogCreate( xDlg, nRow, nCol, nWidth, nHeight, cTitle )
STATIC n := 0
n += 1
xDlg := "DLG" + StrZero( n, 3 )
DEFINE WINDOW ( xDlg ) ;
AT nCol, nRow ;
WIDTH nWidth ;
HEIGHT nHeight ;
TITLE cTitle ;
MODAL
END WINDOW
RETURN Nil
FUNCTION gui_LabelCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, xValue )
STATIC n := 0
n += 1
xControl := "lbl" + StrZero( n, 3 )
DEFINE LABEL ( xControl )
PARENT ( xDlg )
COL nCol
ROW nRow
WIDTH nWidth
HEIGHT nHeight
VALUE xValue
END LABEL
RETURN Nil
FUNCTION gui_textCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, xValue, bValid )
STATIC n := 0
n += 1
xControl := "text" + StrZero( n, 3 )
DEFINE GETBOX ( xControl )
PARENT ( xDlg )
ROW nRow
COL nCol
HEIGHT nHeight
WIDTH nWidth
VALUE xValue
IF ! Empty( bValid )
//ON LOSTFOCUS Eval( bValid )
VALID bValid // testing about bug?
ENDIF
END GETBOX
RETURN Nil
Chama test2, ok, valid funciona.
Chama test1 valid funciona e abre test2, mas aí o valid do test2 não funciona.
Trocando pro lostfocus tudo funciona.
O problema do valid é quando chamado de dentro de outro valid.
Pra testar com lostfocus, só descomentar lostfocus e comentar o valid, tá quase no final.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
VALID não funciona
Aproveitando....
Nessas horas é só por intuição.
Procurar bug não resolve.
Mas veio na cabeça a idéia de testar com lostfocus, e aí funcionou.
E também ajudou estar rodando o mesmo fonte com libs diferentes.
Isso ajuda a eliminar possibilidades de partes dos fontes.
Seguindo o mesmo raciocínio......
em HMG3 dá erro de run-time nisso se usar compilada pra UNICODE.
Talvez o VALID mexa com codepage.
Nessas horas é só por intuição.
Procurar bug não resolve.
Mas veio na cabeça a idéia de testar com lostfocus, e aí funcionou.
E também ajudou estar rodando o mesmo fonte com libs diferentes.
Isso ajuda a eliminar possibilidades de partes dos fontes.
Seguindo o mesmo raciocínio......
em HMG3 dá erro de run-time nisso se usar compilada pra UNICODE.
Talvez o VALID mexa com codepage.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
VALID não funciona
Acrescentei uma informação extra lá na minigui:
Na HMG3, quando comecei com níveis de dialog, e chamar do VALID, recebei erros de run-time, vindos da rotina de unicode.
O erro era referente EVAL não ser método, e isso só existe na rotina de unicode, xxx:Eval()
Mudei HMG3 pra ANSI, e tudo passou a funcionar.
Isso dá a impressão de que há alguma troca de codepage no getbox, que acaba afetando o que roda dentro do valid/tget usado pelo getbox.
De repente minigui utf-8 e tget do getbox ansi do harbour, sei lá o que acontece nas profundezas de baixo nível.
Na HMG 3 tem o ch pra alterar de ANSI pra unicode e vice-versa, mas na HMG Extended e na OOHG não existe isso. apesar que GETBOX é exclusivo HMG Extended. É uma possibilidade, principalmente se essa situação gerar conversão dupla de unicode ou algo assim.
Na HMG3, quando comecei com níveis de dialog, e chamar do VALID, recebei erros de run-time, vindos da rotina de unicode.
O erro era referente EVAL não ser método, e isso só existe na rotina de unicode, xxx:Eval()
Mudei HMG3 pra ANSI, e tudo passou a funcionar.
Isso dá a impressão de que há alguma troca de codepage no getbox, que acaba afetando o que roda dentro do valid/tget usado pelo getbox.
De repente minigui utf-8 e tget do getbox ansi do harbour, sei lá o que acontece nas profundezas de baixo nível.
Na HMG 3 tem o ch pra alterar de ANSI pra unicode e vice-versa, mas na HMG Extended e na OOHG não existe isso. apesar que GETBOX é exclusivo HMG Extended. É uma possibilidade, principalmente se essa situação gerar conversão dupla de unicode ou algo assim.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/