Zitat von
F.W.:
> ?
? Wie meinst du das denn? Die Ereignisse gelten doch für die neue (also ganze) Komponente, oder? Hääää??
Du hast aber diesen Bevel als Child zu von dem neuen Control erzeugt.
Zum DrawEdge, dass etwas einfache Ausschaut:
Du Zeichnest sicherlich in der Paint-Methode ein Bild
Delphi-Quellcode:
type
TRahmenImage = class ...
private
lHover : Boolean;
procedure TRahmenImage.Paint;
var rc : TRect;
begin
// Bild zeichnen
rc := ClientRect;
if lHover then
DrawEdge(Canvas.Handle, rc, BDR_RAISEDINNER {bzw. OUTER}, BF_RECT);
end;
procedure TRahmenImage.CMMouseEnter(var msg: TMessage);
begin
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
lHover := true;
Paint;
end;
procedure TRahmenImage.CMMouseLeave(var msg: TMessage);
begin
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
lHover := false;
Paint;
end;
Wenn du das so machst sollte die anderen Mouse Ereignisse dann auch eintreffen.