Registriert seit: 30. Nov 2005
Ort: München
5.772 Beiträge
Delphi 10.4 Sydney
|
AW: Von C++ nach Delphi (Union + Struct)
18. Mai 2011, 20:31
Guten Abend,
ich hatte mir das ungefähr so vorgestellt:
Delphi-Quellcode:
interface
type
BMRec = packed record
data : Byte;
function Recipient : Byte;
function Reserved : Byte;
function _Type : Byte;
function Dir : Byte;
end;
_BM_REQUEST_TYPE = packed record
case Integer of
0 : (_BM : BMRec);
1 : (B: Byte);
end;
implementation
function BMRec.Recipient:Byte;
begin
result := (data and $C0) shr 6;
end;
function BMRec.Reserved: Byte;
begin
result := (data and $37) shr 3;
end;
function BMRec._Type: Byte;
begin
result := (data and $06) shr 1;
end;
function BMRec.Dir : Byte;
begin
result := (data and $01);
end;
Benutzen kann man es so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
BM_REQUEST_TYPE : _BM_REQUEST_TYPE;
begin
edit1.Text := IntToStr(sizeOf(BMRec));
edit2.Text := intToStr(sizeOf(_BM_REQUEST_TYPE));
BM_REQUEST_TYPE.B := $80;
edit3.Text := intToStr(BM_REQUEST_TYPE._BM.Recipient);
end;
Grüße
Klaus
Klaus
Geändert von Klaus01 (18. Mai 2011 um 21:55 Uhr)
|