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

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

Как правильно описать тип (запись) с "виртуальными" полями? [D6, Win95/98, WinME, Win2k, WinXP]


SergP ©   (2006-01-12 22:16:00) 

Для начала приведу пример того что мне требуется:

var
 exp:int64;
 v1,v2:^cardinal;
begin
 v1:=pointer(integer(@exp)+4);
 v2:=@exp;

// После этого мы имеем переменную exp:int64 , к которой можно
// обращаться по частям (по 4 байта) с помощью v1^ и v2^


Вопрос в том как можно подобным образом описать тип (запись), в котором к тем же 8 байтам можно обращаться как к int64 и в то же время по частям как к двум cardinal'ам?

type myrecord=record
   ...
   exp:int64; // нужное мне поле int64
 // как добавить в эту запись еще 2 поля cardinal, которіе біли бы
 //не отдельными полями, а частями поля exp?

   ...
end;


Anatoly Podgoretsky   (2006-01-12 22:36:00) [1]

Оно уже описано  Int64Rec type


Джо   (2006-01-12 22:25:00) [2]

Читать: Variant records.


Джо   (2006-01-12 22:24:00) [3]


type

 myrecord = record
   case Boolean of
     True: (exp: int64);
     False:
       (
         c1,
         c2: Cardinal;
       );
 end;


Наверх

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