Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2013, 20:47   #1
Phong
Новичок
Джуниор
 
Регистрация: 24.06.2013
Сообщений: 2
По умолчанию ООП в Делфи

Я только осваиваю ООП в Делфи, вот столкнулся с одной проблемой и прошу гуру программирования дать совет. Пытаюсь в классе реализовать Callback-функцию. Приведу часть кода одного моего модуля:
Код:
TeGetValue = function (AVal : string) : string of object;
...
TeCalc = class
 private
  FGetValue : TeGetValue;
 public
  property eGetValue : TeGetValue read FGetValue write FGetValue;
  ...
 end;
...

function vFValue (AVal: string) : String;
begin
 if Aval = 'x' then Result := '1';
end;

eCalc := TeCalc.Create;
eCalc.eGetValue := vFValue;
Ошибка несовпадения типов String и TeGetValue. Подскажите как исправить это?

Последний раз редактировалось Stilet; 24.06.2013 в 23:00.
Phong вне форума Ответить с цитированием
Старый 24.06.2013, 20:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тип TeGetValue - объектный метод (of object)
vFValue - не объектный метод
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.06.2013, 23:02   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как исправить это?
Дополню: Нужно описать function vFValue как метод класса, а не просто функцию.
of object говорит что этому типу обязан соответствовать метод. Функция описанная в private, public и т.д. секциях класса.

Только насколько я понял из твоего кода, он будет уже принадлежать другому классу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2013, 16:51   #4
Phong
Новичок
Джуниор
 
Регистрация: 24.06.2013
Сообщений: 2
По умолчанию

Всем спасибо за внимание! Тема закрыта.
Phong вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП - нахождение сумм, площадей и периметров круга, прямоугольника, равностороннего треугольника, квадрата ( ДЕЛФИ МОДУЛИ ) Pyxy Помощь студентам 0 28.02.2012 19:37
делфи ООП phasha Помощь студентам 3 25.10.2011 01:20
ООП делфи phasha Помощь студентам 9 14.10.2011 21:11
ООП в делфи Antidelphik_) Помощь студентам 3 27.04.2011 21:18
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55