Arrastar e soltar

Delphi

23/10/2004

É uma dúvida meio tosca, mas realmente nunca fiz isto por não precisar.

Qual a melhor forma de arrastar e soltar um componente em run-time ?

Acho que os eventos que devem ser usados são os de mouse e drag mas não vi no help maiores detalhes de como fazer.

Tb não achei nada aqui no pesquisar.


Motta

Motta

Curtidas 0

Respostas

Weber

Weber

23/10/2004

Mover/Redimensionar Componentes VCL em tempo de Execução, para componente tipo TWinControl.

Para exemplo, jogue o código abaixo no Evento OnMouseDown de um botão.

  Begin
    ReleaseCapture;
    TWinControl(Sender).perform(WM_SYSCOMMAND, $f012, 0);
  End;


Abaixo seguem os valores mais importantes para passagem pela API do Windows.
sc_DragMove = $f012;
sc_Leftsize = $f001;
sc_Rightsize = $f002;
sc_Upsize = $f003;
sc_UpLeftsize = $f004;
sc_UpRightsize = $f005;
sc_Dnsize = $f006;
sc_DnLeftsize = $f007;
sc_DnRightsize = $f008;

Para ver todos os valores existentes no Delphi: com o mouse posicionado em cima do comando ´WM_SYSCOMMAND´, pressione a tecla CTRL
+ o clique do mouse.


GOSTEI 0
Motta

Motta

23/10/2004

valeu weber, grato.


GOSTEI 0
Zlink

Zlink

23/10/2004

Estava procurando algo assim, gostaria de saber como usar todos ao mesmo tempo, pois estou precesando colocar um componente no form e redimencionar e mover.

Grato.


GOSTEI 0
Zlink

Zlink

23/10/2004

Usei assim e deu certo

ReleaseCapture;
TWinControl(Sender).perform(WM_SYSCOMMAND, $f012, 0);
TWinControl(Sender).perform(WM_SYSCOMMAND, $f004, 0);

Agora como eu estou criando os componentes em modo de execurção, como colocar /informar estes eventos no onmoudown em modo de execurção.


GOSTEI 0
Rogerio247

Rogerio247

23/10/2004

Estava verificando esse código , e é próximo do que preciso.......minha dúvida e se teria como eu soltar esse componente no formulário de novo, pois ele precisaria ser impresso assim como todo o formulário

obrigado a quem ajudar


GOSTEI 0
POSTAR