Hi,
ich entwickle eine Komponente auf den eine Paintbox ist. Diese Paintbox weise ich nun sowohl das OnClick als auch das OnDblClick-Ereignis zu, um diese mit eigenen Parameter weiterzugeben:
Delphi-Quellcode:
type
TOnDblClickPerson = procedure(Sender: TObject; PersonIndex: Integer) of object;
TOnClickPerson = procedure(Sender: TObject; PersonIndex: Integer) of object;
type
TUrlaubsplaner = class(Tcustompanel)
private
FOnDblClickPerson: TOnDblClickPerson;
FOnClickPerson: TOnClickPerson;
procedure OnPersonClick(Sender: TObject);
procedure OnPersonDblClick(Sender: TObject);
published
//Veröffentlichte Ereignisse im IO
property OnDblClickPerson: TOnDblClickPerson read FOnDblClickPerson write FOnDblClickPerson;
property OnClickPerson: TOnClickPerson read FOnClickPerson write FOnClickPerson;
end;
procedure TUrlaubsplaner.CreateWnd;
begin
//Hier werden die Procedure dem Paint zugewiesen
FPersonPaint.OnClick:=OnPersonClick;
FPersonPaint.OnDblClick:=OnPersonDblClick;
end;
procedure TUrlaubsplaner.OnPersonClick(Sender: TObject);
begin
if Assigned(OnClickPerson) then
begin
OnClickPerson(Self, GetPersonAtRow(GetRowAtPoint(FMousePointPerson.y)));
end;
end;
procedure TUrlaubsplaner.OnPersonDblClick(Sender: TObject);
begin
if Assigned(OnDblClickPerson) then
begin
OnDblClickPerson(Self, GetPersonAtRow(GetRowAtPoint(FMousePointPerson.y)));
end;
end;
Mein Problem ist, dass das OnPersondDblClick nie ausgelöst wird. Lediglich das OnPersonClick und dann im
OI zugewiesene Procedure.
Ich war mal grundsätlich davon ausgegangen, dass auch die Paintbox schon mal zwischen Click und DblClick unterschiedet. Aber wenn ich die Komponente in ein Projekt einbinde und beide Ereignisse auswerte, wie immer nur das OnClickPerson-Ereignis ausgelöst, aber niemals (auch bei einem Doppelclick) das Ereignis OnDblClickPerson.