AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formularpositionen übergeben

Ein Thema von davar · begonnen am 20. Jan 2006 · letzter Beitrag vom 23. Jan 2006
Antwort Antwort
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

Formularpositionen übergeben

  Alt 20. Jan 2006, 13:51
Hallo Leute,

entweder ich kann nicht richtig suchen, oder es hatte bisher tatsächlich niemand dieses Problem.. Was ich mir eigentlich schwer vorstellen kann..

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
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Formularpositionen übergeben

  Alt 23. Jan 2006, 11:12
nanu? wollt ihr nicht oder könnt ihr nicht??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Formularpositionen übergeben

  Alt 23. Jan 2006, 11:41
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
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Formularpositionen übergeben

  Alt 23. Jan 2006, 11:57
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.
  Mit Zitat antworten Zitat
Heffalump

Registriert seit: 3. Aug 2005
278 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: Formularpositionen übergeben

  Alt 23. Jan 2006, 12:38
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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