Структура памяти набора

Как набор организован в памяти в Delphi?

Я пытаюсь преобразовать простой тип в набор типа

var
  MyNumber : Word;
  ShiftState : TShiftState;
begin
  MyNumber:=42;
  ShiftState:=TShiftState(MyNumber);
end;

Delphi (2009) не допустит этого, и я не понимаю почему. Это сделало бы мою жизнь намного проще в тех случаях, когда я получаю число, в котором отдельные биты кодируют разные значения перечисления, и я мог бы просто использовать его вот так. Можно ли это сделать?

Один из подходов, который я собирался использовать, таков:

var
  ShiftState : TShiftState;
  MyNumber : Word absolute ShiftState;
begin
  MyNumber:=42;
end;

Но прежде чем это сделать, я подумал, что попрошу схему памяти. Это больше чувство, чем знание того, что у меня есть сейчас по этому поводу.

7
задан Heinrich Ulbricht 6 June 2011 в 12:39
поделиться