Arrastando Formulario
07/05/2003
0
isso pq eu tirei a borda do formulario e por isso ele nao se move, queria fazer ele s mover via codigo. obrigado
Bterossi
Posts
07/05/2003
Marcelo.c
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
private
{ Private declarations }
public
procedure WMNChitTest(var M: TWMNchitTest);
message WM_NCHITTEST;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMNchitTest(var M:TWMNChitTest);
begin
inherited;
if M.result = htclient then
M.result := htCaption;
end;
end.
07/05/2003
Bterossi
07/05/2003
Marcelo.c
Não é isso que você precisa ?
07/05/2003
Bterossi
Arrastando um componente, eu arrasto o formulario.
obrigado
27/04/2024
Marcos Rodrigues
Arrastando um componente, eu arrasto o formulario.
obrigado
procedure TForm1.WMNchitTest(var M:TWMNChitTest);
var
pt: TPoint;
lft: Integer;
tp: Integer;
begin
inherited;
GetCursorPos(pt);
lft:= pt.X - Left; //posição do cursor em X menos a propriedade Left do Form
tp:= pt.Y - Top; //posição do cursor em Y menos a propriedade Top do Form
//spondo aqui que seu form moverá somente quando o cursor estiver no range abaixo
if (lft < 20) or (tp > 88) then
Exit;
if M.result = htclient then
M.result := htCaption;
end;
27/04/2024
Marcos Rodrigues
Arrastando um componente, eu arrasto o formulario.
obrigado
procedure TForm1.WMNchitTest(var M:TWMNChitTest);
var
pt: TPoint;
lft: Integer;
tp: Integer;
begin
inherited;
GetCursorPos(pt);
lft:= pt.X - Left; //posição do cursor em X menos a propriedade Left do Form
tp:= pt.Y - Top; //posição do cursor em Y menos a propriedade Top do Form
//spondo aqui que seu form moverá somente quando o cursor estiver fora do range abaixo
if (lft < 20) or (tp > 88) then
Exit;
if M.result = htclient then
M.result := htCaption;
end;
28/04/2024
Arthur Heinrich
A forma como o Windows trabalha é mover a sua janela quando você clica no Caption (título da janela). Se você aplicar isso a outro componente, acredito que ele moverá o seu componente dentro da janela ou simplesmente não funcionará.
Entretanto, talvez dê para você implementar uma gambiarra, utilizando os eventos OnMouseDown, OnMouseMove e OnMouseUp.
No MouseDown, você pode marcar um flag para indicar que está movendo a janela e registrar a coordenada do Mouse e a posição original da janela.
No MouseMove, caso o flag esteja indicando que a janela está sendo movida, você pode comparar a coordenada do Mouse com a registrada no momento do MouseDown, para calcular o deslocamento do Mouse e mover a janela para a posição correspondente.
No MouseUp, você simplesmente desmarca o flag.
Clique aqui para fazer login e interagir na Comunidade :)