Clipper On Line • Ver Tópico - Não entendi na hwgui oDlg:Browse:SetFocus()

Não entendi na hwgui oDlg:Browse:SetFocus()

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Não entendi na hwgui oDlg:Browse:SetFocus()

Mensagempor JoséQuintas » 23 Nov 2021 20:57

O que não entendi/não encontrei é:

Como é feito o vínculo entre oDlg e oDlg:oBrowse
Teria que existir o método/propriedade oBrowse na classe HDialog()
Em algum lugar deve existir a criação/destruição, ou alguma rotina que faça esse vínculo.

Imagino que seja algo parecido com uma rotina que foi postada no tópico do Harbour, que devo ter anotada em algum lugar.
Mesmo assim, provavelmente precisaria ser pelo nome da variável.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Não entendi na hwgui oDlg:Browse:SetFocus()

Mensagempor JoséQuintas » 23 Nov 2021 21:34

Deu um trabalhinho mas encontrei.

#xcommand @ <x>,<y> SAY [ <oSay> CAPTION ] <caption> ;
...
            [ TOOLTIP <ctoolt> ]       ;
          => ;
    [<oSay> := ] HStatic():New( <oWnd>,<nId>,<nStyle>,<x>,<y>,<width>, ;
        <height>,<caption>,<oFont>,<bInit>,<bSize>,<bDraw>,<ctoolt>,<color>,<bcolor>,<.lTransp.> );
    [; hwg_SetCtrlName( <oSay>,<(oSay)> )]


Esse último: hwg_SetCtrlName(), porque o nome da variável precisa vir do fonte.

E em hCustomWindow, igual já postaram por aqui:
METHOD OnError() CLASS HCustomWindow

   LOCAL cMsg := __GetMessage()
   LOCAL oError
   LOCAL oItem

   IF !Empty( oItem := hwg_GetItemByName( ::aControls, cMsg ) )
      RETURN oItem
   ENDIF


No caso de erro na classe, acessar um nome que não existe, procura na lista de controles se existe algum com aquele nome, e já assume.
Como isso fica na classe comum de janelas - todo controle herda isso - acaba funcionando.
Muito doido isso.

É isso que hmg não usa, sei lá se dá pra fazer isso sem alterar a parte interna dela.
Transformaria as "mensagens" em DoMethod( "" ) ou coisa parecida (acho que é isso que hmg usa).
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Não entendi na hwgui oDlg:Browse:SetFocus()

Mensagempor JoséQuintas » 23 Nov 2021 22:34

no prg

   @ 5, 5 SAY oDlg CAPTION "teste"


no ppo (traduzido pelo ch)

   oDlg := HStatic():New(,,,5,5,,,"teste",,,,,,,,.F. ) ; hwg_SetCtrlName( oDlg,"oDlg" )


O nome da variável, quando existe, vai no nome do controle.
É esquisito... com tanto parâmetro, um a mais não faria diferença, apesar que, o ideal seria ser o primeiro parâmetro, e isso mudaria tudo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro