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