Hallo Forum,
ich habe Delphi 10.3.3 und Windows 10.
Meine Procedure xyz bringt unerwartete Ergebnisse:
Die procedure rufe ich zuerst in Form1 auf. Das Ergibnis stimmt. (hw2=255)
Dananch rufe ich die procedure in Form2 auf. Auch hier stimmt das Erginis. (hw2=255)
Dann gehe ich wieder zurück in Form1 und rufe die procedure auf. Das Ergibnis stimmt nicht mehr. (hw2=-16129)
ha.dbyte1 ist in allen Fällen immer 255.
Delphi-Quellcode:
type tdb1bytearray = record
dbyte1: Byte;
end;
procedure Form1.xyz
var ha: tdb1bytearray;
var hq2: ^SmallInt;
var hw2: SmallInt;
var h1: integer;
begin
h1:=FileRead(h2, ha, 1);
h1:=Ord(ha.dbyte1);
if h1 > 127 then
begin
hq2:=@ha;
hw2:=hq2^;
if hw2 <> 255 then fdsreturn:=36;
end;
end;
Hat jemand eine Idee?
Danke und Gruß
Jürgen