| Autor |
Beitrag |
JRegier
      
Beiträge: 1268
Win XP Home, Prof, 2003 Server
D6 Enterprise
|
Verfasst: Mo 27.06.05 08:39
Hallo, mein Programm lief in Ordnung bis ich eine LoginForm als StartFenster gemacht habe!
Bekamm lauter Zugriffsverletzungen! Jetzt nicht mehr aber das Programm hängt!
Das Problem ist ich kann's nicht mit dem Debugger testen warum es hängen bleibt!
Also ich habe ein Haltepunkt in der OnClose procedure gesetzt aber der kommt erst
gar nicht bis dahin!
Ich hatte vorher in LoginForm
Delphi-Quelltext 1: 2: 3: 4:
| Hide Application.CreateForm(TForm1, Form1); Form1.ShowModal; Application.Terminate; |
jetzt habe ich Application.Terminate in der OnClose procedure vom eigentlichen Programm!
Muß ich explicit irgendwo setzen welches das Hauptformular ist? Welches würde als Hauptformular zählen?
Was ist der Unterschied zwischen Application.CreateForm(TForm1, Form1) und Form1 := TForm1.Create(Self);
Wie kann ich zum DebugModus wechseln wenn das Programm läuft?
// EDIT
Das Problem hat sich scheint so selbst gelöst! Also ich verstehe nicht Delphi! Java hat mir nie Problemme
bereitet! Aber ich würde doch gern Antworten auf die oben stehenden Fragen haben!
|
|
emteg
      
Beiträge: 41
|
Verfasst: Do 30.06.05 14:04
Wenn du zugriffsverletzungen oder plötzlich hängende programme hast, liegt das - besoners beim öffnen/schließen/anzeigen/verstecken/etc von forms - meißt daran, dass dein programm auf etwas zugreifen will, das es schon nicht mehr gibt.
Du musst dir deinen code genau durchschauen und überlegen, wann welches objekt gelöscht wird und wann auf eines zugegriffen wird.
Mach dir mal dein ganzes programm, auf jedenfall aber form.create events mit break points voll und schau, wann sich dein programm aufhängt.
Gut, jetzt läufts ja, aber versuchs beim nächsten mal halt so
PS: nicht jeder satz ist ein ausruf! Der vorige ist einer, dieser hier aber nicht (punkt=>).
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 30.06.05 14:25
Titel: Re: LoginForm als Startfenster! Programm hängt beim Schließe
JRegier hat folgendes geschrieben: | | Muß ich explicit irgendwo setzen welches das Hauptformular ist? |
Nein, das als erstes mit Application.FormCreate erzeugte ist das Hauptformular. Das kann man auch in den Projektoptionen (Menü Projekt -> Optionen) einstellen.
JRegier hat folgendes geschrieben: | | Was ist der Unterschied zwischen Application.CreateForm(TForm1, Form1) und Form1 := TForm1.Create(Self); |
Das weiß ich jetzt nichtmal hundertprozentig, aber ich würde mal vermuten, dass mit Application.FormCreate die Anwendung bzw. das versteckte Application-Fenster der Besitzer des Fensters ist, und damit ist das erste Fenster, was Application besitzt, das Hauptfenster.
Mit Form1 := TForm1.Create(Self);, was du im Übrigen auch nicht direkt im Projektquelltext ausführen kannst (// edit: Ich meine das Self gibt es da nicht), wird Self zum Besitzer. Führst du das in dem Quelltext eines Formulars aus, also das entsprechende Formular.
JRegier hat folgendes geschrieben: | | Wie kann ich zum DebugModus wechseln wenn das Programm läuft? |
Menü Start -> Unterbrechen oder so ähnlich, dieses Symbol mit den zwei senkrechten Balken.
(Nicht Zurücksetzen, das bricht das Programm ab.)
Zuletzt bearbeitet von jaenicke am Di 05.07.05 13:15, insgesamt 1-mal bearbeitet
|
|
direction4delphi
      
Beiträge: 84
WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
|
Verfasst: Do 30.06.05 15:46
Titel: Re: LoginForm als Startfenster! Programm hängt beim Schließe
jaenicke hat folgendes geschrieben: | | was du im Übrigen auch nicht direkt im Projektquelltext ausführen kannst, wird Self zum Besitzer. Führst du das in dem Quelltext eines Formulars aus, also das entsprechende Formular. |
STIMMT SO NICHT GANZ
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var Form2 : TForm2; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Form2:=TForm2.Create(Application); Form2.ShowModal; Application.Run;
end. |
mfg
MILLI
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 05.07.05 09:27
Titel: Re: LoginForm als Startfenster! Programm hängt beim Schließe
|
|
direction4delphi
      
Beiträge: 84
WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
|
Verfasst: Di 05.07.05 10:38
Titel: Re: LoginForm als Startfenster! Programm hängt beim Schließe
[quote=" jaenicke"] direction4delphi hat folgendes geschrieben: |
WAS stimmt so nicht ganz? Meinst du das man TForm2.Create mit Application aufrufen kann? Das ist ja klar, es ging darum, dass es mit SELF nicht geht, weil es das im Projektquelltext selbst nicht gibt... |
Sorry das hatte ich anders verstanden dachte du meintest man kann ein Form.create nicht in der dpr datei aufrufen. Klar Self gibts hier nicht.
mfg
MILLI
|
|
|