![]() |
Formularpositionen übergeben
Hallo Leute,
entweder ich kann nicht richtig suchen, oder es hatte bisher tatsächlich niemand dieses Problem.. Was ich mir eigentlich schwer vorstellen kann.. :gruebel: ich habe eine Applikation mit mehreren Formularen erstellt. Wenn ein anderes Formular nun angezeigt wird, soll die Formularposition beibehalten werden, d.h. wenn Form1 maximiert ist, soll Form2 auch maximiert sein, ansonsten soll die Position übernommen werden. Also:
Delphi-Quellcode:
Es würde aber wohl wenig Sinn machen, dies bei jedem Aufruf hinzuschreiben. Alternativ habe ich mir überlegt, dies in eine global erreichbare Funktion zu packen und jedesmal aufzurufen, oder aber mittels einer ini-Datei die Position zu schreiben/lesen.
if Form1.WindowState = wsmaximized then
Form2.WindowState:= wsmaximized else begin Form2.left:= Form1.left; Form2.top:= Form1.top; end; Form2.ShowModal; Gibt es denn eine sinnvollere und einfachere Methode, mir diese Arbeit irgendwie abnehmen zu lassen? MfG davar |
Re: Formularpositionen übergeben
nanu? wollt ihr nicht oder könnt ihr nicht?? :cry:
|
Re: Formularpositionen übergeben
Die Anpassung würde ich im Ereignis OnShow() der Form2 machen. Eine entsprechend erweiterte Form kannst du dann als Vorlage in der Galerie speichern.
Delphi-Quellcode:
Grüße vom marabu
procedure TForm2.FormShow(Sender: TObject);
begin Left := Application.MainForm.Left; Top := Application.MainForm.Top; Width := Application.MainForm.Width; Height := Application.MainForm.Height; WindowState := Application.MainForm.WindowState; end; |
Re: Formularpositionen übergeben
Zitat:
Hatte mir ja gedacht, dass es vielleicht eine einfachere Version gibt. Aber die Idee mit der Vorlage find ich gut. Danke. |
Re: Formularpositionen übergeben
Das wäre unter Umständen auch eine Möglichkeit:
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
var lvWindowPlacement: TWindowPlacement; begin lvWindowPlacement.length := SizeOf(TWindowPlacement); if GetWindowPlacement(Application.MainFormHandle,@lvWindowPlacement) then begin SetWindowPlacement(Self.Handle,@lvWindowPlacement); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz