Einzelnen Beitrag anzeigen

Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: BackgroundColor von eigener Klasse weitergeben (ParentColor)

  Alt 8. Sep 2015, 16:21
Danke für die Tipps, ich habe sie umgesetzt und es sieht auc besser aus, allerdings für mich noch zu pixelig.
Ich werde wohl noch mit den Variablen rumspielen müssen.

Mein jetztiger Code:

Delphi-Quellcode:


procedure TMyPanel.SetRegion(AControl : TWinControl; X1, Y1, X2, Y2, ARadius : Integer);
var
  rgn: HRGN;
begin
  try
    rgn := CreateRoundRectRgn(X1,
                              Y1,
                              AControl.Width - X2,
                              AControl.Height - Y2,
                              ARadius,ARadius);
    SetWindowRgn(AControl.Handle, rgn, True);
  finally
     DeleteObject(rgn);
  end;
end;


procedure TMyPanel.Paint;
begin

...

  case FPanelStyle of

  ...

    psRoundRect: begin
                    Canvas.RoundRect(Canvas.Pen.Width div 2,
                                     Canvas.Pen.Width div 2,
                                     Width - Canvas.Pen.Width div 3,
                                     Height - Canvas.Pen.Width div 3,
                                     FPanelRounding, FPanelRounding);

                                     SetRegion(Self, 0, 0,
                                               -1, -1, FPanelRounding);
                  end;
...

end;
Könnte man sonst noch etwas optimieren?

Wenn ich jetzt noch Antialiasing haben möchte, muss ich doch auf Alternativen wie z.B. Grafic32 oder GDI+ umsteigen oder?
Miniaturansicht angehängter Grafiken
tmypanel.png  
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
  Mit Zitat antworten Zitat