terminate und close
-
worin liegt der unterschied zwischen Close() und app->Terminate?
-
Weder noch hat mit der WinAPI zu tun.
Willst du ins Borland oder ins MFC-Forum?
-
Tut mir leid ich ha irgendwie ins falsche forum geschrieben.
Borland bitte.
-
TForm::Close schliesst nur die Form und ermöglicht so ein Abfangen zB. per OnCloseQuery, um ggf. Daten zu abzuspeichern etc.
TApplication::Terminate beendet das Programm ohne Rückfrage.
-
Danke.
Das bringt mich zu einem weiterem Problem.
Wenn ich in meinem Programm Close() aufrufe sagt der mir call of Non-Function.
Terminate funktioniert.Währe ja alles nicht so tragisch wenn ich nicht ein onclose funktion hätte die meine daten abspeichert.
-
Rufst du vielleicht Close() über TApplication auf?
TApplication hat nur Terminate(), aber kein Close().
Du musst Close() einer Form aufrufen.(vielleicht des Hauptformulars)
Edit: Wollt ich dir auch garnicht unterstellen
Zudem hätte ja die Fehlermeldung etwas anders ausgesehen.. hab isch selber gepennt. Sorry.[ Dieser Beitrag wurde am 09.07.2003 um 14:54 Uhr von MikeSPK editiert. ]
-
Also tief bin ich auch noch nicht gesunken das ich nicht wüsste wie ich close aufrufe!!
-
Wo/wie/wann rufst du Close auf?
-
Wo;
nachdem ein button geklickt wurde.
Wie;
Formname->close();
obwohl ja einfach Close() auch gehtwann;
wenn ich den button geklickt habe (nachdem ich den button geklickt habe(!))
-
Naja, besonders aufschlussreich ist die Beschreibung ja nicht gerade.
Es ist aber recht unwahrscheinlich, dass das Problem am Close() selbst liegt, vermutlich hast du an anderer Stelle einen Fehler eingebaut. Hast du schon die Gegenprobe mit einem Minimalprojekt mit leeren Forms gemacht?
-
In einem leeren programm funktionierts.
Nur an was könnte das bitte liegen.
Am code nicht, es funktioniert an jeder stelle des programmes nicht.
-
Original erstellt von <unknown user>:
Nur an was könnte das bitte liegen.Ohne dein Programm zu kennen dürfte es schwer fallen, das zu beantworten.
Hast du schon mal, nachdem du das Projekt geschlossen hat, alle *.tds, *.obj usw. im Projektverzeichnis gelöscht, also alles ausser *.h, *.hpp, *.cpp und *.bpr?
-
eigentlich nicht
-
Na denn mach mal, das ist eine Standardprozedur bei unerklärlichen Fehlern.
-
Original erstellt von <unknown user>:
**Wie;Formname->close();
obwohl ja einfach Close() auch geht
**Mach lieber:
Formname->Close();
PS:
Lösch mal die ganze Zeile raus und schreib die neu rein!!! Hilft manchmal!
[ Dieser Beitrag wurde am 09.07.2003 um 20:44 Uhr von DerAltenburger editiert. ]
-
@altenburger
Das Close() großgeschrieben gehört weis ich auch, sonst würde er mir eine andere Fehlermeldung geben.
Was sind eigentlich *.tds, *.obj? Wozu sind diese da wenn man sie eh löschen kann?
-
*.tds
Dort stehen die Debuginfos drin.
*.obj
Stellt die vom Compiler übersetzten *.cpp dar. Werden vom Linker zur *.exe zusammengesetzt.