Текущий архив: 2004.02.13;
Скачать: CL | DM;
Вниз
Как объеденить функции класса в массив? Найти похожие ветки
← →
HES (2004-02-02 22:04) [0]Есть класс:
TMyClass = class;
public
fn_array: array [0..N] of function: boolean;
procedure Init;
private
fn0: boolaen;
fn1: boolean;
..
fnN: boolean;
end;
var
MyVar: TMyClass;
Необходимо сделать доступными функции fn0..fnN через массив fn_array, для того, чтобы можно было обращаться к ним следующим образом:
for i:=0 to N do MyVar.fn_array[i];
Естественно если процедуру Init записать:
procedure TMyClass.Init;
begin
fn_array[0]:=fn0;
fn_array[1]:=fn1;
..
fn_array[N]:=fnN;
end;
то компилятор выдает ошибку: Incompotible types: method pointer and regular function.
Может кто знает что нужно сделать, чтобы объеденить функции класса в массив также принадлежащий классу?
← →
jack128 (2004-02-02 22:18) [1]ничего не понятно.
> Необходимо сделать доступными функции fn0..fnN через массив
> fn_array
судя по декларации fn0..fnN - это поля.Если прдположить, что в декларации ошибка и там методы, то
TMyMethod = function: boolean of object;
TMyClass = class;
public
fn_array: array [0..N] of TMyMethod;
procedure Init;
...
← →
HES (2004-02-02 22:23) [2]да, прошу прощение, там должно быть написано:
function fn1: boolean;
..
..
← →
Юрий Зотов (2004-02-03 12:42) [3]type
TBooleanFunc = function: boolean of object;
TMyClass = class;
public
fn_array: array [0..N] of TBooleanFunc;
А дальше все так же, как у Вас.
← →
Romkin (2004-02-03 12:56) [4]array properties
Страницы: 1 вся ветка
Текущий архив: 2004.02.13;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.016 c