2 mal createForms funktioniert nicht.

Für Fragen rund um die Ide und zum Debugger
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 »

Eigentlich schon eine AV müsste es geben, weil wenn du in From1.OnCreate ein From2.Show aufrufst. dürfte From2 noch gar nicht installisiert sein.

Da bin ich mir zimlichsicher, weil ich das schon Ausprobiert habe.

Der beste Ort dafür wäre onActivate.... dann bist du auf der sicheren seite.

Oder du musst deine Formulare per hand installisieren.
MFG
Michael Springwald

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

Beitrag von theo »

Pluto hat recht bezüglich des OnCreate von Form1, da ist Form2 noch nicht created.
Was tatsächlich die beste Lösung wäre ist Show im OnCreate von Form2 aufzurufen.
Aber in Form1 OnShow ist es auch nicht so verkehrt, wenn man davon ausgeht, das das Hauptformular immer sichtbar bleibt.

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 »

Viel Spaß das bei onCreate zu versuchen !
Da sind die anderen Formualare noch gar nicht erstellt !!!
Aber versucht es ruhig !
Wie kann bitte ein Formular in seinem eigenen FormCreate noch nicht erstellt sein ? Netter Versuch Pluto.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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 »

Naja ich meinte eigentlich ein zweites Formuala Theo hat das schon richtig verstanden.....
Du kannst kaum in OnCreate bei From1 auf From2 zugreifen.
weil das noch gar nicht Installisiert ist.
MFG
Michael Springwald

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 »

Ja, nur das niemand vorgeschlagen hatte Form2 auf dem FormCreate von Form1 zu "Showen". Da habt ihr euch wohl bede etwas verlesen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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 »

ich habe gelesen das genau das vorgeschlagen wurde ist:

>Joa seh ich auch so im OnShow ist das ganze reichloch blöde.
hast du sogar geschrieben.
MFG
Michael Springwald

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 »

Ja und, ist es ja auch.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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 »

Wo würdes du es den rein machen, wenn du sowas bauen wolltest ?
MFG
Michael Springwald

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

Beitrag von theo »

Christian hat geschrieben:Ja und, ist es ja auch.
Könntest du vielleicht kurz erklären wieso?
Dann könnte man darüber reden bzw. etwas lernen.
Ich finde diese Form des Kommentars "reichlich blöde" ;-)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6763
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Ein Formular als Master, was die anderen entsprechend erzeugt und öffnet. Das kann zum Beispiel auch gleich das Splash sein.

Somit hat man es direkt in der Hand was, wie geöffnet wird, auch die Reihenfolge wenn es abhängigkeiten gibt. Ausserdem kannst Du da gleich den Benutzer informieren was läuft und was solange benötigt, ohne das der Nervös wird und ev. das vermeintlich hängende Programm abschießt, nur weil du auf eine Datenbank warten mußt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

Ein Splash sollte aber nix anderes erstellen oder öffnen. Ich zumindest erstelle immer zuerst das Splash formular und update es höchstens aus dem Hauptprogramm (lpr) vorm Application.run versteck ichs dann wieder.

Show darf gar nicht in Formshow genutzt werden soweit ich weiss bei Delphi zumindest gabs da immer fehlermeldungen ala yiou cannot use Show in OnShow oder sowas. Weiterhin kann Show ja öfter aufgerufen werden. Es macht sinn bei fenstern die zu anderen fenstern gehören aber in dem hier vorliegenden fall würd ich einfach in OnCreate Show mit aufrufen. Das ist die sauberste und einfachste methode.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von theo »

Christian hat geschrieben: Show darf gar nicht in Formshow genutzt werden soweit ich weiss bei Delphi zumindest gabs da immer fehlermeldungen ala yiou cannot use Show in OnShow oder sowas. Weiterhin kann Show ja öfter aufgerufen werden. Es macht sinn bei fenstern die zu anderen fenstern gehören aber in dem hier vorliegenden fall würd ich einfach in OnCreate Show mit aufrufen. Das ist die sauberste und einfachste methode.
Form2.Show in TForm1.OnShow geht problemlos.
Ich weiss nicht was daran "reichlich blöde" sein soll, ausser du "hidest" das Hauptformular. dann wird aber bei einem erneuten Form1.Show das zweite einfach auch wieder angezeigt, falls es denn unsichtbar war.
Das ist doch nur Geschmacksache...

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 »

Ja hast recht aber warum soll man OnShow nehmen auch wenn es nicht so oft vorkommt das man das Hauptformular versteckt ist doch in OnCreate sauberer oder ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von theo »

Christian hat geschrieben:Ja hast recht aber warum soll man OnShow nehmen auch wenn es nicht so oft vorkommt das man das Hauptformular versteckt ist doch in OnCreate sauberer oder ?
Die OnCreate Lösung geht natürlich auch.
Aber hier kommt's wirklich auf die Implementierung an.
Bei sowas wie der LazIDE z.B. möchte ich doch den Visible-Status der Fenster wahrscheinlich speichern.
Dann ist es mir lieber, das zentral in Mainform.OnShow zu managen.
Wie gesagt: Geschmacksache. Aber "reichlich blöd" ist keins von beiden.

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 »

Ja ich hab übertrieben :|
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten