Форум: "Начинающим";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
ВнизКак получить кол-во элементов в ординал типе? Найти похожие ветки
← →
IPranker © (2011-06-03 20:58) [0]Всем привет!
Есть код.
В итоге должна выводиться строка с именами присутствующих элементов. Но на High(TEnum) do пишет "Incompatible types".
Как получить сабж?
type
TEnum = (e1, e2, e3, e4, e5, e6);
var
Enum: set of TEnum;
procedure TForm1.FormCreate(Sender: TObject);
const
X_ENUM: array [TEnum] of string = ("e1", "e2", "e3", "e4", "e5", "e6");
var
i: LongInt;
begin
Enum:= Enum + [e2];
Enum:= Enum + [e6];
For i:= 1 to High(TEnum) do // <- Incompatible types.
If TEnum(i) in Enum then Caption:= Caption + ", " + X_ENUM[TEnum(i)];
end;
← →
sniknik © (2011-06-03 21:32) [1]> пишет "Incompatible types".
верь ему
> Как получить сабж?
например, поменяй тип на "compatible"... (исправь ошибку)
← →
_Юрий (2011-06-04 00:27) [2]
var
i: TEnum;
begin
For i:= Low(i) to High(i) do
If i in Enum then Caption:= Caption + ", " + X_ENUM[TEnum(i)];
← →
Германн © (2011-06-04 01:20) [3]
> For i:= 1 to High(TEnum) do // <- Incompatible types.
> If TEnum(i) in Enum then Caption:= Caption + ", " + X_ENUM[TEnum(i)];
Тут не только "Incompatible types". Тут полное незнание enumerated типов. Нужно читать справку или книжки.
← →
IPranker © (2011-06-04 09:26) [4]
> _Юрий (04.06.11 00:27) [2]
Спасибо. :)
← →
_Юрий (2011-06-04 15:50) [5]а лучше так:
var
i: TEnum;
begin
for i in Enum do
Caption:= Caption + ", " + X_ENUM[TEnum(i)];
← →
IPranker © (2011-06-04 22:21) [6]
> _Юрий (04.06.11 15:50) [5]
Delphi 7 такого нет.
← →
Германн © (2011-06-05 06:10) [7]
> IPranker © (04.06.11 22:21) [6]
>
>
> > _Юрий (04.06.11 15:50) [5]
>
>
> Delphi 7 такого нет.
>
Значит нужно читать книжки, чтобы понять разницу между _Юрий (04.06.11 00:27) [2] и _Юрий (04.06.11 15:50) [5]
← →
IPranker © (2011-06-05 09:51) [8]
> Германн © (05.06.11 06:10) [7]
Я говорил про:
for i in Enum do
← →
Германн © (2011-06-05 18:32) [9]
> Я говорил про:
> for i in Enum do
И я тоже про это.
← →
Evgnevius © (2011-06-07 10:45) [10]
for i := 0 to SizeOf(TEnum) - 1 do
← →
Evgnevius © (2011-06-07 10:49) [11]Хотя, правильнее наверное вот так:
Count := 0;
for I := Low(TEnum) to High(TEnum) do
Inc(Count);
← →
Anatoly Podgoretsky © (2011-06-07 11:05) [12]> Evgnevius (07.06.2011 10:49:11) [11]
Не писать надо такFunction NextDay:
Sleep(86400)
...
← →
_Юрий (2011-06-07 20:41) [13]
> Anatoly Podgoretsky © (07.06.11 11:05) [12]
Если сделать не функцию, а процедуру - то все правильно.
Как бэ не геттер, а сеттер
← →
Омлет © (2011-06-08 09:26) [14]> _Юрий (04.06.11 00:27) [2]
Вместо TEnum(i), можно просто i
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c