Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Formularpositionen übergeben (https://www.delphipraxis.net/61361-formularpositionen-uebergeben.html)

davar 20. Jan 2006 13:51


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:
if Form1.WindowState = wsmaximized then
   Form2.WindowState:= wsmaximized
   else
   begin
        Form2.left:= Form1.left;
        Form2.top:= Form1.top;
   end;
Form2.ShowModal;
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.

Gibt es denn eine sinnvollere und einfachere Methode, mir diese Arbeit irgendwie abnehmen zu lassen?

MfG

davar

davar 23. Jan 2006 11:12

Re: Formularpositionen übergeben
 
nanu? wollt ihr nicht oder könnt ihr nicht?? :cry:

marabu 23. Jan 2006 11:41

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:
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;
Grüße vom marabu

davar 23. Jan 2006 11:57

Re: Formularpositionen übergeben
 
Zitat:

Zitat von marabu
Die Anpassung würde ich im Ereignis OnShow() der Form2 machen. Eine entsprechend erweiterte Form kannst du dann als Vorlage in der Galerie speichern.

Grüße vom marabu


Hatte mir ja gedacht, dass es vielleicht eine einfachere Version gibt. Aber die Idee mit der Vorlage find ich gut. Danke.

Heffalump 23. Jan 2006 12:38

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 11:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz