Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Узнать количество элементов


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 элемента, как это узнать
> программно.

Поясни, зачем это надо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо