Pendências no browse

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Por enquanto:

- Ícone não redimensiona
- ESC não sai do browse

O fonte usa funções do meu aplicativo, nem adianta o fonte pra compilar.

Código: Selecionar todos

#include "hwgui.ch"
#include "inkey.ch"
#include "hbgtinfo.ch"

PROCEDURE PTESHWGUIBrowse( cModule, cTitle, ... )

   LOCAL cnSQL := ADOLocal(), oTBrowse, cCampoKeyboard := "CODIGO", xValue

   hb_Default( @cTitle, "PESQUISA DE CIDADES" )
   WITH OBJECT cnSQL
      :Execute( "SELECT CINOME, CIUF, CIIBGE, IDCIDADE" + ;
         " FROM JPCIDADE" + ;
         " ORDER BY CINOME" )
      oTBrowse := { ;
         { "NOME", { || :String( "CINOME", 40 ) } }, ;
         { "UF",   { || :String( "CIUF", 2 ) } }, ;
         { "IBGE", { || :String( "CIIBGE", 7 ) } }, ;
         { "ID",   { || Str( :Number( "IDCIDADE" ), 6 ) } } }
      xValue := HWGUIBrowse( cTitle, cnSQL, oTBrowse, "CINOME,CIUF,CIIBGE", ;
         iif( cCampoKeyboard == "CODIGO", { || Str( :Number( "IDCIDADE" ), 6 ) }, { || :String( "CINOME", Len( GetActive():VarGet ) ) } ) )
      IF xValue != Nil
         MsgExclamation( Transform( xValue, "" ) )
      ENDIF
      :CloseRecordset()
   ENDWITH
   ( cModule )

   RETURN

FUNCTION HwguiBrowse( cTitle, cnSQL, oBrowseList, cFilterList, bCode )

   LOCAL oDlg, oBrowse, cFilter := "", lSelected := .F., xValue := Nil

   hb_Default( @cFilter, "" )

   INIT DIALOG oDlg ;
      AT AppWindowRect( 1 ), AppWindowRect( 2 ) SIZE AppWindowRect( 3 ), AppWindowRect( 4 ) ;
      TITLE cTitle

   @ 11, 101 BROWSE ARRAY oBrowse ;
      SIZE AppWindowRect( 3 ) - 10 - 10, AppWindowRect( 4 ) - 10 - 100 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL + DS_CENTER ;
      ON CLICK { || lSelected := .T., oDlg:Close() }
   oBrowse:aArray := cnSQL
   BrowseSet( oBrowse, oBrowseList, oDlg, @cFilter, lSelected )
   CreateButtons( oDlg, oBrowse )
   //SET KEY 0, VK_ESCAPE OF oDlg TO oDlg:Close()

   ACTIVATE DIALOG oDlg CENTER

   IF lSelected .AND. bCode != Nil
      xValue := Eval( bCode )
   ENDIF
   ( cFilterList )

   RETURN xValue

FUNCTION BrowseSet( oBrowse, oBrowseList, oDlg, cFilter, lSelected )

   LOCAL oElement

   (oDlg)
   oBrowse:bSkip  := { | o, nSkip | ADOSkipper( o:aArray, nSkip ) }
   oBrowse:bGotop := { | o | o:aArray:MoveFirst() }
   oBrowse:bGobot := { | o | o:aArray:MoveLast() }
   oBrowse:bEof   := { | o | o:nCurrent > o:aArray:RecordCount() }
   oBrowse:bBof   := { | o | o:nCurrent == 0 }
   oBrowse:bRcou  := { | o | o:aArray:RecordCount() }
   oBrowse:bRecno := { | o | o:aArray:AbsolutePosition() }
   oBrowse:bRecnoLog := oBrowse:bRecno
   oBrowse:bGOTO  := { | o, n | (o), o:aArray:Move( n - 1, 1 ) }

   FOR EACH oElement IN oBrowseList
      ADD COLUMN oElement[ 2 ] TO oBrowse HEADER oElement[ 1 ] LENGTH Int( Len( Transform( Eval( oElement[ 2 ] ), "" ) ) * 1.2 ) + 1
   NEXT

   oBrowse:bKeyDown := { | oBrw, nkey | oBrowseKey( oBrw, nkey, @cFilter, oDlg, lSelected ) }

   RETURN lSelected

FUNCTION ADOSkipper( cnSQL, nSkip )

   LOCAL nRec := cnSQL:AbsolutePosition()

   IF ! cnSQL:Eof()
      cnSQL:Move( nSkip )
      IF cnSQL:Eof()
         cnSQL:MoveLast()
      ENDIF
      IF cnSQL:Bof()
         cnSQL:MoveFirst()
      ENDIF
   ENDIF

   RETURN cnSQL:AbsolutePosition() - nRec

STATIC FUNCTION oBrowseKey( oDlg, oBrowse, nKey, cFilter, lSelected )

   nKey := hb_KeyStd( nKey )
   DO CASE
   CASE nKey == VK_RETURN .OR. nKey = VK_ESCAPE
      IF nKey == VK_RETURN
         lSelected := .T.
      ENDIF
      oDlg:Close()
      RETURN .F.
   CASE IsAscChar( nKey )
      IF nKey == VK_BACK
         IF Len( cFilter ) > 0
            cFilter := Left( cFilter, Len( cFilter ) - 1 )
         ENDIF
      ELSE
         cFilter += Upper( Chr( nKey ) )
      ENDIF
      oBrowse:aArray:Filter( iif( Empty( cFilter ), "", "CINOME LIKE '%" + cFilter + "%'" ) )
      IF oBrowse:aArray:Eof()
         oBrowse:aArray:Filter( "" )
      ENDIF
      oBrowse:Refresh()
   ENDCASE

   RETURN .T.

STATIC FUNCTION IsAscChar( nKey )

   DO CASE
   CASE nKey == VK_BACK
   CASE nKey >= Asc( "A" ) .AND. nKey <= Asc( "Z" )
   CASE nKey >= Asc( "a" ) .AND. nKey <= Asc( "z" )
   CASE nKey >= Asc( "0" ) .AND. nKey <= Asc( "9" )
   CASE hb_AScan( { " " }, { | e | nKey == Asc( e ) } ) != 0
   OTHERWISE
      RETURN .F.
   ENDCASE

   RETURN .T.

STATIC FUNCTION CreateButtons( oDlg, oBrowse )

   LOCAL nRow, nCol, cCaption, bCode, oBtn, cIcon
   LOCAL acOptions := { ;
      "Primeiro", "Pág.Ant", "Anterior", "Seguinte", "Pág.Seg", "Último", "Filtro", "Sair" }

   nCol := 10
   nRow := 10
   FOR EACH cCaption IN acOptions
      DO CASE
      CASE cCaption == "Primeiro"; cIcon := "icoTop" ;    bCode := { || oBrowse:Top() }
      CASE cCaption == "Último";   cIcon := "icoBottom" ; bCode := { || oBrowse:Bottom() }
      CASE cCaption == "Pág.Ant";  cIcon := "IcoPgUp";    bCode := { || oBrowse:PageUp() }
      CASE cCaption == "Pág.Seg";  cIcon := "IcoPgDn";    bCode := { || oBrowse:PageDown() }
      CASE cCaption == "Seguinte"; cIcon := "icoDown" ;   bCode := { || oBrowse:LineDown() }
      CASE cCaption == "Anterior"; cIcon := "icoUp" ;     bCode := { || oBrowse:LineUp() }
      CASE cCaption == "Filtro" ;  cIcon := "icoFilter" ; bCode := { || Nil }
      CASE cCaption == "Sair";     cIcon := "icoDoor" ;   bCode := { || oDlg:Close() }
      ENDCASE
      @ nCol, nRow OWNERBUTTON oBtn OF oDlg SIZE 80,80 ;
         ON CLICK bCode ;
         BITMAP ;
         /* AppLoadImage( cIcon, WIN_IMAGE_ICON, 70, 70 ) */ ;
         HICON():AddResource( cIcon, 70, 70 ) COORDINATES 5, 5, 75, 75 ;
         TEXT cCaption COORDINATES 5, 61, 75, 5 ;
         Tooltip cCaption
      oBtn:aStyle := ze_Set_StyleOBtn()
      nCol += 85
      IF nCol > 740
         nCol := 1
         nRow += 85
      ENDIF
   NEXT

   RETURN Nil
Não funcionou esta parte, pra sair com ESC:

Código: Selecionar todos

STATIC FUNCTION oBrowseKey( oDlg, oBrowse, nKey, cFilter, lSelected )

   nKey := hb_KeyStd( nKey )
   DO CASE
   CASE nKey == VK_RETURN .OR. nKey = VK_ESCAPE
      IF nKey == VK_RETURN
         lSelected := .T.
      ENDIF
      oDlg:Close()
      RETURN .F.
Não funcionou esta parte, pra redimensionar ícone, tentei várias opções, incluindo BITMAP xxx FROM RESOURCE

Código: Selecionar todos

      @ nCol, nRow OWNERBUTTON oBtn OF oDlg SIZE 80,80 ;
         ON CLICK bCode ;
         BITMAP ;
         /* AppLoadImage( cIcon, WIN_IMAGE_ICON, 70, 70 ) */ ;
         HICON():AddResource( cIcon, 70, 70 ) COORDINATES 5, 5, 75, 75 ;
         TEXT cCaption COORDINATES 5, 61, 75, 5 ;
         Tooltip cCaption
button.png
Acompanhando os fontes, o ícone é carregado com tamanho 70 x 70
Nessa parte marcada, o retorno é 70 x 70
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

E parou de funcionar filtrar conforme digita.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Código: Selecionar todos

   oBrowse:bKeyDown := { | oBrw, nkey | oBrowseKey( oDlg, oBrw, nkey, @cFilter, lSelected ) }
Ordem errada.
Ok, dois resolvidos, do ESC e do filtro.

Sobrou o tamanho do ícone pra resolver.

Ah, sim....
Não precisou de funções VK_

Código: Selecionar todos

   CASE nKey == K_ENTER .OR. nKey == K_ESC
      IF nKey == K_ENTER
         lSelected := .T.
      ENDIF
      oDlg:Close()
      RETURN .F.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

browse.png
botão 80 x 80, ícone 70 x 70 mas está menor que isso.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

icon.png
Alterando pra 32 x 32 deu no mesmo.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

texto.png
Se não indicar as coordenadas do texto, sai abaixo da imagem.
Mas pelo fonte da hwgui, sairia na última linha do button.
Por isso mencionei em outro post, que parece que a hwgui está considerando que o button é menor do que é, 80x80
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Pendências no browse

Mensagem por Itamar M. Lins Jr. »

Olá!
O browse depois de muito penar, comecei a usar assim, "dica do Alexader Kresin"

Código: Selecionar todos

    oBrw:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam, oDlg)}    
...
Static FUNCTION fKeyDown(oBrw, msg, wParam, lParam, oDlg)
LOCAL nKEY := hwg_PtrToUlong( wParam ) //wParam

IF msg == WM_KEYDOWN

   IF nKey = VK_F1
...
ENDIF

IF msg == WM_CHAR //Aqui procurar por letrar (filtro) seek detalhe que não é campo GET que recebe o que é digitado.
   IF nKey = VK_ESCAPE
      hwg_EndDialog()
      RETURN .T.
   ENDIF 
ENDIF

RETURN .T.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Assim só complica, tá usando direto a API do Windows.
O browse já tem rotina pra teclas.

Uma recomendação de outro usuário é NÃO USAR hwg_EndDialog() e sim oDlg:Close()
Talvez por ser versão de hwgui 2.17, e criar outros problemas, mas mesmo assim, sabemos exatamente o que vai ser fechado.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Comentários sobre o fonte:

Código: Selecionar todos

STATIC FUNCTION oBrowseKey( oDlg, oBrowse, nKey, cFilter, lSelected )

   nKey := hb_KeyStd( nKey )
   DO CASE
   CASE nKey == K_ENTER .OR. nKey == K_ESC
      IF nKey == K_ENTER
         lSelected := .T.
      ENDIF
      oDlg:Close()
      RETURN .F.
   CASE IsAscChar( nKey )
      IF nKey == K_BS
         IF Len( cFilter ) > 0
            cFilter := Left( cFilter, Len( cFilter ) - 1 )
         ENDIF
      ELSE
         cFilter += Upper( Chr( nKey ) )
      ENDIF
      oBrowse:aArray:Filter( iif( Empty( cFilter ), "", "CINOME LIKE '%" + cFilter + "%'" ) )
      IF oBrowse:aArray:Eof()
         oBrowse:aArray:Filter( "" )
      ENDIF
      oBrowse:Refresh()
   ENDCASE

   RETURN .T.

STATIC FUNCTION IsAscChar( nKey )

   DO CASE
   CASE nKey == VK_BACK
   CASE nKey >= Asc( "A" ) .AND. nKey <= Asc( "Z" )
   CASE nKey >= Asc( "a" ) .AND. nKey <= Asc( "z" )
   CASE nKey >= Asc( "0" ) .AND. nKey <= Asc( "9" )
   CASE hb_AScan( { " " }, { | e | nKey == Asc( e ) } ) != 0
   OTHERWISE
      RETURN .F.
   ENDCASE

   RETURN .T.
hb_KeyStd() deu certo pra teclado normal, mas não pra teclado numérico, saem letras ao invés de números
Sem testes adicionais.

Código: Selecionar todos

      @ nCol, nRow OWNERBUTTON oBtn OF oDlg SIZE 80,80 ;
         ON CLICK bCode ;
         BITMAP ;
         /* AppLoadImage( cIcon, WIN_IMAGE_ICON, 70, 70 ) */ ;
         HICON():AddResource( cIcon, 60, 60 ) COORDINATES 5, 5, 60, 60 ;
         TEXT cCaption COORDINATES 5, 61, 75, 5 ;
         Tooltip cCaption
Estou especificando tamanho do ícone e coordenadas.
Não testei fazendo diferente, e isso por enquanto é problema, conforme mencionei no post sobre a alteração.
Se omitir o tamanho do ícone, vai o tamanho atual, o que causa não redimensionar.
Não testei sem indicar coordenadas, mas deve ser usado o tamanho do button, o que vai causar do texto sair encima do desenho.
De qualquer forma, esse já era o default anterior, então, nenhuma novidade, a não ser funcionar se indicar os tamanhos/posições.
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/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Pendências no browse

Mensagem por Fernando queiroz »

Código: Selecionar todos

STATIC FUNCTION IsAscChar( nKey )

   DO CASE
   CASE nKey == VK_BACK
   CASE nKey >= Asc( "A" ) .AND. nKey <= Asc( "Z" )
   CASE nKey >= Asc( "a" ) .AND. nKey <= Asc( "z" )
   CASE nKey >= Asc( "0" ) .AND. nKey <= Asc( "9" )
   CASE hb_AScan( { " " }, { | e | nKey == Asc( e ) } ) != 0
   OTHERWISE
      RETURN .F.
   ENDCASE

   RETURN .T.
Feita a correcao para funcionar o teclado numerico

Código: Selecionar todos

**************************************************************************************************************************************
FUNCTION IsAscChar( nKeyPress )
**************************************************************************************************************************************
   DO CASE
      
   CASE nKeyPress == VK_BACK
   CASE nKeyPress == Asc( "`" )
         nKeyPress := Asc( "0" )
   CASE nKeyPress == Asc( "a" )
         nKeyPress := Asc( "1" )
   CASE nKeyPress == Asc( "b" )
         nKeyPress := Asc( "2" )
   CASE nKeyPress == Asc( "c" )
         nKeyPress := Asc( "3" )
   CASE nKeyPress == Asc( "d" )
         nKeyPress := Asc( "4" )
   CASE nKeyPress == Asc( "e" )
         nKeyPress := Asc( "5" )
   CASE nKeyPress == Asc( "f" )
         nKeyPress := Asc( "6" )
   CASE nKeyPress == Asc( "g" )
         nKeyPress := Asc( "7" )
   CASE nKeyPress == Asc( "h" )
         nKeyPress := Asc( "8" )
   CASE nKeyPress == Asc( "i" )
         nKeyPress := Asc( "9" )
   CASE nKeyPress == Asc( "j" )
         nKeyPress := Asc( "*" )
   CASE nKeyPress >= Asc( "A" ) .AND. nKeyPress <= Asc( "Z" )
//	CASE nKeyPress >= Asc( "a" ) .AND. nKeyPress <= Asc( "z" )
   CASE nKeyPress >= Asc( "0" ) .AND. nKeyPress <= Asc( "9" )
   CASE hb_AScan( { " " }, { | e | nKeyPress == Asc( e ) } ) != 0
   OTHERWISE
      RETURN .F.
   ENDCASE
   
   RETURN .T.
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Pendências no browse

Mensagem por Itamar M. Lins Jr. »

Olá!
Feita a correcao para funcionar o teclado numerico
Por isso eu falei para usar o bOther...mas cada um sabe de si.
Esse problema apareceu nas versões 2.17 em diante por ai(se não me falha a memória). Pq não tinha esse BUG. Motivo pelo qual troquei para bOther.(Solução do Kresin)
Mas... Como era APENAS eu USANDO e PASSANDO OS PROBLEMAS e quem corrigia era ele, adotei a dica dele e pronto.
Esse negocio de hwg_enddialog() ou oDLG:Close() Tanto FAZ. Não fede nem cheira pra mim... Com tanto que funcione.
Pq a janela DIALOG pode ter o nome oDLG_X, oDLG_Y... e com hwg_enddialog() vai fechar a que tiver em uso no momento... Mas se eu fechar a dialog PAI dá erro nas outras.... Então é isso, cada um sabe de si.

Quem quiser ver eu reclamando desse BUG tá lá no SVN. O ano que aconteceu o BO.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Por isso eu falei para usar o bOther..
Como assim?
Os valores são diferentes?
Itamar M. Lins Jr. escreveu:Pq a janela DIALOG pode ter o nome oDLG_X, oDLG_Y... e com hwg_enddialog() vai fechar a que tiver em uso no momento... Mas se eu fechar a dialog PAI dá erro nas outras.... Então é isso, cada um sabe de si.
Mas geralmente vai seguir uma sequência nos fontes, e não vai fechar a pai antes das filhas.

A não ser meu uso com multithread, que vai abrir janelas à vontade, e fechar qualquer uma a qualquer momento.
Apesar que já notei pelo menos um problema, que ainda vou confirmar depois, antes do uso definitivo, a janela dando interferência no funcionamento da outra, causando uma demora a mais.
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Pendências no browse

Mensagem por Itamar M. Lins Jr. »

Olá!
Como assim?
Os valores são diferentes?
Não sei. Se naquela época eu já não sabia imagine agora... Eu sei que as teclas aparecem ERRADAS.O ponto por exemplo aparece 3/4... e por ai vai.
Talvez UNICODE, mas eu não sei. Pq tanta gente usa e ninguém na época reclamou disso. Até esse momento agora que o Fernando Queiroz postou esse código e eu lembrei do momento que peguei esse BUG.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pendências no browse

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:ão sei. Se naquela época eu já não sabia imagine agora... por exemplo aparece 3/4... e por ai vai.
Acho que minha pergunta não foi clara.

Em bOthers, o código da tecla é certo ou errado?

Se for certo, então o tratamento foi feito apenas em locais específicos.

É que o troço é simples e complicado ao mesmo tempo.
É algo como usar o Inkey() do Windows, o que à primeira vista é simples.
O problema é que esse Inkey() do Windows não tem um ponto de entrada único no aplicativo, teria que converter em todos os lugares aonde usa isso.
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Pendências no browse

Mensagem por Itamar M. Lins Jr. »

Olá!
Em bOthers, o código da tecla é certo ou errado?
Está correto o retorno e aparece na tela tudo OK.
Já usando:

Código: Selecionar todos

@ 5,80 Browse oBrw DataBase of oDlg ... On KeyDown 
fica errado na tela as teclas o teclado numérico não funcionam.
Conforme vc VIU ai no tratamento do Fernando.
Na época eu estava sem tempo( assim como hoje rsrsr) de ficar procurando resolver esse problema, só reportei e o resto da história vc já sabe.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder