Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Вариантные записи


Автор: Lexicss 29.10.2007, 17:57
Стыдно мне задавть такие вопросы, но никак не пойму принцип действия вариантных записей. 
Пример,
Код

type
  TType = packed record
   NullStrField: PChar;
   IntField: Integer;
   case Integer of
   0: (D: Double);
   1: (I: Integer);
   2: (C: Char);
 end;


Их книжки на скока я понял здесь элементы записи D, I и C - занимают одно и тоже место в памяти. Но никак не догоняю, что означают эти элементы case -  0,1,2.  smile 

Автор: Alexeis 29.10.2007, 18:08
Цитата(Lexicss @  29.10.2007,  17:57 Найти цитируемый пост)
Но никак не догоняю, что означают эти элементы case -  0,1,2.

  Да в том то и дело, что чисто для красоты. Но сейчас по ходу уже не рекомендуют юзать такие структуры, так как полученный код не совместим с Delphi.NET.

Автор: Lexicss 29.10.2007, 18:15
Цитата(Alexeis @ 29.10.2007,  18:08)
  Да в том то и дело, что чисто для красоты. Но сейчас по ходу уже не рекомендуют юзать такие структуры, так как полученный код не совместим с Delphi.NET.

Теперь уже однозначная ясность есть. Спасиб.
Я их никогда и не использовал, и можно даже сказать что и не знал. А щас столкнулся и нифига по-началу не понял. smile

Автор: EvilsInterrupt 29.10.2007, 19:40
Цитата

Но сейчас по ходу уже не рекомендуют юзать такие структуры

А какие рекомендуют?

Автор: Alexeis 29.10.2007, 19:59
  Рекомендуют без вариантов делать. smile

Автор: EvilsInterrupt 29.10.2007, 23:14
Alexeis, Да ну? Ого! Это они сильно! ;)))

Автор: Alexeis 29.10.2007, 23:33
  В нете нельзя в лоб обращаться к переменной по адресу, потому там также запрещена директива absolute, а записи с вариантами это тоже что объявлять несколько переменных по одному абсолютному адресу.

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