Форум: "Система";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизThread Найти похожие ветки
← →
Alibaba © (2003-12-31 16:12) [0]С наступающим!
Такой вопрос.
В своем проекте (без потока) описываю тип:
type
TUpLoad = (ulFilials, ulResult);
описал переменную:
var
UpLoadToExcel: array[TUpLoad] of procedure;
в разделе INITIALIZATION установил:
UpLoadToExcel[ulFilials]:=SaveExcel;
UpLoadToExcel[ulResult]:=FormExcel;
SaveExcel и FormExcel - это процедуры.
Все работает супер.
В проекте добавляю поток
TMainExcel = class(TThread)
public
UpLoadToExcel: array[TUpLoad] of procedure;
procedure SaveExcel;
procedure FormExcel;
end;
в разделе INITIALIZATION пытаюсь установить:
UpLoadToExcel[ulFilials]:=SaveExcel;
UpLoadToExcel[ulResult]:=FormExcel;
Не получается, пишет:
Incompatible types: "regular procedure and method pointer"
Что я делаю не так?
← →
Ihor Osov'yak © (2003-12-31 19:27) [1]У Вас SaveExcel и FormExcel не процедуры, а методы. (вормальное отличие процедуры и метода в том, что последний неявно получает еще один параметр (кроме продекларированных) - указатель на инстанцию класса).
Попробуйте написать не
var
UpLoadToExcel: array[TUpLoad] of procedure;
а
var
UpLoadToExcel: array[TUpLoad] of procedure of object;
Компилятор пропустит, а вот подойдет ли такая замена в вашем случае - это уже вопрос к Вам.
Удачи в Новом году. С Наступающим.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.113 c