Programm zeigt 2.Form nicht an -> fehler

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

So ich hab ein Problem, wo ich nicht verstehe, wo das Problem liegt. :?
Ich habe jetzt eine Umweglösung über einen timer, aber anscheinend will Lazarus nicht mit

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
Form2.show;
end;

Die 2te Form anzeigen, es stürzt lieber ab. Compiler geht, nur beim Ausführen stürzt es mit External:SIGSEV ab, auch wenn der Aufruf in einem try...except block steht.
Über einen Button oder den Timer geht es wunderbar, also sind alle Verknüpfungen richtig. :)
Ich weiß nicht, ob das ein Bug ist, oder das ein Fehler ist, der normal ist und den ich nur nicht kenne. :?
Dankt monta !!

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

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von theo »

hendy hat geschrieben:So ich hab ein Problem, wo ich nicht verstehe, wo das Problem liegt. :?
Ich weiß nicht, ob das ein Bug ist, oder das ein Fehler ist, der normal ist und den ich nur nicht kenne. :?


Auch hier hilft nachdenken. :wink:
Zum Zeitpunkt der Erstellung des ersten Formulars (TForm1.FormCreate) ist das zweite Formular wahrscheinlich nicht bereits "created" und kann deshalb auch nicht zugegriffen werden.
Probier mal OnShow.

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

Ach und wenn der Timer eine milisekunde danach das macht, ist sie createt?
Dankt monta !!

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von khh »

hendy hat geschrieben:Ach und wenn der Timer eine milisekunde danach das macht, ist sie createt?



ja ;-)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6212
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:

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von af0815 »

hendy hat geschrieben:Ach und wenn der Timer eine milisekunde danach das macht, ist sie createt?

Wenn der Timer nach den Formularen erzeugt wird, dann ja. Im Projektfile einmal nachsehen, wie die Erstellreihenfolge ist. Gegbenenfalls die Reihenfolge richtig stellen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

j aes funktioniert jetzt auch.
Die Millisekunde hat jeder Zeit (denke ich ;))
Dankt monta !!

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

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von theo »

hendy hat geschrieben:j aes funktioniert jetzt auch.
Die Millisekunde hat jeder Zeit (denke ich ;))


Wie gesagt, mit dem OnShow Event des ersten Formulars kannst du dir den Timer sparen.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von Scotty »

Vielleicht willst du auch OnIdle benutzen. So recht klar ist mir nicht, warum ein zweites Formular ausgerechnet beim Erzeugen des Hauptformulars angezeigt werden soll. Da gibt es sicher elegantere und einfachere Lösungen für eine noch nicht gestellte Frage :mrgreen:

Code: Alles auswählen

procedure FormCreate()
...
Application.OnIdle:=@DoIdle;
end;
procedure DoIdle(..var done:boolean);
begin
...
Application.OnIdle:=nil;
done:=true
end;

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

Ich wollte einfach 2 forms
Dankt monta !!

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von Scotty »

Wenn du ein zweites Formular erzeugst, wird Visible auf false gesetzt. Dreh an der Schraube und es gibt zwei Fenster.

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

Ja ok, nächste Frage...
Wie kann ich vom 1sten Formular aus auf dem 2ten Panels oder labels erzeugen? Und deren Eigenschaften setzen?
Dankt monta !!

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von Targion »

Code: Alles auswählen

panel:=TPanel.Create(Form2);
with panel do
begin
  Parent:=Form2;
  Top:=5;
  Left:=5;
  Width:=50;
  Height:=50;
  Caption:='Testpanel';
end;

So zum Beispiel, wenn du's dynamisch haben willst.

P.S:
Mache bitte für jede neue Frage einen eigenen Thread auf, sonst wird dieser hier mit der Zeit extrem unübersichtlich. Außerdem ist es bei einzelnen Threads für Hilfesuchende einfacher, Antworten zu finden.

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

Ah ok danke.
Normalerweise erstelle ich immer eine neue, aber gestern hab ich das vergessen ;)
Panel ist eine Variable, oder?
Welchen Typ hat die denn?
EDIT:
So funktioniert, sehen tu ich aber nichts :(
Visible ist auf true gesetzt
Dankt monta !!

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von Targion »

Panel ist ein objekt von Typ TPanel.
Warum erstellst du kein Panel in dem neuen Form mittels Designer?

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: Programm zeigt 2.Form nicht an -> fehler

Beitrag von hendy »

Ich möchte ein Programm mit grafischer Oberfläche haben, das beim erstellen von einer xml datei hilft.
Dafür brauche ich dynamische Positionen, damit, je nach komplexität, mehr objekte erstellt werden.
Dankt monta !!

Antworten