Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Что означает case.. of


Автор: Тутанхамец 13.4.2006, 16:13

Смотрел хэлп, ткнулся вот в такое:

Код

type 
  TRect = packed record
  case Integer of
    0: (Left, Top, Right, Bottom: Integer);
    1: (TopLeft, BottomRight: TPoint);
end;




Не подскажете, что означает case в данном случае?

Автор: Snowy 13.4.2006, 16:32
В хелпе дельфей об этом все подробно расписано.
Это означает, что у тебя есть рекорд из 4х4 = 16 байт.
Ты можешь обращаться к ним либо, как к 4 по 4 байта, либо как к 2 по 8 байт.
Если ты запишешь Rect.TopLeft, то запишешь первые 8 байт.
А доступ к ним можешь получить через Left и Top, т.е. как к двум 4-хбайтовым значениям.
Добавлено @ 16:34
Читай раздел справки "Variant parts in records"

Автор: Тутанхамец 13.4.2006, 16:35
Ясно. Я хэлп-то посмотрел, но до этого раздела не долез...

Спасибо! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)