![]() |
Form vor Mainform erstellen
Hallo
ich habe in meinem Programm 2 Forms. Wenn ich es starte wird die MainForm ganz normal angezeigt. Ich will an der Sache auch nichts änder. Es soll blos eine 2. Form noch vorher geladen werden, damit ich auf deren Variablen zugreifen kann. Ist das möglich ? Wie ? oder führt das zu Problemen wie z.B. wenn man macht Position - Mainformcenter ? MfG |
Re: Form vor Mainform erstellen
Zitat:
|
Re: Form vor Mainform erstellen
Ja ich meinte die Formulardinger.
Ja das hatte ich versucht, aber dann wir die andere Form zur Mainform. und es gab das Problem Zitat:
|
Re: Form vor Mainform erstellen
Bäh. Habe es gerade ausprobiert, der modelt den Quelltext ja um, sobald man das Mainform neu setzt...
Muss der relevante Code umbedingt im FormCreate stehen (das meintest du doch?)? Oder reicht FormShow aus? Zitat:
|
Re: Form vor Mainform erstellen
Zitat:
Ich meine damit, dass wenn man bei der Form einstellt Position - Mainformcenter, dass es die MainForm dann noch nicht gibt und deswegen die Form die Position der anderen nicht auslesen kann. Ja eigentlich wäre das egal aber FormShow wird doch jedes mal wenn Form.Show ist ausgeführt, oder ? MfG |
Re: Form vor Mainform erstellen
Es gibt 2 möglichkeiten ;-)
geh auf Hauptprojekt und mach Rechtsklick -> Quellcode anzeigen. Bsp:
Delphi-Quellcode:
Entweder du Tauscht die beiden Zeilen mit CreateForm aus oder du nihmst die Zeile des 2 Forms raus und erstellst das 2 Form beim MainForm -> OnCreate mit. Aber du musst auf passen da du es dann auch wieder Freigibst bei OnDestroy.uses Forms, main in 'main.pas' {frmEH}, nduTrayIcon in '..\ndu Klassen\nduTrayIcon.pas', addvokabel in 'addvokabel.pas' {frmAV}; {$R *.res} begin Application.Initialize; Application.CreateForm(TfrmEH, frmEH); <- MainForm Application.CreateForm(TfrmAV, frmAV); <- 2 Form Application.Run; end. |
Re: Form vor Mainform erstellen
Hi nitschchedu,
wenn Du die Einträge einfach vertauschst, ist die 2. Form die "MainForm". Funktionieren tut das so:
Delphi-Quellcode:
Jetzt wird form2 zwar vor der eigentlichen Mainform erstellt, jedoch wird Form2 nicht als Mainform wahrgenommen.
uses
Forms, main in 'main.pas' {frmEH}, nduTrayIcon in '..\ndu Klassen\nduTrayIcon.pas', addvokabel in 'addvokabel.pas' {frmAV}; {$R *.res} begin Application.Initialize; form2 := TForm2.Create(Application); Application.CreateForm(TfrmEH, frmEH); Application.Run; end. |
Re: Form vor Mainform erstellen
Du musst es auch als
Delphi-Quellcode:
Erstellen oder du lässt es und nihmst du Zeile da weg und gehst in die
Application.CreateForm(Tform2, form2);
MainForm.OnCreate(..) begin form2 := TForm2.Create(Application); end; und machst es da so ;-) |
Re: Form vor Mainform erstellen
Wie dem auch sei, es kommt aufs gleiche raus, man muss nur dran denken, Form2 auch wieder freizugeben!
|
Re: Form vor Mainform erstellen
Zitat:
|
Re: Form vor Mainform erstellen
Form2.Release würde doch den gewünschten Effekt am Ende erzeugen ?
Aber in welches event muss ich das stecken ? MfG |
Re: Form vor Mainform erstellen
Na dann von der Logig her bevor du versuchst da irgendwas in deinen Mainform auszulesen. Nich wa :) .
|
Re: Form vor Mainform erstellen
Ja in Form2 OnDestroy geht das ja nicht weil es kein Selbstmörder ist oder ?
und in MainForm OnDestroy kommt auch ein Fehler. Geht das nur in MainForm OnClose ? |
Re: Form vor Mainform erstellen
Hmm kann dir jetzt nicht mehr ganz folgen ? Am besten du Postest mal den Code von beiden Formularen.
|
Re: Form vor Mainform erstellen
Ich erstelle hier Form2
Delphi-Quellcode:
den Speicher muss ich dann ja beim Programmende wieder freigeben ? Das geht mit Form2.Free oder Form2.Release ?procedure TForm1.FormCreate(Sender: TObject); begin Form2 := TForm2.Create(Application); Ich möchte jetzt wissen in welches Event ich das einbauen muss. In Form2 OnDestroy oder OnClose geht das nicht weil die Form sich nicht selbst zerstören kann ? In Form1 OnDestroy kommt auch ein Fehler. In Form1 OnClose geht das. Mache ich was falsch oder kann ich das nur hier einbauen ? MfG |
Re: Form vor Mainform erstellen
Sollte das nicht der Owner, sprich Application, automatisch freigeben, wenn Application selbst freigegeben wird?
|
Re: Form vor Mainform erstellen
Das kann sein, das weis ich nicht.
Ich dachte das aufgrund mehrerer Hinweise. Zitat:
|
Re: Form vor Mainform erstellen
Kannste aus die Fehlermeldung ganauer drauf eingehen ? Normaler weiße müsste Form2.Free keinen Fehler ausgaben auch wenn es schon fraigeben ist. Du kann ja vorher mal Prüfen ob es schon nil ist.
Und ach ja beim Freigeben in OnDestroy machen ;-). Ansonsten poste mal dein Projekt dann kann man sich das mal genauer ansehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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