Хочу сохранить ссылки на обработчики в TStringList.
Не могу что-то слету понять как это сделать?
- Код: Выделить всё
function TWebhookAction.GetCommandHandlers(Command: String): TCommandEvent;
var
i: Integer;
O: TObject;
begin
i:=FCommandHandlers.IndexOfName(Command);
if i>-1 then
Result:=TCommandEvent(FCommandHandlers.Objects[i])
else
Result:=nil;
end;
И наоборот
- Код: Выделить всё
procedure TWebhookAction.SetCommandHandlers(Command: String;
AValue: TCommandEvent);
var
i: Integer;
begin
i:=FCommandHandlers.IndexOfName(Command);
if i=-1 then
FCommandHandlers.AddObject(Command, AValue)
else
FCommandHandlers.Objects[i]:=AValue;
end;
где TCommandEvent - объектная процедура, то есть типа TCommandEvent = procedure (ASender: TObject; ... ... ...) of object;
Выдает ошибку
Error: Illegal type conversion: "TObject" to "<procedure variable type of procedure(ASender: TObject; ... ... ...) of object;