View Full Version : Form help - How do I make it start up in center of the screen?
Wizkid
07-23-2011, 06:40 PM
How do I make it start up in center of the screen? or by given pixel?
As now my form starts up in the top left corner, not too smooth :duh:
~ Wizkid
Coh3n
07-23-2011, 06:42 PM
form.position := poDesktopCenter;
// or
form.top := 100;
form.left := 100;
// or
form.setBounds(100, 100, 200, 300); // left, top, width, height (I think that's the right order)
Wizkid
07-23-2011, 07:17 PM
Many thanks! :)
Any idea how I would make a form "dragable" when using bsNone as borderstyle? :o
~ Wizkid
Zyt3x
07-23-2011, 07:39 PM
Many thanks! :)
Any idea how I would make a form "dragable" when using bsNone as borderstyle? :o
~ Wizkidvar
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.
Wizkid
07-23-2011, 08:35 PM
Once again, many thanks! :D
~ Wizkid
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.