Página 1 de 1

hbqt + __objadddata

Enviado: 20 Set 2012 11:33
por MARCELOG
Olá pessoal,
trabalhando com a hbqt, através de formulários, fui obrigado a estudar (e aprender) um pouco de classe.
Assim, pesquisando, encontrei a funções de baixo nível __obj..., que permitem, de forma simplificada, trabalhar com as classes, inserindo/ excluindo variáveis e métodos.
Quando se trata de objetos, sempre achei importante uma variável para o programador, onde ele pode armazenar "algo mais" na mesma.
Adorava a variável "cargo" do tbrowse onde eu armazenava, por exemplo, as regras para o filtro de registros, o alias do banco de dados, etc..
Mas as funções acima são um verdeiro achado porque permitem alterar a classe já existente sem complicação ou problema.
Estou utilizando a hbqt+sqlite.
Assim, na janela principal, relativa a qmainwindow() por exemplo, eu posso armazenar o endereço e nome banco de dados, o usuario ativo e, qualquer outra coisa necessária ao funcionamento do sistema que permanecerá vinculado ao objeto.
A partir daí, vai ser necessário administrar apenas o escopo da variável vinculada ao objeto, sem necessidade de criar e administrar outras variáveis externas.

Ex:
...

Código: Selecionar todos

local fmain

fmain := qmainwindow()

__objadddata(fmain,'DATABASE') // Cria a variável DATABASE e vincula a mesma ao objeto
__objadddata(fmain,'USUARIO') // Cria a variável USUARIO e vincula a mesma ao objeto

// Definindo valor das variáveis

fmain:DATABASE := 'c:\qualquerlugar\nomebancodedados'

fmain:USUARIO := '00001'

teste(fmain)
...

procedure teste(fmain)

message(fmain:DATABASE) // Exibe 'c:\qualquerlugar\nomebancodedados'

message(fmain:USUARIO) // Exibe '00001'

return
Viu, é muito fácil!

Dê uma olhada nas outras funções __obj...

Atenciosamente.

MarceloG

Ps: Caros administradores, se conveniente, movam o tópico para a seção DICAS.

hbqt + __objadddata

Enviado: 20 Set 2012 14:46
por Toledo
Só complementando, veja o arquivo dynobj.prg que está na pasta \TESTS do Harbour.

Abraços,

hbqt + __objadddata

Enviado: 20 Set 2012 16:37
por alxsts
Olá!

Bom saber. Vou começar a estudar QT em breve. Lembra também a propriedade TAG dos forms do VB 6 e .Net.

Obrigado por compartilhar.

hbqt + __objadddata

Enviado: 20 Set 2012 18:31
por Toledo
Só uma observação: estas funções funcionam em qualquer classe, "não necessariamente" com QT.

Abraços,