![]() |
SaveDialog.Execute führt zu Delphi-Absturz
Hallo,
hab mal wieder ein seltsames Problem. Ich rufe den SaveDialog über Execute auf, dieser erscheint und führt alles korrekt aus. Danach beende ich das Programm und beim Beenden verschwindet das ausgeführte Programm und Delphi "wartet auf Rückmeldung" in einer Endlosschleife. Mir bleibt nur übrig, es zu killen. Der Dialog wird in einer ganz kleinen Prozedur aufgrufen (kein Thread). Kommentiere ich alles aus dieser Prozedur aus, schließt sich das Programm normal und Delphi "überlebt". Kommentiere ich alles aus, außer das SaveDialog.Execute, tritt das o.g. Verhalten auf. Es liegt aber irgendwie an der Exe bzw. dem Projekt. Wenn ich den gleichen, simplen Code in einem neuen Projekt aufrufe, dann klappt alles.
Delphi-Quellcode:
Könnt ihr mir helfen? Was könnte das nun wieder sein?
if (SaveDialog1.Execute) then
begin MessageDLG('ok', mtInformation, [mbOK], 0); end; Danke im Voraus |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Guten Tag,
was genau möchtest du mit dem SaveDialog bewirken ? Es ist ja eigentlich sinnfrei diesen SaveDialog auszuführen, nur um eine Information in einem Fenster anzuzeigen. Vielleicht könntest du ein bisschen mehr von deinem Quelltext posten. Mit freundlichem Gruß |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Was passiert wenn das Programm außerhalb der IDE ausgeführt wird?
Falls nur innerhalb der IDE würde ich auf den Virenscanner tippen? Evtl. Avira installiert? |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hi,
ehm ja - eigentlich wollte ich mit dem SaveDialog schon eine Datei speichern. Nur zu Test-/Debugzwecken habe ich jegliche Code-Zeilen entfernt / auskommentiert, sodass nur diese zwei Zeilen übrig geblieben sind. Ich wollte damit verdeutlichen, dass es nicht an meinem Code liegt (da dieser ja auskommentiert ist) und der Fehler auch dann auftritt, wenn nur die Methode "SaveDialog1.Execute" aufgerufen wird. Dies ist aber nur in diesem Projekt so. Ich starte die Exe, gehe auf exportieren und dann kommt auch gleich die SaveDialog-Zeile. Mehr mache ich nicht. Zitat:
EDIT: Mit ausgeschaltetem Avira (Echtzeitscan deaktivieren) tritt das gleiche - falsche - Verhalten auf. Danke |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hmm…
ich habe bei mir jetzt auch den gleichen Quelltext eingefügt und auf einen Button gelegt, doch komischerweise läuft mein Delphi Programm beim Beenden nicht in den Wald, obwohl sich lediglich dieses Fenster zum Speichern öffnet und noch nicht einmal ein Message Dialog angezeigt wird. Hast du schon einmal versucht Delphi neu zu starten oder ein anderen Quelltext mit dem SaveDialog zu belegen. Probier mal diesen hier:
Delphi-Quellcode:
if SaveDialog1.Execute then
ShowMessage('Datei: ' + SaveDialog1.FileName) else ShowMessage('Speichervorgang abgebrochen'); MfG |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hi,
hab wieder alles auskommentiert und deinen Code eingefügt. Gleiches Verhalten. Ich habe zusätzlich auch mal alles auf den Events onCloseQuery und onClose auskommentiert. Auch das half nicht. Das Compiler-Fenster schreibt beim Beenden des Programms - an der Stelle an der der Fehler auftritt: Zitat:
|
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hmm…
die msvcr80.dll Datei gehört zur C Runtime Library. Ich weiß jetzt nicht, ob Delphi die Runtimes von Microsoft braucht, um bestimmte Programme ausführen zu können ? Hast du in den uses in deinem Quelltext vielleicht irgendwelche Bibliotheken, die auf die C Runtime verweisen deklariert. Schau einmal nach, ob du dort irgendetwas findest. Vielleicht auch einmal bei deinen installierten Programmen und Updates nachschauen, ob du vielleicht keine Runtimes installiert hast. Aber ich gehe nicht davon aus, dass es daran liegt. Wie gesagt starte Delphi noch einmal neu, und probiere es noch einmal. Vielleicht auch einmal Delphi mit Administratorrechten starten, sofern du Vista oder Windows 7 hast. MfG |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hi,
danke für deine Hilfe. Delphi und den PC etc. habe ich schon mehrfach neu gestartet. Es ist also ein nachhaltiges Problem. Ich dachte erst, dass es an irgendwelchen Speicherlecks liegt, die ich produziere, aber ich finde nichts mit FastMM. Und nach dem Öffnen des Savedialogs bleibt er schon vor dem Anzeigen des FastMM-Resultates hängen, leider. Ich werde das mal überprüfen und mich melden, wenn ich mehr weiß. vllt. habt ihr/hast du auch noch andere Ideen. Danke jedenfalls! |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hallo,
Zitat:
Schau mal an, wie gross die FastMM4-Datei wird. Viell. hast du viele Lecks und es dauert beim Beenden halt etwas. Test2: SaveDialog1 mal löschen und neu aufs Form ziehen. Heiko |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hallo!
Danke für die Ideen, aber daran liegt's auch nicht. Ich bin hinsichtlich der Lecks ein sehr vorbildlicher Programmierer. Meine Software hat kaum Lecks (ein paar von den Indys, aber ok)... Hab den Fehler gefunden, aber das hilft mir trotzdem nicht. Ereignisanzeige von Windows zeigt folgendes: Zitat:
Danke! |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Deinstallier mal Avira? Virenscanner werden vermutlich auch öfters Anti-Debug-Techniken eingebaut haben die bei Start einer Exe auch bei deaktierten Scanner immer noch wirken da die entsprechenden System-Hooks immer noch aktiv sind und teilweise Virenscanner-DLLs in jeden Prozess geladen werden.
|
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hallo.
Hab Avira deinstalliert und danach neu gestartet. Das Problem besteht immernoch. Aber, wie schon vorher mal geraten: Wenn das Programm außerhalb der IDE aufgerufen wird, tritt der Fehler nicht auf. Ganz normales Verhalten. Habe auch im Taskmanager geschaut - das Programm wird wirklich geschlossen. |
AW: SaveDialog.Execute führt zu Delphi-Absturz
Zitat:
|
AW: SaveDialog.Execute führt zu Delphi-Absturz
Hallo!
Sorry für die späte Rückmeldung. Ich hatte ein paar Tage Pause. Also, ich habe heute die virtuelle Maschine neu aufgesetzt und alles neu installiert. Ohne, dass ich was großes geändert habe, funktioniert es. Vielleicht war wirklich eine DLL des vcredist kaputt oder so. Ich bedanke mich bei allen, die mir geholfen haben! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz