Einzelnen Beitrag anzeigen

LiS

Registriert seit: 3. Dez 2004
87 Beiträge
 
Turbo Delphi für Win32
 
#1

Image zeichnet nicht immer

  Alt 2. Jun 2007, 16:47
Hallo!

Ich bin grade an meinem "Wer wird Millionär"-Publikumsjoker. Es sollen die vier Balken auf den Images 'img_Proz1' 'img_Proz2' 'img_Proz3' und 'img_Proz4' mit der Höhe proportianal zur Prozentzahl angezeigt werden, doch seltsamerweise funktioniert das nicht:

Delphi-Quellcode:
procedure TForm1.img_Joker_PClick(Sender: TObject);
var
  Prozente: TProzente;
  i,j,Pixel:integer;
begin
    Publikum(Stufe,Antwort,Prozente);
    for i := 1 to 4 do
    begin
      Pixel := trunc(Prozente[i] * 1.44);
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Top := 184 - Pixel;
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Height := Pixel;
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Canvas.Pen.Color := $000000;
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Canvas.FillRect(ClientRect);
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Canvas.Pen.Color := $FF0000;
      for j := 0 to Pixel do
      begin
        TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Canvas.MoveTo(0,j);
        TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Canvas.LineTo(27,j);
      end;
      TImage(Form1.FindComponent('img_Proz'+inttostr(i))).Repaint;
    end;
    pnl_Publikum.Visible := true;
end;
Die Funktion Publikum() gibt in dem Array[1..4] of Integer namens Prozente die 4 Prozentzahlen zurück, das konnte ich auch verifizieren. Der Wert von Pixel gibt die Höhe der Säule an, die gerade bearbeitet wird und dieser Wert ist immer korrekt, das habe ich überprüft. Ich habe absolut keine Ahnung wo der Fehler noch stecken könnte...
Wenn man den Joker das allererste Mal nach dem Programmstart benutzt funktioniert er korrekt, doch danach sind die Balken auf dem Bildschirm jedesmal verschoben, nur 1 Pixel hoch (und verschoben) oder gar nicht vorhanden, obwohl sie vorhanden sein müssten!
Es wäre nett, wenn ihr euch das mal anschauen könntet, vielleicht sehe ich ja den Wald vor lauter Bäumen nicht... Vielen Dank schonmal!

MfG Leif
  Mit Zitat antworten Zitat