ich hab folgendes Problem: ich benutze die FormCreate Prozedur in eine Applikation mit zwei Forms. In der ersten Form klappts super, aber in der zweiten Form wir der Code gar nicht ausgeführt, bzw. die Messagebox nicht angezeigt, hat jemand eine Idee warum? Ich bin irgendwie blind. Vielen Dank! Hier der Code, den ich in der zweiten Form (bzw. der zweiten Unit) verwende:
also bei mir klapp es problemlos, unter Windows 10 32bit mit FPC 3.0.0 und Lazarus 1.6. Die Meldung wird bei Programmstart gezeigt. Wann bzw. wo wird die Form denn bei dir erstellt(created)? Bei mir in der Projektdatei (.lpr). Zum Vergleich: Unit2
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, unit1, unit2
{ you can add units after this };
{$R *.res}
begin
RequireDerivedFormResource:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Also Unterschiede kann ich nicht erkennen, die Form wird bei mir ebenfalls in der Projektdatei erstellt (das ganze läuft unter Win7 64bit ebenfalls mit FPC 3.0.0 und Lazarus 1.6)... sehr seltsam, hat sonst noch jemand einen Idee, event. zumindest 'n Test um den Fehler einzugrenzen? Da mir nicht ganz klar ist, wann wo welche Prozeduren für die Form-Erzeugung und den Aufruf der FormCreate Prozedur verantwortlich sind fällt mir das Troubleshooting (Stichwort F7) entsprechend schwer.
Hab grad nochmal auf die Schnelle ein neues TestProg mit zwei Foms erstellt, jetzt holt er die FormCreate Prozedur gar nicht mehr, das ist ja zum Verzweifeln!!!!
Dann poste halt so ein Programm hier. Ohne compilierbaren Code kann dir niemand helfen, weil die Fehler meist wo anders stecken als in den Code-Schnipseln, die du zeigst. Zum Posten nur die pas, lfm, lpr und lpi-Dateien nehmen und zu einem zip zusammenpacken - dieses hier hochladen.
Also erstmal hab ich mir darüber geholfen, dass ich die beim Laden notwendigen Aktionen in eine öffentlich Unit-Prozedur packe und in der .lpr Datei aufrufe, direkt nach Application.CreateForm(). Nicht schön aber "does the job". Das Programm hier posten wird umständlich, das muss ich erstmal kürzen, aber ich poste das dann, sobald ich Zeit dafür gefunden habe. Erstmal schon mal danke für die bisherigen Hinweise!