Форум: "Основная";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];
ВнизОписание классов Найти похожие ветки
← →
Satrap (2001-12-28 13:19) [0]Уважаемые мастера, ответьте на вопрос, можно ли объявлять
процедурный тип с дерективой stdcall например
type
TMyType=procedure (var Message:TMessage) of object stdcall;
при подобном объявлении параметры передаются как бы сдвинутыми влево, если кто может, помогите.
← →
Владислав (2001-12-28 13:20) [1]Удалено модератором
← →
vuk (2001-12-28 13:56) [2]Если уж "of object", то еще один параметр будет добавлен неявно. Этот параметр - указатель на экземпляр (то же, что и self в методах объектов).
← →
Юрий Зотов (2001-12-28 14:54) [3]Я бы не рискнул сочетать "of object" с "stdcall". Думаю, что это приведет к ошибке при выполнении реального вызова (вряд ли методы дельфишных объектов могут работать по соглашению stdcall).
А если не сочетать, то это будет не метод объекта, а обычная процедура - и тогда почему бы и нет?
Поэтому, если уж очень нужно, то объявите просто процедуру
TMyType = procedure(var Message:TMessage); stdcall;
и уже из нее вызывайте метод объекта (ссылку на его экземпляр процедура может получить, например, через глобальную переменную).
← →
vuk (2001-12-28 15:30) [4]>вряд ли методы дельфишных объектов могут работать по соглашению
>stdcall
Работают. Как из ружья... Единственное ограничение по форматам вызовов - у методов доступа published свойств. Они могут быть только register.
← →
Иван Шихалев (2001-12-28 22:27) [5]прекрасно работает (кроме published)
а объявляентся так :
TMyType=procedure (var Message:TMessage) of object ; stdcall;
← →
Satrap (2002-01-06 07:39) [6]большое всем спасибо за помощь
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c