Einzelnen Beitrag anzeigen

Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

Canvas.Rectangle malt falschen Bereich??

  Alt 18. Apr 2008, 12:38
Aloha,

ich habe folgenden Codeschnippsel (vereinfacht):
Delphi-Quellcode:
var
  filled : integer;
begin
  [...]
  for i:=0 to 4 do
  begin
    amount := 20;
    bmp.Canvas.Brush.Color := part[i].color;
    bmp.Canvas.Rectangle(0, 100-filled, 10, 100-filled-amount);
    inc(filled, amount);
  end;

  bmp.Canvas.Brush.Color := clFuchsia;
  bmp.Canvas.Rectangle(0, 0, 10,100-filled); // !! filled=80 , 100-filled=100
Der soll mir ein Bmp von unten nach oben mit farbigen Kästchen füllen (funktioniert soweit auch) und dann den letzten Bereich, der noch nicht gefüllt wurde, mit clFuchsia befüllen.

Das komische ist jetzt aber, dass er mit der letzten Anweisung -alles- übermalt.
Kommentiere ich die Zeile aus, macht er brav seine Kästchen und der restliche Bereich ist halt weiß (standardfarbe).

Ich habe bereits mit dem Debugger geschaut: "filled" hat in der letzten Zeile definitiv den Wert "80" .. trotzdem ergibt "100-filled" offenbar 100. Wenn ich das durch "50-filled" ersetze, bemalt er nur die Hälfte der Fläche - filled scheint da einfach 0 zu sein.

Was ist da los? Ich steh' grad echt auf dem Schlauch und fühle mich vergackeiert von Delphi...

Liebe Grüße
Florian
Florian Heft
  Mit Zitat antworten Zitat