Форум: "Основная";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
ВнизПродолжение изучения написания компонентов Delphi Найти похожие ветки
← →
}|{yk (2004-02-24 18:14) [0]Пишу вот
TImageFormat = (JPG,BMP,PNG);
FImageFormat: TImageFormat;
property ImageFormat: TImageFormat read FImageFormat write FImageFormat default PNG;
Но потом когда пишу естественное для меня (программировавшего 5 лет в С++) if self.FImageFormat=BMP then
получаю несовместимые типы. А как нужно в Delphi писать?
← →
Sandman25+1 (2004-02-24 18:27) [1]У меня никакой ошибки не выдало.
← →
Skier (2004-02-24 18:29) [2]> }|{yk © (24.02.04 18:14)
1) Используй префикс
TImageFormat = (ifJPG, ifBMP, ifPNG);
2) if self.FImageFormat = ifBMP then
(и без self здесь вполне можно обойтись)
3) и, видимо (?), использование case будет выглядеть более
изящно
case FImageFormat of
ifBMP : begin
end; //ifBMP
//......................
end; //case
← →
Skier (2004-02-24 18:30) [3]а в принципе в строке
if self.FImageFormat=BMP then
ошибки нет.
← →
Гаврила (2004-02-24 18:33) [4]Скорее всего конфликт имен
← →
Reindeer Moss Eater (2004-02-24 18:37) [5]А что гадать -то?
Полный текст сообщения компилятора дает исчерпывающий ответ на вопрос.
"Incompatible types TImageFormat and ....."
Либо в текущем модуле идентификатор "BMP" определен как тип данных, либо в одном из модулей из uses.
← →
Defunct (2004-02-24 18:56) [6]У меня приведенный Вами код работает.
Удерживая CTRL, кликните на BMP в строкеif self.FImageFormat=BMP
then, может у Вас есть какая-то переменная с таким именем.
← →
}|{yk (2004-02-24 19:14) [7]Это правда так, в одно из модулей было.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c