![]() |
Prog läuft über Delphi fehlerfrei -> Über Explorer Fehler
Ich habe ein Programm geschrieben, welches ohne Fehler/Stack Überläufe etc. rennt, daher eigentlich fehlerfrei. Leider ist es das aber nur der Fall, wenn ich es aus Delphi heraus starte.
Wenn ich die kompilierte exe über den Explorer öffne, bekomme ich bei einer Funktion immer eine "Ungültige Gleitkommaoperation" und "Divisionen durch 0", obwohl ich an dieser Stelle gar nichts berechne. Was kann ich dagegen machen? |
Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
Zitat:
Das ist eine pauschale Antwort auf eine pauschale Frage. Wenn du Hilfe erwartest, musst du wohl etwas mehr in's Detail gehen, d.h. dir selbst Gedanken machen. Stell von mir aus deinen Quellcode zur Verfügung, vieleicht nimmt dir jemand die Arbeit ab. |
Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
Tu überall showmessages in den Code rein, die dir anzeigen, wo das Programm gerade ist, damit du den Fehler orten kannst.
(z.B. showmessage('Form1.create Ini-Datei öffnen'); ) |
Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
Zitat:
naja mal schauen ob ich die fehlerquellen die delphi nicht stören finde.. //edit: Ich habs jetzt mal über die russische Methode
Delphi-Quellcode:
gelöst. Es gibt an dieser Stelle nämlich keinen wirklichen Fehler, da alle Aktionen genauso ausgeführt werden, wie sie sollen
TRY
... Except end; //edit2: Dafür bekomme ich an einer anderen Stelle vom Explorer einen Fehler, wo Delphi nicht mal wenn ich "Bei Exception stoppen" anklicke etwas anzeigt?!? //EDIT3: so jetzt kann ich doch mit Code dienen, da ich wirklich jede Zeile durchgegangen bin, bis ich die Fehlerquelle hatte:
Delphi-Quellcode:
Also die anderen Funktionen die aufgerufen werden, passen alle, ich hab eh markiert wo der Fehler passiert. Das komische ist nur: Diese Funktion wird auch früher im Programm schon einmal aufgerufen, und da funktioniert alles ohne Probleme. Der Dateiname ist auch zu 100% richtig.
procedure LoadSong2Deck(Deck:TBassChannel;flag:String);
begin if Deck.Status=sndplaying then if Application.MessageBox('really stop playing to load new file?','really stop playing to load new file?',MB_YESNO)=7 then exit; form1.Caption:=strfile; //zum debuggen TRY Deck.LoadFromFile(strFile); //Hier passiert der Fehler except //ShowMessage('hier ist der fehler/error'); end; ResetInfos(flag); Form1.lbxPlaylist.Items.Delete(0); if Form1.lbxPlaylist.Items.Count>0 then UpdateOnDeck() else Form1.lblonDeck.Caption:=''; end; Über Delühi gestartet gibt es keine Probleme, über den Explorer macht die markierte Zeile den Fehler: "Ungültige Gleitkommaoperation" Um noch zu beschreiben was hier passiert: Einem Channel des BassPlayers wird eine Datei übergeben, die geladen werden soll //edit: strFile ist eine globale Variable, in der der Dateiname steht |
Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
Kann es sich um ein Timing Problem handeln?
Ich kenne den Code von TBasschannel nicht. Manchmal hilft es an der richtigen Stelle ein Sleep(100) einzufügen. Einen ähnlichen Fehler hatte ich vor längerer Zeit schon mal, der Code war ohne Fehler und lief ebenfalls an anderer Stelle im Programm. War ein größeres Programm mit über 30000 Zeilen, alle units eingerechnet. Hab dann nur die Reihenfolge der procedures im code etwas geändert und mit build neu compiliert. Offensichtlich hatte Delphi sich verschluckt. |
Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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