Как набор
организован в памяти в 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;
Но прежде чем это сделать, я подумал, что попрошу схему памяти. Это больше чувство, чем знание того, что у меня есть сейчас по этому поводу.