Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mainform nach anderen Formen createn (https://www.delphipraxis.net/1105-mainform-nach-anderen-formen-createn.html)

Salomon 18. Okt 2002 12:10


Mainform nach anderen Formen createn
 
Hallo,
wie bekommt man es hin, das die Form1 nach den übrigen Formen erstellt wird, aber trotzdem das Hauptformular ist?
Ich brauche nämlich Daten aus den anderen Formen, die zu dem Zeitpunkt natürlich noch nicht "created" sind.

Das "FormShow" event der Form1 fällt weg, da ich wenn ein Checkbox einer anderen Form aktiviert ist, die Form1 nicht anzeigen möchte.
Befehle wie application.minimize oder hide sind im OnShow event nicht möglich.

Mfg
Salomon

sakura 18. Okt 2002 12:43

Gar nicht. Das erste erstellte Form wird automatisch das MainForm.

Aber, füge in den Public Bereich Deines Form eine Procedure hinzu, welche zum Beispiel InitData heisst, und rufe die im Programm direkt vor Application.Run mit Form1.InitData auf.

Salomon 18. Okt 2002 13:29

Hört sich gut an, nur mache ich noch was Falsch. Momentan sieht das bei mir so aus:

Form1:
Code:
  private
    { Private declarations }
  public
    { Public declarations }
    Procedure InitData;
  end;
In Hauptprogramm dann so:
Code:
begin
  Application.Initialize;
  Application.Title := 'Salomon''s Relais8 Controll';
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(Tprogconfig, progconfig);
  Application.CreateForm(Tcomconfig, comconfig);
  Form1.InitData; // Daten initialisieren
  Application.Run;
end.
Ich bekomme dann die folgende Compiler Fehlermeldung:
[Error] Unit1.pas(140): Unsatisfied forward or external declaration: 'TForm1.InitData'

Was mache ich an den Deklarationen falsch?

Mfg Salomon

sakura 18. Okt 2002 13:38

Du musst in die Unit von Form1 noch die eigentliche Prozedure

TForm1.InitData;
begin
....
end;

einfügen. Delphi findet zwar die Deklaration, aber nicht die Implementation.

Salomon 18. Okt 2002 14:27

Du hast recht, ich hatte bei der Implementierung das TForm1 vor dem Procedure Namen vergessen.

sakura 18. Okt 2002 14:30

Diesen Fehler kannst Du recht einfach umgehen, indem Du, nach dem deklarieren der Funktion [Ctrl]+[Alt]+[C] drückst. (Code-Completion)


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