/ / Контрол къде (x, y) на новооткрит прозорец в Delphi 2006 - windows, delphi

Контролирайки къде (x, y) на новооткрития прозорец в Delphi 2006 - windows, delphi

Опитвам се да контролирам координатите на мястото, където програмата ми отваря нов прозорец, защото в момента те се отварят един върху друг. Някой има ли работен пример как да направи това?

Отговори:

6 за отговор № 1

Винаги можете да зададете свойствата .Top и .Left ръчно, като този:

procedure TForm1.Button1Click(Sender: TObject);
var
frm : TForm;
begin
frm := TForm.Create(Self);
frm.Left := 100;  //replace with some integer variable
frm.Top := 100;  //replace with some integer variable
frm.Show;
end;

Windows обаче има разположение на прозореца по подразбиранеалгоритъм, който се опитва да поддържа видимите ленти на заглавията на всеки прозорец. На моя компютър многократните кликвания към тази процедура Button1 дават добре подредени прозорци:

procedure TForm1.Button1Click(Sender: TObject);
var
frm : TForm;
begin
frm := TForm.Create(Self);
frm.Show;
end;

Също така, не забравяйте, че можете да използвате вградения набор от TPosition местоположения:

procedure TForm1.Button1Click(Sender: TObject);
var
frm : TForm;
begin
frm := TForm.Create(Self);
frm.Position := poOwnerFormCenter;
{
Other possible values:
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,
poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);

//}
frm.Show;
end;

4 за отговор № 2

Този тип функционалност е обяснен за C # в още един въпрос за СО.

Също така, за Delphi, вижте Разбиране и използване на функциите за обратно извикване на Windows в Delphi, който описва получаването на дръжки за прозорци, които в момента са отворени. И виж Разклатете прозорец (форма) от кода на Delphi който описва как да преместите прозорец, след като получите дръжката му.