Clipper On Line • Ver Tópico - Adcionar Propriedade/Variavel, Method Dinamicamente

Adcionar Propriedade/Variavel, Method Dinamicamente

Projeto Harbour QT - HbQt, HbXBP e HbIDE

Moderador: Moderadores

 

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor dbsh » 19 Jan 2022 14:19

Adicionar dinamicamente a classe do harbour ou criada por você
Variavel/Propriedade, Method
Podera ser TBrowse, Error ou outra classe qualquer, desde que tenha o propriedade classH

#include "hbqtgui.ch"

#command QT CONNECT    <o> SIGNAL <s> SLOT <exec>   [TO <v>] => [<v> := ]Connect( <o>, <s>, <exec> )
#command QT DISCONNECT <o> SIGNAL <s> [TO <v>] => [<v> := ]Disconnect(<o>, <s> )

FUNCTION AddVar(oCls, sVar, uSet, lClose, lInLine )
LOCAL oClose

DEFA lClose To .F. //alterado para .f. em 23/08/17

IF __ObjHasData(oCls, sVar)
   IF !Empty(lClose)
      oClose := ObjGetMsg(oCls, sVar)
      IF __ObjHasMsg(oClose, "Close")
          oClose:Close()
      ENDIF
   ENDIF
ELSE
   IF !Empty(lInLine) .and. ValType(uSet) = 'B'
      __clsAddMsg( oCls:classH, sVar, {| Self, p | (Self), Eval(uSet, p) }, 3, NIL, )
   ELSE
       __clsAddMsg( oCls:classH, sVar, __cls_IncData( oCls:classH ), 32 + 1, NIL, )
   ENDIF
ENDIF

__objSendMsg( oCls, '_' + sVar, uSet )

RETURN uSet

FUNCTION AddMethod(oCls, sMet, uSet)

IF !__ObjHasMsg(oCls, sMet)
   IF ValType(uSet) = 'B'
      __clsAddMsg( oCls:classH, sMet, {| Self, ... | Eval(uSet, Self, ...) }, 3, NIL, )
   ELSE
      __clsAddMsg( oCls:classH, sMet, @uSet, 0, NIL, )
   ENDIF
ENDIF

RETURN oCls

function GetActiveSet(oEdit)
local Self, Old

Self := QSelf()

Old := Self:GetActive
Self:GetActive := oEdit

return Old

//uConnect pode ser numero ou caracter
procedure Connect(oClasse, uConnect, cbConnect)

oClasse:connect( uConnect, cbConnect )

return

//uConnect pode ser numero ou caracter
procedure Desconnect(oClasse, uConnect)

oClasse:Disconnect( uConnect )

return



EXEMPLO DE USO:

procedure main()
local oDialog, oEdit

oDialog := QDialog()
oEdit := QLineEdit(oDialog)
oEdit:Move( 100, 100 )  //esquerda, topo
oEdit:resize( 150, 20 ) //largura, altura

addvar(oDialog, 'GetActive')
addMethod(oDialog, 'GetActiveSet' )
// OU
//addMethod(oDialog, {|p| GetActiveSet(p)} )

qt connect oEdit signal QEvent_FocusIn  slot {|/*oFocus*/| (oDialog:GetActive := oEdit) }
qt connect oEdit signal QEvent_FocusOut slot {|/*oFocus*/| (oDialog:GetActive := NIL) }
// OU
//qt connect oEdit signal QEvent_FocusIn  slot {|/*oFocus*/| (oDialog:GetActiveSet(oEdit)) }
//qt connect oEdit signal QEvent_FocusOut slot {|/*oFocus*/| (oDialog:GetActiveSet()) }

/*
QEvent_FocusIn  e QEvent_FocusOut
Pode ser usado para pre validar e pos validar edicao
*/

QApplication():processEvents()
oDialog:Exec()

return

010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 100
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor Itamar M. Lins Jr. » 19 Jan 2022 14:52

Olá!
Estamos precisando de pessoas para ensinar usar a QtContribs.
Como fazer para instalar e usar, alguns exemplos.
Fiz logo quando começou mas não pratiquei e não lembro... Fiquei na Hwgui.
Vc usa a Qtcontribs profissionalmente ?

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6007
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 241 vezes
Mens.Curtidas: 358 vezes

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor dbsh » 19 Jan 2022 15:58

A mais de 5 anos que nem me lembro mais.
Uso no sistema de retaguarda
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 100
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor dbsh » 19 Jan 2022 17:14

Conferindo nas copias e no GIT por curiosidade
Primeira versão de produção foi em 08/11/2012
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 100
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor dbsh » 19 Jan 2022 17:15

Estou a disposição na medida do possivel, terei prazer em atender
Uso com WVG
90% do meu sistema de retaguarda esta em QT, os 10% ainda esta em WVG, não consegui arrumar tempo para alterar toda as telas de cadastro e um browse que tem muitos recursos ainda não implementado no meu browse em qt
Tem uma ajuda ensinado a prender janela WVG dentro de uma QMainWindows: http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=26175
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 100
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Adcionar Propriedade/Variavel, Method Dinamicamente

Mensagempor dbsh » 19 Jan 2022 17:39

Sou minimalista, quanto mais simples mais pratico
Alguns anos atraz enchia a tela de informação
Agora coloquei uma ? na tela principal para visualizar as informações diversas
Tem também uma opção de noticias/avisos no canto direito, quando não tem nenhuma janela aberta, mas neste cliente que tirei printscreen esta desativada
só aparece quando e uma informação obrigatória para o cliente
Algumas imagens do meu sistema
Anexos
relatorio_venda.png
Relatorio de venda
wvg.png
QT com WVG
grafica.png
Tela grafica em QT
menu.png
Menu em QT
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 100
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes




Retornar para QtContribs - HBQT

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


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