Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form vor Mainform erstellen (https://www.delphipraxis.net/94301-form-vor-mainform-erstellen.html)

ebber 19. Jun 2007 18:07


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

Apollonius 19. Jun 2007 18:17

Re: Form vor Mainform erstellen
 
Zitat:

damit ich auf deren Variablen zugreifen kann.
Meinst du globale Variablen? Auf die kannst du immer zugreifen, wenn du die Unit in der uses hast. Oder meinst du Felder der Formularklasse? Dann musst du in der *.dpr (Projekt->Quelltext anzeigen) die beiden Application.createform... so vertauschen, dass die Form, auf deren Felder du zugreifen willst, zuerst erzeugt wird.

ebber 19. Jun 2007 18:27

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:

Zitat von ebber

wenn man macht Position - Mainformcenter ?

MfG

Apollonius 19. Jun 2007 18:33

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:

wenn man macht Position - Mainformcenter ?
Darf man das verstehen?

ebber 19. Jun 2007 18:44

Re: Form vor Mainform erstellen
 
Zitat:

wenn man macht Position - Mainformcenter ?
Ja das ist vielleicht nicht so eindeutig.
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

nitschchedu 19. Jun 2007 18:59

Re: Form vor Mainform erstellen
 
Es gibt 2 möglichkeiten ;-)
geh auf Hauptprojekt und mach Rechtsklick -> Quellcode anzeigen.

Bsp:
Delphi-Quellcode:

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.
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.

Die Muhkuh 19. Jun 2007 19:04

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:
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.
Jetzt wird form2 zwar vor der eigentlichen Mainform erstellt, jedoch wird Form2 nicht als Mainform wahrgenommen.

nitschchedu 19. Jun 2007 19:08

Re: Form vor Mainform erstellen
 
Du musst es auch als

Delphi-Quellcode:
Application.CreateForm(Tform2, form2);
Erstellen oder du lässt es und nihmst du Zeile da weg und gehst in die
MainForm.OnCreate(..)
begin
form2 := TForm2.Create(Application);
end;

und machst es da so ;-)

Die Muhkuh 19. Jun 2007 19:10

Re: Form vor Mainform erstellen
 
Wie dem auch sei, es kommt aufs gleiche raus, man muss nur dran denken, Form2 auch wieder freizugeben!

nitschchedu 19. Jun 2007 19:12

Re: Form vor Mainform erstellen
 
Zitat:

Zitat von Die Muhkuh
Wie dem auch sei, es kommt aufs gleiche raus, man muss nur dran denken, Form2 auch wieder freizugeben!

Das hatte ich oben auch schon gesagt ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr.
Seite 1 von 2  1 2      

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