Leider ist mir keine treffendere Überschrift eingefallen, welche mein Problem beschreibt. Ich habe eigentlich ein recht simples Szenario:
1.) Es gibt ein Panel.
2.) Es gibt eine Funktion welche das Panel als Parameter übergeben bekommt und darauf zeichnet.
3.) Es gibt einen Button der die Funktio aufruft.
Soweit so gut.
Mein Problem ist nun, dass die zeichenfunktion erst beim zweiten Aufruf korrekt ausgeführt wird. Also entweder wenn ich zwei mal den Button Klicke, oder wen ich sie zweimal im Klick-Ereignis aufrufe. Wie lässt sich das beheben/umgehen ?
Ich benutze Lazarus 1.6.4 auf Windows 8.0.
Vielen Dank im Voraus!
Anbei noch die beiden Prozeduren:
[pascal]
[/pascal]
procedure erase(view: TCanvas);
var
brushColorState:TColor;
begin
brushColorState:=view.Brush.Color;
view.brush.Color:= clWhite;
view.FillRect(0,0,view.Width,view.Height);
view.Brush.color:=brushColorState;
end;
[pascal]
[/pascal]
procedure TForm1.btnInitClick(Sender: TObject);
var
view:TCanvas;
begin
view:= self.drawPanel.Canvas;
erase(view);
end;