Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.082 c
4-1073811635
кекс
2004-01-11 12:00
2004.03.28
инфа о процессах


4-1074274265
Nikolay str
2004-01-16 20:31
2004.03.28
Нужно эмитировать нажатие меню в чужой программе


1-1078860473
JIruaasgyy
2004-03-09 22:27
2004.03.28
Как в ComboBox выбрать 1 из доступных Item_ов и поместить в поле?


14-1074854043
}|{yk
2004-01-23 13:34
2004.03.28
Тексейра и Пачеко - компоненты


14-1078051680
ABLE
2004-02-29 13:48
2004.03.28
Синий экран