Free Pascalでゲーム用のSDL /input ライブラリを作成していますが、問題に直面しています。
ある要素にアクセスすると、他の要素が変更されるバリアント レコードがあります。
レコード タイプは次のとおりです。
tInput = Record
case Device: TInputDevice of
ID_KeyOnce, ID_KeyCont: (Key: TSDLKey);
ID_MouseButton: (MouseButton: Byte);
ID_MouseAxis, ID_JoyAxis,
ID_JoyBall, ID_JoyHat: (Axis: Byte);
ID_JoyButton, ID_JoyButtonOnce, ID_JoyAxis,
ID_JoyHat, ID_JoyBall: (Which: Byte);
ID_JoyButton, ID_JoyButtonOnce: (Button: Byte);
終わり;
クラッシュするコードは次のとおりです。
with Input do begin
Device := ID_JoyAxis;
Which := 0;
Axis := 1;
end;
軸が 1 に設定されている場合、レコード内の他の変数はすべて 1 2 になります。
これは既知のバグですか? または、私が認識していない機能ですか?それとも私が台無しにしたものですか?