![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сравнение двух величин TNotifyEvent [D6, WinXP]
Andsin © (2005-09-26 12:26:00)Привет!
Планирую использовать контейнер для уведомления экземляров классов о событии. Именно экземпляров, а не одного экземпляра. Пытаюсь реализовать так:
procedure Foo.AttachOnReply(AnEvent: TNotifyEvent);
var
matched: boolean;
i: integer;
begin
matched := false;
for i := 0 to Length(FEvents)-1 do
if FEvents[i] = AnEvent then matched := true;
if not matched then
begin
i := Length(FEvents);
SetLength(FEvents, i+1);
FEvents[i] := AnEvent;
end;
end;
В строчкеif FEvents[i] = AnEvent then matched := true;возникают две одинаковых ошибки:
[Error] foo.pas(221): Not enough actual parameters.
т.е. компилятор пытается вызвать соответствующие методы.
Могу ли я исправить код так, чтобы компилятор проверял равенство указателей на метод класса, вместо вызова?
P.S. Преобразование TNotifyEvent к типу TMethod, на мой взгляд, не является документированной производителем, поэтому такие варианты не катят...
Спасибо!
alex_*** (2005-09-26 12:45:00) [61]видимо так надо: if @FEvents[i] = @AnEvent