|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.03.2008, 08:04 | #1 |
Регистрация: 24.11.2007
Сообщений: 9
|
Вызов процедуры при обьявлении функции
Приветствую.
Появился очень насущный вопрос. Можно ли при объявлении функции в разделе формальных параметров указать процедуру с уникальным именем, что бы в момент запуска функции происходил и запуск процедуры. |
12.03.2008, 08:31 | #2 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
А зачем это надо?
Вторую процедуру можно вызвать или до вызова функции, или в самой функции... |
12.03.2008, 09:59 | #3 |
Регистрация: 24.11.2007
Сообщений: 9
|
у меня прога в VBA написана из нее перевожу
так вот там идет обращение к функции а она в свою очередь запускает процедуру которая работает как обратная связь(виртуальная машина передаёт данные в нее а она их выводит на экран) Пробую в Delphi то же сделать пишет что не актуальный параметр "Процедуру с непустым списком аргументов можно вызвать только из другой процедуры или функции, использовав ее имя со списком фактических значений аргументов в качестве одного из операторов VBA." b "Если вызываемая процедура имеет уникальное имя и находится в том же модуле, что и вызывающая процедура, то для ее вызова достаточно указать это имя и задать список фактических значений аргументов, не заключая его в скобки." Такое можно в делфи воспроизвесте |
12.03.2008, 10:12 | #4 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Вот это что-ли ? :
Код:
|
12.03.2008, 11:05 | #5 |
Регистрация: 24.11.2007
Сообщений: 9
|
ХМ ни че не понял если честно))
у меня так procedure Tform1.GDSCallback(var uKey, iPoints :longint); /////////////////////////////// Function VBRegisterGDSTask (GDSCallback, uPort, uMask; 'MTL'); при компеляции пишет ""incompatible types: integer and procedure, untyped pointer or untyped parametr"" я понимаю что параметры не совместимы в функции когда я указываю формальные параметры процедура идет целым числом но как ее по другому прописать я не знаю вот и вопрос есть ли у кого примр ?как при обьявлении функции в разделе формальных параметров указать процедуру? |
12.03.2008, 11:54 | #6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
покажи код
|
12.03.2008, 13:20 | #7 |
Регистрация: 24.11.2007
Сообщений: 9
|
решил уже проблему скорее всего через :
Процедурные типы данных Наряду с уже известными типами данных в языке Delphi введен так называемый процедурный тип, с помощью которого обычные процедуры и функции можно интерпретировать как некоторую разновидность переменных. Определение процедурного типа состоит из зарезервированного слова procedure или function, за которым следует полное описание параметров. Для функции дополнительно указывается тип результата. Символические имена параметров никакой роли не играют, поскольку нигде не используются. type TProc = procedure (X, Y: Integer); TFunc = function (X, Y: Integer): Boolean; Определив процедурный тип, можно непосредственно перейти к так называемым процедурным переменным. Они объявляются точно так же, как и обычные переменные. var P: TProc; F: TFunc; При работе с процедурной переменной важно понимать, что она не дублирует код подпрограммы, а содержит лишь ее адрес. Если обратиться к такой переменной как к подпрограмме, произойдет выполнение подпрограммы, адрес которой записан в переменной. program Console; {$APPTYPE CONSOLE} uses SysUtils; function Power(X, Y: Double): Double; begin Result := Exp(Y * Ln(X)); end; type TFunc = function (X, Y: Double): Double; var F: TFunc; begin F := Power; // В переменную F заносится адрес функции Power Writeln('2 power 4 = ', F(2, 4)); // Вызов Power посредством F Writeln('Press Enter to exit...'); Readln; end. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов процедуры | igbizon | Общие вопросы Delphi | 5 | 02.09.2008 10:44 |
Вызов процедуры | Kashp | Общие вопросы Delphi | 4 | 31.03.2008 16:22 |
вызов процедуры из exe? | Volkogriz | Общие вопросы Delphi | 9 | 16.11.2007 22:34 |
Вызов процедуры | Илья Кибель | Помощь студентам | 7 | 17.09.2007 19:43 |
Вызов процедуры | Monoflextor | Общие вопросы Delphi | 2 | 28.04.2007 17:32 |