Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Canvas zeichnet bei Integer, nicht bei Single

  Alt 3. Okt 2007, 17:57
Hi,

1. Bitte Quellcode formatieren
2. Bitte [.delphi][./delphi] tags benutzen (jeweils ohne Punkt.
3. Was sollen die ganzen begin und end;s im Code ? ...

Delphi-Quellcode:
procedure TFormPalettierung.SpeedButtonZeichnenClick(Sender: TObject);
var Breite, Hoehe : Integer;
begin
  Lv := StrToFloat(EditLaenge.Text);
  Bv := StrToFloat(EditBreite.Text);

  repaint; // wofür? lass es weg!

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

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

  imageDraufsicht.Canvas.rectangle(0,0, Breite div 5, Hoehe div 5);
  imagedraufsicht.canvas.MoveTo(0,Round(Lv / 5));
  imagedraufsicht.Canvas.LineTo(Round(Lv / 5),Round(Bv / 5));
end;
Also die Canvas-Methoden wollen immer ein Single haben. div kannst du nur bei Integern benutzen und bei einer div-Operation kommt auch wieder ein Integer raus. Wenn du Singles (allg. Gleitkommazahlen) teilen willst musst du "/" benutzen. Jedoch ist es relativ unsinnig die Werte per StrToFloat aus dem Edit in Single Variablen zu lesen. Benutze Integer Variablen und StrToInt. Singles bringen dir hier gar nix.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat