Здравствуйте! Возникла проблема) Как можно реализовать что-то типа присваивания процедур? Т.Е.
type
TMyType = array of Integer;
TMyProc = procedure(var a : TMyType);
TMyClass = class(TObject)
...
public
proc1(var a : TMyType);
proc2(var a : TMyType);
end;
...
procedure TForm1.Button1Click(...);
var
proc : TMyProc;
mc : TMyClass;
x : TMyType;
begin
mc := TMyClass.Create(...);
if <условие> then proc := mc.proc1 (*Incompatible types: 'regular procedure and method pointer'*)
else proc := mc.proc2; (*Incompatible types: 'regular procedure and method pointer'*)
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
01-03-2009 03:17
Александр Алексеев, да, довольно интересно, спасибо. Все написано очень доступно.
Обычная процедура и метод класса - это совершенно разные сущности, поэтому они и не совместимы. Если вы хотите, чтобы TMyProc ссылался на метод класса, этот тип надо описать так:
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.