Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Gleitkommadivision durch Null (https://www.delphipraxis.net/171543-gleitkommadivision-durch-null.html)

DelphiUser1 11. Nov 2012 23:43

Gleitkommadivision durch Null
 
ich habe bislang meine Bilddateien ganz gerne als Icon geladen, wollte jetzt aber mal mit Transparenz arbeiten. Dazu verwende ich eine bitmap. Zur animation eines Schußes, verwende ich ein case ereignis und lasse die phasen durchlaufen:
[DELPHI]1: begin
Image7.Picture.Bitmap.LoadFromFile(path+'gun2.bmp' );
Phase:=2;
end;
2:begin
Image7.Picture.Bitmap.LoadFromFile(path+'gun1.bmp' );
Phase:=1;[DELPHI]

Path ist ein String und wird beim fromcreate intialisiert //Path:=ExtractFilePath(ParamStr(0))
Jetzt bekomme ich aber die Fehlermeldung, es gäbe eine Gleitkommadivision.
Weiß jemand hier Rat?

Medium 12. Nov 2012 00:02

AW: Gleitkommadivision durch Null
 
Kann nicht in dem gezeigten Code liegen. Was ist ein "case Ereignis"? Tipp: Das Bild immer wieder neu von der Festplatte zu laden ist herzzerreißend ineffizient. Lade dir die beiden Bilder zu Programmstart in 2 Bitmaps, und weise diese dann dem Image jeweils zu.

DelphiUser1 12. Nov 2012 00:36

AW: Gleitkommadivision durch Null
 
Liste der Anhänge anzeigen (Anzahl: 1)
Woran liegt es dann?
Kann es an der Bitmap liegen?
Weil path ist schon korrekt und die loadfromfile aussage doch auch?
danke für den tipp mit dem laden am programmstart.
Vielleicht ist auch die Bilddatei mal ganz interessant, ich hänge sie einfach mal an, falls es daran liegt.(Delphipraxis wird das Format automatisch in eine jpg ändern)
p.s: http://www.delphibasics.co.uk/RTL.asp?Name=Case

stahli 12. Nov 2012 00:42

AW: Gleitkommadivision durch Null
 
An dem Bitmap liegt es bestimmt nicht.
Hast Du mal einen Haltepunkt gesetzt und den Quelltext schrittweise durchlaufen?

Medium 12. Nov 2012 01:11

AW: Gleitkommadivision durch Null
 
Zitat:

Zitat von DelphiUser1 (Beitrag 1190791)
Woran liegt es dann?

An irgend etwas anderem ;). Debuggen ist da genau das richtige Werkzeug, um die schuldige Stelle ausfindig zu machen. Irgendwo in der DP hier findet sich sogar ein gutes Tutorial zum Thema.

Da wird das "case statement" (case Anweisung) beschrieben. Ich wollte grad eben darauf hinaus, dass das Wort "Ereignis" falsch ist. Das ist insbesondere wichtig, da "Ereignis" im selben Kontext (Delphi) bereits mit einer anderen (treffenderen) wichtigen Bedeutung belegt ist. (Zudem ist es wirklich kein Ereignis.) Wenn man sich nicht ganz über einen Fachbegriff im Klaren ist, ist es keine Schande diesen auszulassen bzw. zu umschreiben, oder besser gar in einer Nebenfrage um eine Klärung zu bitten. Alles andere führt bestenfalls zu Verwirrung und Missverständnissen, was in niemandes Interesse liegen dürfte :)

Hier war es recht eindeutig, aber da du auch in deinem Geschwindigkeits-Thread gehäuft Begriffe im falschen Zusammenhang benutzt hast, vermute ich, dass du noch in der frühen Lernphase bist. Das ist ja auch keine Schande, im Gegenteil. Sich präzise auszudrücken ist in der Informatik (und auch Mathematik) allerdings verflucht wichtig, weswegen es sich lohnen dürfte hier auch ein wenig Energie hineinzustecken. Selbsbewusst mit Fachwörten an den falschen Stellen um sich zu werfen ist in jedem Falle eine schlechte Idee: Die, die es auch nicht besser wissen werden verwirrt, und die "Cracks" denken sich wohlmöglich "argh, Wichtigtuer mit 0 Plan". Daher: Nimm dir lieber etwas mehr Zeit deine Anliegen mit mehr Worten zu beschreiben, die du dafür aber gesichert definiert hast. Anders als an vielen anderen Stellen "im Netz" hören hier die wenigsten nach 5 Zeilen auf zu lesen :dp:

Popov 12. Nov 2012 09:30

AW: Gleitkommadivision durch Null
 
@DelphiUser1

Delphi-Quellcode:
1: begin
...
Geh mit dem Cursor in diese Zeile und drücke F5. Du setzt damit einen Haltemunkt. Noch mal drücken un der ist wieder weg.

Starte das Programm normal (meinetwegen mit F9)

Kommt die Fehlermeldung bevor das Programm den Haltepunkt erreicht, liegt der Fehler wo anders. Wenn nicht, bleibt das Programm an der Stelle stehen.

Jetzt kannst du mit F7 eine einzelne Zeile ausführen (bzw. Anweisung)

Jetzt so lange drücken bis die Zeile mit dem Fehler kommt.

nuclearping 12. Nov 2012 13:31

AW: Gleitkommadivision durch Null
 
Zitat:

Zitat von Popov (Beitrag 1190811)
Jetzt kannst du mit F7 eine einzelne Zeile ausführen (bzw. Anweisung)

F7 steppt aber IN die Anweisung. Mit F8 steppst du 'ne ganze Zeile. :stupid:

Popov 12. Nov 2012 13:46

AW: Gleitkommadivision durch Null
 
Das war schon beabsichtigt. F7 geht eine einzelne Anweisung durch (steht auch da), F8 geht eine Routine durch. Und wenn der Fehler in einer Funktion ist, dann kriegt er bei F8 die Meldung vom Aufruf und ist auch nicht schlauer.

nuclearping 12. Nov 2012 14:51

AW: Gleitkommadivision durch Null
 
Ja, aber lass ihn mal durch Image7.Picture.Bitmap.LoadFromFile(path+'gun2.bmp' ) mit F7 durchsteppen ... Am Ende landet er in irgendwelchen VCL-Units und weiß garnicht mehr weiter. :mrgreen:

p80286 12. Nov 2012 15:00

AW: Gleitkommadivision durch Null
 
Zitat:

Zitat von nuclearping (Beitrag 1190857)
Ja, aber lass ihn mal durch Image7.Picture.Bitmap.LoadFromFile(path+'gun2.bmp' ) mit F7 durchsteppen ... Am Ende landet er in irgendwelchen VCL-Units und weiß garnicht mehr weiter. :mrgreen:

[F7],[F7],[F7],[F7]...[F7],[F7] bis es kracht.
Solange er nicht im CPU-Fenster landet, geht das alles noch.
Hat doch keiner behauptet Debugging wäre ein Kindergeburtstag.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Seite 1 von 5  1 23     Letzte »    

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