Redimensionar e Movimentar Componentes em Run - Time !!

Delphi

16/05/2007

Colegas..

Procurei muito por uma solução, e inclusive há tempos atrás já postei uma pergunta deste tipo.. mas agora com um pouco mais de experiência, acredito que possa explicar melhor o quê preciso, já faz 3 a 4 anos que estou tentando fazer isso..

Preciso redimensionar e movimentar componentes em Run - Time, com intervenção do usuário, mas estes componentes não são do tipo TControl, portanto não possuem o evento OnKeyDown, ou OnMouseDown, etc..

Sei que existe uma maneira de fazer isso, pois trabalhamos com este tipo de tecnologia na criação de relatórios..

O que estou tenatndo fazer é possibilitar ao usuário, a alteração(personalização), de um relatório criado em fortes report, em Run - Time...

Isso já existe, mas não visualmente, eu tenho uma tabela com os Tops, Heigths, Lefts e Widths de todos os componentes dos relatórios, mas preciso que isso funcione visualmente..

Alguém sabe como fazer isso ???


Cabelo

Cabelo

Curtidas 0

Respostas

Thiago Vidal

Thiago Vidal

16/05/2007

cara, nao imagino que tipo de componentes sejam esses sem os eventos de OnMouseDown, etc...

De qualquer forma, penso em 2 alternativas:
A primeira é utilizar o evento OnMouseDown do Form, e de acordo com as coordenadas indicadas, descobrir qual controle foi clicado, e consequentemente, simular um clique no controle.

A segunda, seria utilizar as mensagens do windows mesmo, WM_MOUSEDOWN e coisas do tipo... deve funcionar!

Nunca usei QuickReport, mas acredito que uma dessas alternativas deve funcionar!

Se nao, vc pode simplesmente criar um form com TLabels, e salvar as coordenadas dessas labels, para depois carregá-las no QuickReport!

Boa sorte!


GOSTEI 0
Cabelo

Cabelo

16/05/2007

Colega..

tentei das duas formas que você me indicou.. mas não obtive êxito..

Na segunda, nem compila..

Estou utilizando .CLX... e não posso utilizar as API´s do Windows, portanto.. não posso usar as mensagens do SO..

Outra coisa.. na primeira idéia.. funciona até que beleza.. mas o problema é que quando eu utilizo o OnMouseDown ou Move do form, quando tenho um controle por cima, não consigo pegar o evento...

vc sabe o pq???


GOSTEI 0
Nigro

Nigro

16/05/2007

´Se nao, vc pode simplesmente criar um form com TLabels, e salvar as coordenadas dessas labels, para depois carregá-las no QuickReport!´
Eu usei essa saída e deu certo...


GOSTEI 0
Cabelo

Cabelo

16/05/2007

Colega..

Na resposta à mensagem, falei que compilava em .clx..

Você compila em .CLX..??

Se sim.. por favor.. como fez seu código para movimentar...?

Pois só encontrei material para .VCL...

Você poderia me dar um exemplo???

Agradeço sua ajuda..


GOSTEI 0
POSTAR