Einzelnen Beitrag anzeigen

JYPDWhite

Registriert seit: 29. Sep 2010
28 Beiträge
 
#9

AW: Klasse von TCheckbox ableiten

  Alt 6. Dez 2012, 11:39
Also ich habe es letztendlich Quick&Dirty so gelöst:
Delphi-Quellcode:
procedure TAdvancedCheckbox.WMPaint(var Message: TWMPaint);
var

  Canvas :TCanvas;
  oldColor :TColor;
  oldStyle :TBrushStyle;
begin

inherited;

  if(Visible) then begin
   Canvas:=TCanvas.Create();
   Canvas.Handle := GetWindowDC(Self.Handle);
// canvas.TextOut(15,0, '88');
// canvas.Ellipse(x1, y1, x1+x2, y1+y2);
   oldColor:=Canvas.Brush.Color;
   if(isAusgewaehlt) then begin
     if(isUebernommen) then begin
      Canvas.Brush.Color:=farbeUebernommen;
     end else begin
      Canvas.Brush.Color:=farbeNichtUebernommen;
     end;
   end else begin
     Canvas.Brush.Color:=farbeNichtAusgewaehlt;
   end;

   oldStyle:=Canvas.Brush.Style;
   Canvas.Brush.Style:=bsSolid;
   canvas.Ellipse(15, 1, 30, 16);
   canvas.Brush.Style:=oldStyle;
   canvas.Brush.Color:=oldColor;

   FreeAndNil(Canvas);

  end;

end;
dazu ist das Form auf dem das ganze Zeug liegt DoubleBuffered:=true; ich konnte bei mir kein geflackere feststellen.
Am Anfang hatte ich das inherited nicht drinne. Da hatte ich extremes geflackere da dann Windows ein ständiges neuzeichnen veranlasst hat.
  Mit Zitat antworten Zitat