EDIT: Sry Doppelpost - war ein Versehen
Ich habe mal (wieder) eine kleine Testanwendung zu diesem Problem programmiert:
Dabei handelt es sich um folgenden simplen Code:
Delphi-Quellcode:
var
Data : Array [0..128] of Byte;
procedure TForm1.BtnWriteClick(Sender: TObject);
var adr,val: Cardinal;
begin
adr := StrToInt(EdAddress.Text);
val := StrToInt(EdValue.Text);
PCardinal(@Data[adr])^ := val;
end;
procedure TForm1.BtnReadClick(Sender: TObject);
var adr,val: Cardinal;
begin
adr := StrToInt(EdAddress.Text);
val := PCardinal(@Data[adr])^;
EdValue.Text := IntToStr(val);
end;
Wenn man nun ins Editfeld für die Adresse Werte wie 0,4,8,12,... eingibt, lassen sich die Werte problemlos in Data eintragen.
Sobald man aber von diesem Raster abweicht (also z.B. als Adresse 1 eingibt), wird das Programm umgehend ohne jegliche Fehlermeldung terminiert.
MFG