|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.07.2012, 22:22 | #1 |
Пользователь
Регистрация: 04.07.2010
Сообщений: 28
|
Incompatible types Почему?
1. При объявлении класса определяю поле FLife: SmallInt;
2. Там же указываю метод для записи в это поле: function SetLife(AIzm: SmallInt): SmallInt; 3. Там же указываю свойство: property Life: SmallInt read FLife write SetLife; При компиляции получаю сообщение, что в строке 3 определены Incompatible types. Причем, какие именно types являются Incompatible не указано. Как видно, все типы являются одинаковыми. Если какой-либо из них изменить (допустим на Byte), то это же сообщение указывает уже конкретно, что типы Byte и SmallInt являются несовместимыми и это понятно. Но почему же являются несовместимыми SmallInt и SmallInt? Кстати, если поменять все типы SmallInt на любые другие (например integer, Byte, string, etc), то результат будет тем же - Incompatible types без конкретного указания несовместимых типов. Если функцию заменить процедурой (т.е. тип не указывается) то все нормально. |
28.07.2012, 22:40 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
а разве сеттер что-то возвращает? скорее всего он и определен, как procedure ... вот и ругается на несовместимость
|
28.07.2012, 22:51 | #3 | |
Пользователь
Регистрация: 04.07.2010
Сообщений: 28
|
Цитата:
Код:
|
|
28.07.2012, 22:56 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
сеттер не может быть функцией, что не понятно?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
29.07.2012, 12:13 | #5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
dimavit, неправильно трактуешь сообщение. Сигнатура метода - это тоже тип данных. "Incompatible types" говорит не о SmallInt, а о function SetLife. Сеттер должен иметь вид:
Код:
Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Непонятно почему Incompatible types | flouwjke | Помощь студентам | 6 | 23.04.2012 18:59 |
Incompatible types | MetR | Помощь студентам | 4 | 22.12.2011 18:31 |
incompatible types | nupinh | Общие вопросы Delphi | 1 | 21.05.2011 23:18 |
Delphi Incompatible types | Iogan Gamba Puti | Помощь студентам | 1 | 19.06.2008 13:45 |