Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Canvas zeichnet bei Integer, nicht bei Single (https://www.delphipraxis.net/100765-canvas-zeichnet-bei-integer-nicht-bei-single.html)

turboPASCAL 3. Okt 2007 18:05

Re: Canvas zeichnet bei Integer, nicht bei Single
 
Zitat:

Zitat von ulhau
Hi,

Divsion durch 0 könnte problematisch werden.

Tschüsss!

p/0 ist nicht 0/p ;)
Zitat:

Zitat von koisa
Ja danke schön nun geht es!

Eine kurze Frage noch: Kann man eine While Funktion in die Zeichenoperation einbinden??

Ja, warum nicht. Kommt darauf an wie und was...

guidok 3. Okt 2007 18:19

Re: Canvas zeichnet bei Integer, nicht bei Single
 
Zitat:

p/0 ist nicht 0/p
p/0 ist unendlich und nicht möglich (Division durch Null)
0/p ist Null.

Oder was wolltest du damit sagen?

koisa 3. Okt 2007 18:21

Re: Canvas zeichnet bei Integer, nicht bei Single
 
Delphi-Quellcode:
procedure TFormPalettierung.SpeedButtonZeichnenClick(Sender: TObject);
var Breite, Hoehe :  Integer;   c,v,p : Single;
begin

 Lv := StrToFloat (EditLaenge.Text);
 Bv := StrToFloat (EditBreite.Text);
 Hv := StrToFloat (EditHoehe.Text);




 repaint;


 if ComboBoxPalettenwahl.ItemIndex = 0 then Breite := 1200;
 if ComboBoxPalettenwahl.ItemIndex = 0 then Hoehe := 800;

 if ComboBoxPalettenwahl.ItemIndex = 1 then Breite := 1200;
 if ComboBoxPalettenwahl.Itemindex = 1 then Hoehe := 1000;


  imageDraufsicht.Canvas.rectangle(0,0, Breite div 5 , Hoehe div 5 );



  begin
  repeat c:=c+1 until
  c+1 * Bv > Breite;
  if c+1 * Bv > Breite then c:= c-1;

  repeat v:=v+1 until
  v+1 * Lv > Hoehe;
  if v+1 * Lv > Hoehe then v:= v-1;
  end;

  while
  p<=c do
  begin
  imagedraufsicht.Canvas.MoveTo(round(p*Bv),0);
  imagedraufsicht.Canvas.LineTo(round(p*BV),round(v * Lv));

  end;

So, bei dieser Programmierung hängt sich das Programm beim zeichnen auf....

ulhau 3. Okt 2007 18:46

Re: Canvas zeichnet bei Integer, nicht bei Single
 
Hi,

In der while schleife müsste sich c oder p auch ändern.

Tschüsss!

koisa 3. Okt 2007 18:54

Re: Canvas zeichnet bei Integer, nicht bei Single
 
anstatt der while eine repeat funktion??

repeat

imagedraufsicht.Canvas.MoveTo(round((p+1)*Bv),0);
imagedraufsicht.Canvas.LineTo(round((p+1)*BV),roun d(v * Lv));
until p+1=c ;

ulhau 3. Okt 2007 18:59

Re: Canvas zeichnet bei Integer, nicht bei Single
 
Hi,

nein in der while schleife c+1 oder p-1 denn die Schleife wird so lange ausgeführt wie c<=p ist. Also so lange wie sich nichts ändert.

Tschüsss!


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

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