![]() |
Mehrere Forms
Hallo,
eigentlich sollte es ja keine große Aufgabe sein, mehrere Forms gleichzeitig anzuzeigen, aber ich krieg es momentan einfach nicht gebacken. Erst hatte ich folgenden Code:
Delphi-Quellcode:
Woraufhin aber jeweils nur eins der beiden Fenster angezeigt wurde.
program Bruchrechentrainer;
uses Forms, pasBruchrechentrainer in 'pasBruchrechentrainer.pas' {fBruchtrainer}; pasAnleitung in 'pasAnleitung.pas' {fAnleitung}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TfAnleitung, fAnleitung); Application.CreateForm(TfBruchtrainer, fBruchtrainer); Application.Run; end. Dann habe ich versucht, das zweite Fenster im FormActivate des ersten zu erstellen:
Delphi-Quellcode:
Allerdings funktioniert auch das nicht, denn ich erhalte folgenden Fehler: Undefinierter Bezeichner 'TfAnleitung'
procedure TfBruchtrainer.FormActivate(Sender: TObject);
begin { Erzeuge das Hilfe-Fenster } TfAnleitung.Create(self); Was mache ich denn falsch ? Viele Grüße Simon |
Re: Mehrere Forms
Delphi-Quellcode:
...
Application.Initialize; Application.CreateForm(TfAnleitung, fAnleitung); Application.CreateForm(TfBruchtrainer, fBruchtrainer); fBruchtrainer.Show; Application.Run; ... |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
|
Re: Mehrere Forms
vielen Dank schonmal,
ist es möglich, fBruchtrainer in den Vordergrund zu bringen ? fBruchtrainer.setFocus() funktioniert nicht. Viele Grüße Simon |
Re: Mehrere Forms
.BringToFront
|
Re: Mehrere Forms
nein, das klappt leider nicht.
Ich möchte fBruchtrainer als Hauptfenster und dementsprechend fAnleitung in den Vordergrund rücken:
Delphi-Quellcode:
Application.Initialize;
Application.CreateForm(TfBruchtrainer, fBruchtrainer); Application.CreateForm(TfAnleitung, fAnleitung); fAnleitung.show(); fAnleitung.BringToFront(); Application.Run; |
Re: Mehrere Forms
Dazu sollte man aber noch ein Paar mehr sachen sagen, sonst lernt man das falsch.
Beim Programmstart werden alle Formulare erzeugt, aber nur die Hauptform angezeigt. Ein weiterres Createn ist also nicht nötig und so wie du das machst sogar falsch und würde zu einer AV führen. TfAnleitung ist der Name der Klasse, fAnleitung ist der Name der Instanz, die du haben möchtest. In delphi erstellt man diese aber nicht mit fAnleitung.Create(self) , sondern mit fAnleitung:=TfAnleitung.Create(self); also Instanzename:=Klassenname.Create; Mehr Infos dazu in den Tutorials auf ![]() Um eine Form anzuzeigen, musst du in deiner ersten Form oder halt Vorher (mkinzlers Methode) fAnleitung.Show aufrufen, oder ShowModal wenn es ein modaler Dialog sein soll. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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 by Thomas Breitkreuz