Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 32 div Teiler = 0 ? (https://www.delphipraxis.net/65665-32-div-teiler-%3D-0-a.html)

xZise 19. Mär 2006 17:58


32 div Teiler = 0 ?
 
Folgendes:

Delphi-Quellcode:
procedure TFFreggels.Zoomen(Teiler : Integer);
var
  [...]
begin
  [...]
  Showmessage(IntToStr(Round(32 / Teiler)));
  Showmessage(IntToStr(32 div Teiler));
  Showmessage(IntToStr(Teiler));
     Held10.Height := 32 div Teiler;
    Held10.Width := 32 div Teiler;


  //Objektkarte
  with Held10 do begin


    Showmessage(IntToStr(Held10.Height));
    Canvas.StretchDraw(Rechteck, HOben.Picture.Graphic);
  end;
end;
Sieht ein bisschen Chaotisch aus, ist es aber nicht ;)

Folgendes: Teiler = 1
Nachrichten:
  1. 32
  2. 32
  3. 1
  4. 0

Also ich habe da keinen Fehler Entdeckt, aber dennoch ist Held10.Height = 0 !!

idontwantaname 19. Mär 2006 18:41

Re: 32 div Teiler = 0 ?
 
Div rundet auch :wink:

Sharky 19. Mär 2006 18:43

Re: 32 div Teiler = 0 ?
 
Zitat:

Zitat von idontwantaname
Div rundet auch

Hai idontwantaname,

kannst Du mal beschreiben warum DIV "rundet"?

mkinzler 19. Mär 2006 18:45

Re: 32 div Teiler = 0 ?
 
Dann rundet es aber gewaltig den 32/1 ist 32 und nicht 0!

JasonDX 19. Mär 2006 18:47

Re: 32 div Teiler = 0 ?
 
richtig, div rundet nicht, sondern schneidet die Kommastellen ab ;)
aber das is auch nicht wirklich das Problem, schließlich müsst bei 32 div 1 auch nichts gerundet werden :gruebel:

@Topic: Ich bezweifle, dass es am div liegt. Schließlich wird der Term 32 div 1 erst ausgerechnet, (also kommt 32 raus), und dann zugewiesen. Probier einfach mal, 32 direkt zuzuweisen (also Held10.Height := 32;), dann dürfte das selbe Ergebnis reinkommen. Das Problem liegt also am Setter von Held10.Height. Von welchem Typ is Held10?

greetz
Mike

xZise 19. Mär 2006 19:06

Re: 32 div Teiler = 0 ?
 
Vom TImage!

Und es ist an sich auch egal ob es rundet ;) oder abschneidet... fakt ist nur das er aus 32 div 1 = 0 macht...

Und es ist auch bei anderen "Teilern"!

Und schonmal danke ;) Ich habe mich auch gewundert ^^

[edit]Mit direkter Zuweisung (Held10.Height) ist es auch 32... :( [/edit]

[edit]Doch nicht ;) Falscher Wert überprüft >>> Egal ob statischer oder variabler Wert! [/edit]

Die Muhkuh 19. Mär 2006 19:07

Re: 32 div Teiler = 0 ?
 
Zitat:

Zitat von xZise
Und es ist an sich auch egal ob es rundet ;) oder abschneidet... fakt ist nur das er aus 32 div 1 = 0 macht...

Delphi-Quellcode:
ShowMessage(IntToStr(32 div 1)); // Ergibt 32
[edit] Haste schonmal ShowMessage(IntToStr(Teiler)) gemacht? [/edit]

xZise 19. Mär 2006 19:09

Re: 32 div Teiler = 0 ?
 
Witzbold (sry, konnte ich mir nicht verkneifen) 1. Post Delphicode Zeile 8!

Die Muhkuh 19. Mär 2006 19:10

Re: 32 div Teiler = 0 ?
 
Zitat:

Zitat von xZise
Witzbold (sry, konnte ich mir nicht verkneifen) 1. Post Delphicode Zeile 8!

:oops: Übersehen sorry.

xZise 19. Mär 2006 19:12

Re: 32 div Teiler = 0 ?
 
Wenn ich das nochmal zusammenfassen darf:

Bei jeder Zuweisung, egal welcher Art, ist der Wert (habe bisher nur "Height" überprüft) = 0!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.
Seite 1 von 2  1 2      

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