Ich habe mal einfacherweise versucht folgenden Code in die Komponente zu implemtieren, da es mir als passend erschien, um die runden Ecken zu realisieren. Aber soo einfach solls wohl doch nicht sein
, denn leider werden die runden Ecken zum einen nicht realisiert und zum anderen hat die Komponente natürlich dann Probleme beim zeichnen des Borders.
Delphi-Quellcode:
private
FCornerUse:boolean;
FCornerWidth:integer;
published
property CornerUse : boolean read FCornerUse write FCornerUse;
property CornerWidth : integer read FCornerWidth write FCornerWidth;
procedure TmyPanel.Paint;
var
reg: hrgn;
begin
.....
if CornerUse and (CornerWidth > 0) then
begin
reg := CreateRoundRectRgn(0,0,self.Width,
self.Height, CornerWidth,CornerWidth);
setwindowrgn(self.Handle, reg, True);
deleteobject(reg);
end;
.....
Ich habe es mir deswegen soo einfach gemacht, weil dieser Code bei dem Beispiel mit dem Panel aich ohne Image funktioniert hatte. Vielleicht muss man ja doch den Umweg mit dem Image in Kauf nehmen oder es so angehen, wie von OKI angedacht!? Ich spiele noch ein wenig mit dem Code rum.
BTW. Schatten um die Komponente waäre auch "cool"...