Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prog läuft über Delphi fehlerfrei -> Über Explorer Fehler (https://www.delphipraxis.net/59957-prog-laeuft-ueber-delphi-fehlerfrei-ueber-explorer-fehler.html)

kurtm1 31. Dez 2005 13:44


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?

tomsel 31. Dez 2005 16:15

Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
 
Zitat:

Was kann ich dagegen machen?
Führe das Programm einfach nicht aus!
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.

ichbins 31. Dez 2005 16:18

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'); )

kurtm1 31. Dez 2005 16:38

Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
 
Zitat:

Zitat von ichbins
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'); )

stimmt, das ist eine möglichkeit ein wenig zu debuggen *gg*

naja mal schauen ob ich die fehlerquellen die delphi nicht stören finde..

//edit: Ich habs jetzt mal über die russische Methode
Delphi-Quellcode:
TRY
...
Except
end;
gelöst. Es gibt an dieser Stelle nämlich keinen wirklichen Fehler, da alle Aktionen genauso ausgeführt werden, wie sie sollen

//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:
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;
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.
Ü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

Pluto 31. Dez 2005 20:19

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.

kurtm1 1. Jan 2006 12:58

Re: Prog läuft über Delphi fehlerfrei -> Über Explorer Fe
 
Zitat:

Zitat von Pluto
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.

Ich habe jetzt ein Beispiel von dem Entwickler des TBassPlayers durchgearbeitet (omata), und gesehen, dass er den Fehler auch ganz unregelmäßig erhält, das dürfte also ein Fehler in den von mir verwendeten Units sein..


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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