![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Узнать количество элементов
DelphiLexx © (2007-01-31 17:05:00)У меня есть тип
TConstr = (cntPhys, cntChem, cntPhysChem, cntQuality)
Т.е. перечислимый тип TConstr содержит 4 элемента, как это узнать программно.
Пишу High(TConstr) выдается ошибка.
_RusLAN (2007-01-31 19:29:00) [1]>[3] DelphiLexx(c) 31-Jan-2007, 17:38
>
> for i := 0 to High(TConstr) - 1 do
> AddConstraints(TConstr(i))
var
i: TConstr
begin
...
for i:= Low(TConstr) to High(TConstr) do
AddConstraints(i);
DelphiLexx (2007-01-31 18:12:00) [2]
> то будет ошибка компиляции - несовместимые типы - Integer
> и TConstr, что наводит на мысль, что тип функции High то
> го же типа, что и её параметр. Ещгда следует написать
>
>
> var I:Integer;
> I:=Integer(High(TConstr));
>
> и всё в шоколаде
Спасибо.
icWasya (2007-01-31 17:41:00) [3]>Пишу High(TConstr) выдается ошибка.
А почитать текст ошибки?
Eсли пишете
var I:Integer;
I:=High(TConstr);
то будет ошибка компиляции - несовместимые типы - Integer и TConstr, что наводит на мысль, что тип функции High то го же типа, что и её параметр. Ещгда следует написать
var I:Integer;
I:=Integer(High(TConstr));
и всё в шоколаде
DelphiLexx (2007-01-31 17:38:00) [4]
> Поясни, зачем это надо.
procedure AddConstraints(Constr: TConstr);
begin
case Constr of
cntPhys: begin {что-то делаем} end;
cntChem: begin {что-то делаем} end;
cntPhysChem: begin {что-то делаем} end;
cntQuality: begin {что-то делаем} end;
end
end;
procedure SetConstraints;
begin
for i := 0 to High(TConstr) - 1 do
AddConstraints(TConstr(i))
...
end;
Amoeba (2007-01-31 17:18:00) [5]Создай переменную ThisVariable типа TConstr и далее через High(ThisVariable)+1 получишь искомое кол-во элементов.
Amoeba (2007-01-31 17:10:00) [6]
> Пишу High(TConstr) выдается ошибка.
Приведи код полностью. Телепаты в отпуске.
> перечислимый тип TConstr содержит 4 элемента, как это узнать
> программно.
Поясни, зачем это надо.