![]() |
Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Hallo,
ich habe folgendes Szenario: Form1: - hat eine Variable auf Form2 und legt im FormCreate eine Instanz von Form2 an und setzt das Parent von Form2 auf Form1
Delphi-Quellcode:
Form2:
procedure TForm1.FormCreate(Sender: TObject);
var tmp : TForm2; begin tmp := TForm2.Create(Application); tmp.Parent := Form1; tmp.Show; end; - hat eine Statusbar - setzt im FormShow die Color der Statusbar
Delphi-Quellcode:
Schwupps, die Statusbar ist gar nicht mehr da (wenn ich die Anwendung starte).
procedure TForm2.FormShow(Sender: TObject);
begin StatusBar1.Panels[1].Text := 'Update AUS'; StatusBar1.Color := clRed; end; Setze ich die Color nicht, wird die Statusbar angezeigt. Habt ihr eine Idee? Grüße |
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Hat das einen besonderen Grund, dass du das Form2 im OnCreate erzeugst? Verschiebe das mal ins OnShow, dann funktioniert es.
|
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Wird schwierig zu erklären aber ja, dass muss im FormCreate sein ;-)
Habe ja auch nur zur Veranschaulichung das so gepostet. Der eigentliche Source sieht ja ganz anders aus aber der Ablauf ist der Gleiche (also im FormCreate). Gibts keine Möglichkeit das auch so hinzubekommen? |
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Zitat:
Delphi-Quellcode:
So zeigt man immer auf die eigene Instanz, unabhängig davon, wieviele es gibt und wie die Variablen heißen. Das Thema wird so oft angesprochen, dass es mich wundert, wie oft es immer noch ignoriert wird.
tmp.Parent := self;
|
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Es ist doch nur ein Beispiel, welches ein ganz anderes Problem darstellen soll.
Danke trotzdem dafür aber es ändert sich an meinem Problem nichts egal ob Self oder Form1. Grüße |
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Früher oder später bekommst du auf diese Art noch viel mehr Probleme. Du versuchst nämlich im OnCreate von Form1 ein Form2 auf Form1 zu zeichnen, obwohl Form1 noch gar nicht gezeichnet wurde, weil du da ja erst im OnCreate drinhängst. Das dir das nicht komplett um die Ohren fliegt ist fast schon ein Wunder.
|
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Wenn ich die Laufzeitthemes deaktiviere, funtioniert der Code sogar bei mir.
|
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Laufzeitthemes sind aber an und sollten auch an bleiben ;-)
Vielleicht gibts ja doch noch irgendeine Art Workaround... |
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Und wenn du sowas machst:
Delphi-Quellcode:
Das wäre dann auch irgendwie logischer. Im OnCreate wird alles erzeugt und in OnShow alles angezeigt.
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { Private-Deklarationen } fForm2:TForm2; public { Public-Deklarationen } end; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin fForm2 := TForm2.Create(Application); fForm2.Parent := self; end; procedure TForm1.FormShow(Sender: TObject); begin fForm2.Show; end; |
AW: Statusbar in Formular, welches in ein anderes Formular eingebettet wird
Das geht leider auch nicht...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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