Bedankt voor de tip. Het onder de OnPaint event schrijven is idd de oplossing.
Echter nu loop ik tegen een ander probleem.
Op het form staan meerdere TPanels die elk hun eigen OnPaint event hebben die ik via hun click event aanroep. Als ik nu van 1 panel op zijn click event klik wordt van alle panels het onpaint even aangesproken. In dit geval krijgt dan elke panel een nieuwe kleur terwijl alleen die panel een nieuwe kleur moet krijgen die ik aanklik.
Hoe kan die, ik zie echt niet waarom....
HTML Code:
procedure TForm2.Panel40Click(Sender: TObject);
var Rect : TRectF;
begin
Rect.Create(0, 0, 30, 30);
Kleur1 := TAlphaColors.Blue;
Kleur2 := TAlphaColors.Grey;
Panel40Paint(Panel40, Canvas, Rect)
end;
procedure TForm2.Panel40Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin
Panel40.Canvas.Fill.Color := Kleur1;
Panel40.Canvas.Stroke.Thickness := 1;
Panel40.Canvas.FillRect(ARect,0,0,Allcorners,15);
Panel40.Canvas.Fill.Color := Kleur2;
Panel40.Canvas.FillText(ARect, Waarde, False, 1, [TFillTextFlag.RightToLeft],TTextAlign.Center, TTextAlign.Center);
Panel40.Repaint;
end;
procedure TForm2.Panel41Click(Sender: TObject);
var Rect : TRectF;
begin
Rect.Create(0, 0, 30, 30);
Kleur1 := TAlphaColors.Blue;
Kleur2 := TAlphaColors.Grey;
Panel41Paint(Panel41, Canvas, Rect)
end;
procedure TForm2.Panel41Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin
Panel41.Canvas.Fill.Color := Kleur1;
Panel41.Canvas.Stroke.Thickness := 1;
Panel41.Canvas.FillRect(ARect,0,0,Allcorners,15);
Panel41.Canvas.Fill.Color := Kleur2;
Panel41.Canvas.FillText(ARect, Waarde, False, 1, [TFillTextFlag.RightToLeft],TTextAlign.Center, TTextAlign.Center);
Panel41.Repaint;
end;
Bookmarks