/ / Steuern, wo (x, y) eines neu geöffneten Fensters in Delphi 2006 - Windows, Delphi

Steuern wo (x, y) eines neu geöffneten Fensters in Delphi 2006 - windows, delphi

Ich versuche, die Koordinaten zu steuern, in denen mein Programm ein neues Fenster öffnet, weil sie sich gerade übereinander öffnen. Hat jemand ein funktionierendes Beispiel dafür?

Antworten:

6 für die Antwort № 1

Sie können die Eigenschaften .Top und .Left jederzeit manuell festlegen.

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 hat jedoch eine StandardfensterplatzierungAlgorithmus, der versucht, die Titelleisten jedes Fensters sichtbar zu halten. Auf meinem Computer führen wiederholte Klicks auf diese Button1-Prozedur zu schön gestapelten Fenstern:

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

Vergessen Sie auch nicht, dass Sie die eingebauten TPosition-Positionen verwenden können:

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 für die Antwort № 2

Diese Art von Funktionalität wurde für C # in erläutert eine andere Frage zu SO.

Schauen Sie sich auch für Delphi um Grundlegendes zu und Verwenden von Windows-Rückruffunktionen in Delphi, in dem beschrieben wird, wie Handles für Fenster abgerufen werden, die gerade geöffnet sind. Und sehen Schütteln Sie ein Fenster (Formular) aus Delphi-Code Hier wird beschrieben, wie Sie ein Fenster verschieben, sobald Sie es in den Griff bekommen haben.