Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 04.01.2012, 20:03   #1
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
Вопрос var p:procedure

Привет всем с новым годом!собственно вопрос:
Возможно ли записать процедуру как переменную
например
Код:
procedure a(s:string);
begin
showmessage(s);
end;

procedure b(p:procedure);
begin
b('sms');
end;

procedure exute;
begin
b(a);
end;
реально ли сделать что то такое ?
Кольша вне форума Ответить с цитированием
Старый 04.01.2012, 20:06   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
реально ли сделать что то такое ?
http://delphiworld.narod.ru/base/fun...ike_param.html
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.01.2012, 20:08   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

возможно, но в вашем случае нужно указывать тип процедуры.
Код:
type
  myproc=procedure(a:string);

procedure a(s:string);
begin
showmessage(s);
end;

procedure b(p:myproc);
begin
b('sms');
end;

procedure exute;
begin
b(a);
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2012, 20:32   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

[Error] main.pas(289): Incompatible types: 'regular procedure and method pointer'
Кольша вне форума Ответить с цитированием
Старый 04.01.2012, 20:36   #5
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ВСЕ ИСПРАВИЛ СОЗДАЛ ПРОЦЕДУРУ НЕ ПРИНАДЛЕЖАЩУЮ ФОРМЕ
Кольша вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьявление переменной в var AlexDn Общие вопросы Delphi 25 23.08.2011 15:42
var r_array Eldrich JavaScript, Ajax 0 24.02.2011 10:30
Процедура и Var<...>:String ImmortalAlexSan Общие вопросы Delphi 2 17.11.2010 20:43
Var Черничный Общие вопросы Delphi 4 16.07.2008 23:44
var Черничный Общие вопросы Delphi 9 25.06.2008 16:10


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840