Hallo Uwe,
ich habe den gleichen Fehler wie du gemacht, weil ich deinen zweiten Beitrag überlesen hatte. Nun habe ich mich ein wenig mit dem Thema auseinandergesetzt und komme zu folgender Frage: Warum veröffentlichst du nicht einfach die property OnMouseEvent, anstatt die Methode MouseDown() zu überschreiben?
Delphi-Quellcode:
unit AppointmentControl;
interface
uses
SysUtils, Classes, Controls, Themes;
type
TAppointmentControl =
class(TGraphicControl)
public
constructor Create(Owner: TComponent);
override;
published
property OnMouseDown;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Marabu', [TAppointmentControl]);
end;
constructor TAppointmentControl.Create(Owner: TComponent);
begin
inherited Create(Owner);
ControlStyle := ControlStyle + [csReplicatable];
Width := 165;
Height := 117;
if ThemeServices.ThemesEnabled
then ControlStyle := ControlStyle - [csOpaque]
else ControlStyle := ControlStyle + [csOpaque];
end;
end.
Wenn ich diese Komponente in meinem Testprogramm nutze, dann wird jede Maustaste korrekt ausgewertet.
Freundliche Grüße