2 mal createForms funktioniert nicht.

Für Fragen rund um die Ide und zum Debugger
Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

2 mal createForms funktioniert nicht.

Beitrag von Knut »

Hallo zusammen,
beim Umsteigen auf Lazarus kapiere ich irgendwas nicht.

Ich habe zwei Formulare, beide sind in den Projekteinstellungen als "Automatisch erzeigte Formulare" eingetragen.
In der Projektdatei sind sie auch (automatisch eingetragen):
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

Es wird aber nur das erste Formular geöffnet, egal welches ich im den Projekteinstellungen nach vorne setze.

Viele Grüße Knut

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Was ist jetzt genau dein Problem?
a: dass nicht beide angezeigt werden, oder
b: dass das falsche angezeigt wird?

a: ist normal, du musst das zweite mit Show anzeigen.
b: Kann ich nicht bestätigen (GTK, GTK2, Win32 über Wine)

Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

Beitrag von Knut »

Hi Theo, es ist a,
nur wo soll ich den das show eintragen, die Projektdatei soll man ja nicht manuell ändern. Gibt es keine Einstellung dass das Formular automaitsch gestartet wird?
Viele Grüße Knut

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Code: Alles auswählen

procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.Show;
end;

Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

Beitrag von Knut »

Danke,
ich hatte in Form2 gesucht ob man es automatisch starten kann,
aber als Folge von Form1 ist es auch logisch.
Viele Grüße Knut

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Im übrigen kann man es theoretisch auch in der Projektdatei machen, zumindest gibt es Fälle, wo ein editieren in dieser durchaus sinnvoll sein kann.
Johannes

Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

Beitrag von Knut »

Nun nachdem ich mich mit BP7 aufgehört habe und das Projek auf Windows umstelle, werde ich mich erst einmal and die groben Regeln halten.
Aber eingentlich darf ich inzwischen ohnehin recht wenig machen, keine direkten Ports mehr benutzen, keine Interrupts direkt abfragen und abarbeiten, nicht mehr direkt den Speicher beschreiben :D

Aber das erspart mir grob geschätzt 20.000 bis 30.000 Zeilen Arbeit beim Umstellen des alten Projekts. Nur wede ich sicherlich noch einige Fragen haben, denn die Logik hinsichtlich Grafik und Harwarezugriff hat sich etwas stark geändert und manchmal werde ich einfach durch die alten Strukturen den Wald vor lauter Bäumen nicht sehen ..... also habt bitte Geduld mit mir ...
Viele Grüße Knut

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Du kannst es auch in den Projekt Einstellungen ändern.
Welches Dialog dein Haupt Formular sein soll.
MFG
Michael Springwald

Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

Beitrag von Knut »

Das hatte ich schon, nur brauche ich mehrere Formulare zugleich beim Starten, (so ähnlich wie bei Lazarus)
Und da dachte ich es gibt irgendwo eine Möglichkeit dies direkt mitzuteilen.

Grüße Knut
Viele Grüße Knut

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ach so....
das beste punkt dafür ist onShow vom From1.
und du brauchst eine Boolean Variable:
die steht immer auf False
und bei OnShow fragst du einfach dessen Wert ab und stellst sie in der abfrage auf True. Damit die Formalare nur einmal angezeigt werden.
in dieser Abfrage musst du einfach nur noch deine gewünschten Fenster aufrufen.

und Fertig.
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Wieso denn beim OnShow?

Wäre es nicht sinnvoller, das gleich ins onCreate des zweiten Forms zu schreiben, das es sich quasi selber gleich zeigt...bracucht keine Variable und das Ziel sollte erfüllt sein.
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Joa seh ich auch so im OnShow ist das ganze reichloch blöde.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Somal das ja dann jedes mal zuschlägt.
Und ich geh mal nicht davon aus, das du dein Formular auch so oft neu erstellst, wie zeigst ;)
Johannes

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Viel Spaß das bei onCreate zu versuchen !
Da sind die anderen Formualare noch gar nicht erstellt !!!
Aber versucht es ruhig !
MFG
Michael Springwald

Knut
Beiträge: 14
Registriert: Di 10. Jul 2007, 12:46

Beitrag von Knut »

Gab es deswegen einen Exception error?
Das hatte ich vor meiner Frage probiert.
Viele Grüße Knut

Antworten