Hallo Furtbichler
Also wenn es grundsätzlich ok ist, heisst das es müsste so auch funktionieren? Ich denke mal ich muss die zwei Zusatzrecords bauen damit ich sie über Ihren Namen ansprechen kann wie z.B.
Delphi-Quellcode:
var
test : TINTER2;
begin
ZeroMemory(@test, SizeOf(test));
Move(FIP[1], test.ipaddr[0], Length(FIP));
test.port := 8196;
test.retry := 3;
test.timeout := 10;
test.alivetime := 5;
test.cntrl.typ := 2;
test.cntrl.first.path := 1;
test.cntrl.first.addr := 1;
test.cntrl.first.no := 1;
test.transnum := 3;
// parameter[0]
test.trans[0].typ := 1;
test.trans[0].first.path := 1;
test.trans[0].first.addr := 5;
test.trans[0].first.no := 2100;
test.trans[0].first.size := 50;
// parameter[1]
test.trans[1].typ := 3;
test.trans[1].second.path := 1;
test.trans[1].second.no := 3011;
test.trans[1].second.num := 1;
// parameter[2]
test.trans[2].typ := 4;
test.trans[2].second.path := 1;
test.trans[2].second.no := 0;
test.trans[2].second.num := 5;
end;
Oder wie kann ich sie sonst über den Namen ansprechen? Es ist ja sonst auch das problem das path und no etc. doppelt vom Namen im Record vergeben sind und das geht ja folglich nicht wirklich. Wie kann ich denn ohne die zwei Zusatzrecords das in eine Definition schreiben?
Folgendes habe ich probiert und klappt leider nicht:
Delphi-Quellcode:
TINTER2_TYPE_PRM = record
typ : Word;
dummy1 : array[0..1] of AnsiChar;
case Integer of
0: ( first = record
path : Word;
addr : Smallint;
no : Cardinal;
size : Cardinal;
end; );
1: ( second = record
path : Word;
dummy2 : array[1..2] of AnsiChar;
no : Cardinal;
num : Cardinal;
end; );
end;
Danke nochmals für deine Hilfe!