Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Formular in den Hintergrund bringen (https://www.delphipraxis.net/149534-formular-den-hintergrund-bringen.html)

eragon123 23. Mär 2010 18:16


Formular in den Hintergrund bringen
 
So hier meine Frage, da die Suche leider nichts ergeben hat. Ich hoffe ihr könnt mir helfen.
Ich habe in meinem Programm ein Formular (mal was ganz neues^^). Per klick im Menü soll ein weiteres Fenster angezeigt werden, das weitere Infos enthält. Das sieht bis dahin so aus:

Delphi-Quellcode:
procedure TForm1.zeigen1Click(Sender: TObject);
begin
  if not Assigned(form2) then
  begin
    form2 := TForm1.Create(Self);
    Formw2.Show;
  end
  else Form2.Show;
end;
So weit, so gut. Jetzt werden die Bildschirme aber bei den meisten PCs leider nicht so groß sein das beide gleichzeitig draufpassen. Also muss man zwischen beiden umschalten. Vom Hauptformular auf das Nebenf. geht schonmal. Bloß andersrum bereitet es mir Schwierigkeiten.

Delphi-Quellcode:
procedure TForm2.Zurck1Click(Sender: TObject);
begin
  // eigentlihc müsste form1.bringtofront hier rein
end;
Aber das geht ja leider nicht, weil das andere Fenster ja dieses hier verwaltet. Wie bekomme ich das hin?

Und bei der Gelegenheit: wie bekomme ich das hin das Komponenten in einem Fenster vernünftig ihre Größe ändern, wenn das Formular von der Größe angepasst wird? Geht das nur über die anchors?

daywalker9 23. Mär 2010 18:20

Re: Formular in den Hintergrund bringen
 
Mach mal :

Delphi-Quellcode:
form2:=TForm2.Create(application);
Und in deinem zurück machst du:
Delphi-Quellcode:
Form2.Hide;

eragon123 23. Mär 2010 19:43

Re: Formular in den Hintergrund bringen
 
Delphi-Quellcode:
form2:=TForm2.Create(application);
Was macht das jetzt im Gegensatz zu meinem Befehl? Er meckert bei mir rum TForm2 ist nicht bekannt....

Und .hide will ich nicht machen. Das Formular soll ja theoretisch auch noch per Mausklick erreichbar sein. Nur jetzt halt hinter dem anderen.

DSCHUCH 26. Mär 2010 21:00

Re: Formular in den Hintergrund bringen
 
Als Gegenstück von BringToFron->SendToBack.

Daniel.

DSCHUCH 26. Mär 2010 21:02

Re: Formular in den Hintergrund bringen
 
Und durch den Owner hast Du Zugriff auf Dein HauptFormular:

Zitat:

form2 := TForm1.Create(Self);
In Form2 kannst Du somit machen

TForm(Self.Owner).XXX

eragon123 28. Mär 2010 20:56

Re: Formular in den Hintergrund bringen
 
Zitat:

Zitat von DSCHUCH
Als Gegenstück von BringToFron->SendToBack.

Daniel.

Danke das war es was ich gesucht habe :).

Delphi-Quellcode:
form2 := TForm1.Create(Self);
Kann es sein das das zu Problemen mit showmodal führt? Irgendwie bring er immer nen Fehler wenn ich das benutze...

Sir Rufo 28. Mär 2010 21:10

Re: Formular in den Hintergrund bringen
 
Das mit BringToFront funktioniert nicht, wenn du ein Fenster mit ShowModal anzeigen lässt,
weil dann ist NUR das eine (modale) Fenster aktiv!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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