Desabilitar/Habilirar todos os Componentes de Tela
Moderador: Moderadores
Desabilitar/Habilirar todos os Componentes de Tela
Tem como desabilitar/habilitar todos os componentes de tela inclusive botões com uma simples chamada por aEval ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Desabilitar/Habilirar todos os Componentes de Tela
Não conheço hwgui, então responder com outra pergunta: tem como obter todos os controles e deixar num array?asimoes escreveu:Tem como desabilitar/habilitar todos os componentes de tela inclusive botões com uma simples chamada por aEval ?
No VB era for EACH oControl IN ME.Controls
ME = tradução mim = formulário atual = na classe Harbour é SELF
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/
Desabilitar/Habilirar todos os Componentes de Tela
Quintas,
Eu indentifiquei nos fontes da hwgui a variável aConstrols mas não seu se essa variável contém todos os objetos de tela e como acessar a propriedade para colocar enable / disable
Eu indentifiquei nos fontes da hwgui a variável aConstrols mas não seu se essa variável contém todos os objetos de tela e como acessar a propriedade para colocar enable / disable
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Desabilitar/Habilirar todos os Componentes de Tela
Veja se na criação de um controle, se é adicionado algum elemento ao "controle pai".
Se for adicionado ao form, seria pegar do form.
Se existir a indicação no controle de quem é o pai, verifique se existe uma lista geral.
Se for adicionado ao form, seria pegar do form.
Se existir a indicação no controle de quem é o pai, verifique se existe uma lista geral.
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Desabilitar/Habilirar todos os Componentes de Tela
Olá!
Escrevi este código há algum tempo mas depois não precisei usar. Nem compilei. Veja se funciona. Acho que com AEval() não seria uma boa...
Escrevi este código há algum tempo mas depois não precisei usar. Nem compilei. Veja se funciona. Acho que com AEval() não seria uma boa...
Código: Selecionar todos
//------------------------------------------------------------------------------------------------------------------
FUNCTION LockUnlockControls( oDlg, lOper )
LOCAL o
If Hb_IsObject( oDlg )
If Hb_IsLogical( lOper )
For Each o In oDlg:aControls
Try
If lOper
// habilitar
If ! o:enabled()
o:enable()
Endif
Else
// desabilitar
If o:enabled()
o:disable()
Endif
Endif
Catch
// caso algum controle não tenha os métodos enable() / disable()
End Try
Next
oDlg:refresh()
Endif
Endif
RETURN NIL
//------------------------------------------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Desabilitar/Habilirar todos os Componentes de Tela
Ola!
Uma função que já vi, mas não lembro o nome agora... DisableEnableALL...bla... etc
Não uso, não precisei desligar todos os controles de uma Window/Dialog, mas acredito que o caminho é por essas funções.
Não testei.
Saudações,
Itamar M. Lins Jr.
Uma função que já vi, mas não lembro o nome agora... DisableEnableALL...bla... etc
Código: Selecionar todos
2019-02-19 11:35 UTC+0300 Alexander Kresin <alex@...>
* source/gtk/hcwindow.prg
* source/winapi/hcwindow.prg
* New function hwg_GetItemByName( arr, cName ) has been added, which looks for
an object in an array by the object's name (:objname), for example:
oDlg := GetItemByName( HDialog():aModalDialogs, "ODLG1" )
oFont := GetItemByName( HFont():aFonts, "OFONTBOLD" )
Código: Selecionar todos
FUNCTION hwg_CreateGetList( oDlg )
LOCAL i, j, aLen1 := Len( oDlg:aControls ), aLen2
FOR i := 1 TO aLen1
IF __ObjHasMsg( oDlg:aControls[i], "BSETGET" ) .AND. oDlg:aControls[i]:bSetGet != Nil
AAdd( oDlg:GetList, oDlg:aControls[i] )
ELSEIF !Empty( oDlg:aControls[i]:aControls )
aLen2 := Len( oDlg:aControls[i]:aControls )
FOR j := 1 TO aLen2
IF __ObjHasMsg( oDlg:aControls[i]:aControls[j], "BSETGET" ) .AND. oDlg:aControls[i]:aControls[j]:bSetGet != Nil
AAdd( oDlg:GetList, oDlg:aControls[i]:aControls[j] )
ENDIF
NEXT
ENDIF
NEXT
RETURN Nil
Código: Selecionar todos
LOCAL aControls := oWnd:aControls, oItem
FOR EACH oItem IN aControls
IF oItem:bSize != NIL
Eval( oItem:bSize, oItem, hwg_Loword( lParam ), hwg_Hiword( lParam ) )
ENDIF
NEXT
Código: Selecionar todos
For n:=1 to len(HDialog:aControls)
HDialog:aControls[n]:Disable()
Next
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Desabilitar/Habilirar todos os Componentes de Tela
Itamat,
Funcionou:
Funcionou:
Código: Selecionar todos
For n:=1 to len(ThisForm:aControls)
ThisForm:aControls[n]:Disable()
Next
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Desabilitar/Habilirar todos os Componentes de Tela
Fiz assim também:
Código: Selecionar todos
FOR EACH oElemento IN ThisForm:aControls
IF Hb_IsObject( oElemento )
oElemento:disable()
ENDIF
NEXT
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Desabilitar/Habilirar todos os Componentes de Tela
Essa última dá pra transformar em AEval
Não resisti.... comparem com meu uso de GTWVG
Código: Selecionar todos
AEval( HDialog:aControls, { | e | e:Disable() } )
Código: Selecionar todos
METHOD GUIEnable() INLINE AEval( ::aGuiButtons, { | oElement | oElement[ 3 ]:Enable() } )
METHOD GUIDisable() INLINE AEval( ::aGuiButtons, { | oElement | oElement[ 3 ]:Disable() } )
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Desabilitar/Habilirar todos os Componentes de Tela
Ola!
O problema em ficar insistindo em tecnologias obsoletas gera um cansaço extra.
Qualquer GT do Harbour é ponto de partida. Apenas para acelerar a migração do velho Clipper(DOS) para um meio termo que são as GT's.
Até a Hwgui, progride muito lentamente, não tem a quantidade de usuários para fazer progredir mais rápido.
Muitos que chegaram na Hwgui, o que fizeram foi travar a Hwgui, criando mais um fork, mais um xDesigner, mais um não sei o quê, no final de 5,6 anos não tem mais nada.
Imagine qualquer GT do Harbour com meia dúzia de usuários.
Estou vendo o Lazarus, o progresso que fez todo esse tempo, quantas pessoas estão usando, etc.. Só na parte de conexão com DB, já tem uma infinidade, relatórios etc... tudo ok com milhões de usuários e exemplos pra tudo que é controle que está na RAD(IDE). Até o Linux, o Ubuntu está melhor que o Windows 10 em muita coisa. O PrintScreen por exemplo que tirei, já gravou na pasta \Download\... Um arquivo com o nome "Captura de tela de 2020-05-14 19-57-18.png"
Vamos dizer que com essas ferramentas 70% do que precisamos basta saber qual controle o resto são as linhas de códigos que digitamos.
No Harbour ainda é 70% de códigos que temos que digitar e 30% é que está pronto.
Saudações,
Itamar M. Lins Jr.
O problema em ficar insistindo em tecnologias obsoletas gera um cansaço extra.
Qualquer GT do Harbour é ponto de partida. Apenas para acelerar a migração do velho Clipper(DOS) para um meio termo que são as GT's.
Até a Hwgui, progride muito lentamente, não tem a quantidade de usuários para fazer progredir mais rápido.
Muitos que chegaram na Hwgui, o que fizeram foi travar a Hwgui, criando mais um fork, mais um xDesigner, mais um não sei o quê, no final de 5,6 anos não tem mais nada.
Imagine qualquer GT do Harbour com meia dúzia de usuários.
Estou vendo o Lazarus, o progresso que fez todo esse tempo, quantas pessoas estão usando, etc.. Só na parte de conexão com DB, já tem uma infinidade, relatórios etc... tudo ok com milhões de usuários e exemplos pra tudo que é controle que está na RAD(IDE). Até o Linux, o Ubuntu está melhor que o Windows 10 em muita coisa. O PrintScreen por exemplo que tirei, já gravou na pasta \Download\... Um arquivo com o nome "Captura de tela de 2020-05-14 19-57-18.png"
Vamos dizer que com essas ferramentas 70% do que precisamos basta saber qual controle o resto são as linhas de códigos que digitamos.
No Harbour ainda é 70% de códigos que temos que digitar e 30% é que está pronto.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Desabilitar/Habilirar todos os Componentes de Tela
Sei lá o que significa isso.Itamar M. Lins Jr. escreveu:O problema em ficar insistindo em tecnologias obsoletas gera um cansaço extra.
Na prática, nem lembro mais como mexer em GTWVG.
A única coisa que comentei foi de fazer funcionar os controles extras no 3.2.
E, tirar proveito do que existe, coisa que ninguém faz, nem mesmo das libs gráficas oficiais que fazem parte do Harbour. (core, não contribuição)
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/
Desabilitar/Habilirar todos os Componentes de Tela
Olá,
Eu uso a Qt5Xhb, e optei em todas as telas, ter um objeto GroupBox abrangendo toda tela e coloco todos os objetos dentro destes GroupBox, e quando quero desabilitar todos os objetos, desabilito somente o GroupBox e pronto.
Talvez na HWGui isto também funcione.
Eu uso a Qt5Xhb, e optei em todas as telas, ter um objeto GroupBox abrangendo toda tela e coloco todos os objetos dentro destes GroupBox, e quando quero desabilitar todos os objetos, desabilito somente o GroupBox e pronto.
Talvez na HWGui isto também funcione.
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
