AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

close Beendet nicht

Ein Thema von atreju2oo0 · begonnen am 8. Feb 2005 · letzter Beitrag vom 8. Feb 2005
Antwort Antwort
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#1

close Beendet nicht

  Alt 8. Feb 2005, 20:55
Ich habe für ein Projekt diesen Quelltext geschrieben:

Delphi-Quellcode:
loadStamm(Stamm);

help:=Stamm;
while Help.next<>nil do
  begin
    Help:=help.next;
    if help.Stamm.id=0 then showmessage('0');
  end;

close;

//Spielerdaten laden
loadSpieler;
loadstamm und loadspieler sind dabei proceduren.
Da einige Funktionen aus unerklärlichen Gründen nicht funktionieren habe ich
versucht mit Breakpoints der Sache auf den Grund zu gehen.
Und nun das überraschende: Dabei wird close; zwar durchlaufen, aber das Programm wird nicht beendet
sondern loadspieler wird gestartet.
??? Wieso ???

P.S.: Falls das wichtig ist... Help und Stamm sind zeiger auf einen von mir entworfenen Typ...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: close Beendet nicht

  Alt 8. Feb 2005, 20:57
Macht es sehr viel Sinn, nach Close noch einen Befehl auszuführen?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: close Beendet nicht

  Alt 8. Feb 2005, 20:58
Wenn Dein Code gerade bei close (also debuggen) ist, dann drücke mal F7 und schaue, zu welcher Methode/Prozedur er springt.

Das bissle Code da oben reicht nicht aus, um Dir die Gründe zu nennen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: close Beendet nicht

  Alt 8. Feb 2005, 20:59
Hallo Thomas,

rufst du Close zufaellig im OnCreate oder OnShow des FOrms auf? AFAIR funktioniert es in den beiden Event-Handlern nicht.
Weiters solltest du auch pruefen, ob in einem OnCloseQuery-Handler Action auf caNone gesetzt wird...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: close Beendet nicht

  Alt 8. Feb 2005, 21:03
Okay... Damit wäre die Frage beantwortet...
Das ganze wird natürlich im on Create abgearbeitet.


(natürlich weiß ich das es kein Sinn macht nach close noch Befehle zu schreiben aber es war zum Testen um Speichercrash
zu vermeiden)

Thx @ All...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

Re: close Beendet nicht

  Alt 8. Feb 2005, 21:12
Zitat von atreju2oo0:
Okay... Damit wäre die Frage beantwortet...
Das ganze wird natürlich im on Create abgearbeitet.
Versuche es mit Send(Handle, WM_CLOSE, 0); oder so. Bin mir jetzt nicht sicher, aber das könnte gehen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: close Beendet nicht

  Alt 8. Feb 2005, 21:14
Moin!

Ausserdem ist es eine Methode die eh immer zurück kehrt und damit eh den Befehl danach noch abarbeitet. OnClose platziert imho nur eine Message im Message Loop...

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#8

Re: close Beendet nicht

  Alt 8. Feb 2005, 21:31
Close Methode im OnCreate-Ereignis:

Close ruft intern TCustomForm.Close auf. Und weil Application.MainForm noch auf nil steht, wird auch nicht Application.Terminate aufgerufen. Application.Terminate muss aber aufgerufen werden, weil sonst keine PostQuitMessage verschickt wird.
Thomas hat natürlich recht, dass alles was nach Close abgearbeitet wird, bis die Quit (Thread) Nachricht verarbeitet worden ist.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: close Beendet nicht

  Alt 8. Feb 2005, 21:48
Versuch mal Application.Termitate
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz