Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.019 c
1-38818
AGN
2004-01-22 17:55
2004.02.13
URL


1-38792
AlexeyITN
2004-02-03 13:14
2004.02.13
Запрет повторного запуска и активизация 1-ого экземляра


3-38666
rosl
2004-01-26 03:53
2004.02.13
edit в sql


4-39131
ALEIIIKA
2003-12-10 10:32
2004.02.13
Чтобы CD-ROM не открывался по нажатию кнопки на нем?


1-38886
yot
2004-02-04 14:02
2004.02.13
Инерпритация