From: Wizkid
Many thanks! :)
Any idea how I would make a form "dragable" when using bsNone as borderstyle? :o
~ Wizkid
var
Form : TForm;
procedure Form_OnMouseDown(Sender : TObject; Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
var
mX, mY, fX, fY, sX, sY : Integer;
begin
fX := Form.Left;
fY := Form.Top;
GetMousePos(sX, sY);
IsMouseButtonDown(Mouse_Left); // Free the buffer
case Sender of
Form:
while IsMouseButtonDown(Mouse_Left) do
begin
GetMousePos(mX, mY);
Form.Left := fX - (sX - mX);
Form.Top := fY - (sY - mY);
Wait(1);
end;
end;
end;
procedure InitForm;
begin
Form := TForm.Create(nil);
with Form do
begin
SetBounds(100, 100, 100, 100);
BorderStyle := bsNone;
OnMouseDown := @Form_OnMouseDown;
end;
end;
procedure SafeInitForm;
var
v: TVariantArray;
begin
SetArrayLength(v, 0);
ThreadSafeCall('InitForm', v);
end;
procedure ShowFormModal;
begin
Form.ShowModal;
end;
procedure SafeShowFormModal;
var
v: TVariantArray;
begin
SetArrayLength(v, 0);
ThreadSafeCall('ShowFormModal', v);
end;
begin
try
SafeInitForm;
SafeShowFormModal;
except
finally
Form.Free;
end;
end.