Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Fensterposition speichern bzw ändern


Noctis - So 04.03.07 15:24
Titel: Fensterposition speichern bzw ändern
Moin,

Da ich nicht genau wusste wo ich das hin posten kann, habe ich es einfach mal hier hin gepackt.

Also ich habe erst vor kurzem mit Delphi angefangen und suche nun Hilfe bei folgender Aufgabe:

erstellt habe ich schon:

2 Formen mit 2 identischen Main Menus
..einige Funktionen

Ich habe schon einmal das Layout + Funktionen in beiden Formen programmiert. Mir fehlt jetzt noch, dass wenn ich über Form 1 nach Form 2 gehe, er die erste Form schließt (close;) und die zweite Form mit genau der selben Größe bzw an genau der selben Position wie FOrm 1 wieder öffnet. Ich will damit erreichen, dass der Anwender nicht merkt, dass ich eine neue Form öffne, sondern er soll denken, dass alles in ein und der selben Form stattfindet.

Danke schon einmal im Voraus

mfg Max


Moderiert von user profile iconGausi: Topic aus Sonstiges (Delphi) verschoben am So 04.03.2007 um 14:58


elundril - So 04.03.07 15:30

mit


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Close(Sender: TObject);
begin
  Form2.Top:=Form1.Top;
  Form2.Left:=Form1.Left;
  Form2.width:=Form1.width;
  Form2.height:=Form1.height;
end;


aber wozu das ganze??

lg el


HelgeLange - So 04.03.07 15:32

naja, das Schliessen und Öffnen wird der Anwender mitbekommen. Ausserdem wirst Du ein Problem haben, da ja das erste Form auch Dein Application.MainForm ist und wenn Du es schliesst, schliesst Du die Anwendung.

Was Du machen kannst, ist ein leeres Form gaz am Anfang, mit der von dir gewünschten Grösse und Position, die beiden anderen erstellst Du dynamisch und und hängst sie ins erste rein, dazu musst Du den Parent auf das leere form setzen und BorderStyle auf bsNone.


Noctis - So 04.03.07 15:53

user profile iconHelgeLange hat folgendes geschrieben:
[...] erstellst Du dynamisch und und hängst sie ins erste rein, dazu musst Du den Parent auf das leere form setzen und BorderStyle auf bsNone.


genau damit habe ich ja ein Problem.
wie soll ich das auf die leere Form setzen?

mfg


Gausi - So 04.03.07 15:57

Was spricht gegen die Verwendung einer Komponente wie TPageControl? Die Tabs oben kann man ja auch ausblenden...


Noctis - So 04.03.07 16:04

TPageControl ist sicher eine ansprechende Variante, jedoch ist die Hilfe Funktion bei Delphi sehr geizig mit Informationen für einen Anfänger..darum ersuche ich ja euch um Hilfe :-)

mfg


Xion - So 04.03.07 16:05

oder du nimmst ein TPanel, schaltest es auf bsNone und alClient und packst da alles aus deiner Form1 drauf. Dann nimmst noch ein Panel und packst da das von Form2 drauf. Panel1.BringtoFront, und schon hast du deine Form1 da. Panel2.BringtoFront, und schon ist da deine 2.Form.


Gausi - So 04.03.07 16:09

Du ziehst einfach so ein PageControl auf deine Form, mit Rechtsklick->Neue Seite erstellst du neue Seiten. Die Eigenschaft TabVisible der jeweiligen TabSheets blendet das Tab oben aus, und per ActivePage kannst du z.B. bei einem Buttonklick eine andere Seite anzeigen lassen.

Das mit den Panels geht natürlich auch, ist aber zur Entwurfszeit dann etwas unübersichtlich auf der Form ;-)


Noctis - So 04.03.07 16:25

ahh okay danke, jetzt haut alles hin ;)

mfg