ich habe jetzt stundenlang nach einem Fehler gesucht.
Ich habe ein Array of Record mit verschiedenen Werten zu den installierten Druckern.
In meinem Programmoptionen Formular befülle ich daraus einige Eingabeelemente.
Code: Alles auswählen
procedure TProgrammoptionenForm.SpinChange(Sender: TObject);
begin
with Anwender.PrinterSettings[Printername.ItemIndex] do
begin
OffsetLeft := SpinEdit1.Value;
OffsetTop := SpinEdit2.Value;
OffsetRight := SpinEdit3.Value;
OffsetBottom := SpinEdit4.Value;
end;
end;
Wie man im Code sehen kann, habe ich keine Prüfung drin, ob da überhaupt Einträge drin stehen.
Am Anfang der Prozedur sind in dem Array Anwender.PrinterSettings 5 Einträge enthalten.
Danach nur noch einer und beim beenden des Programmes kam es zusätzlich noch zu einer Exception mit Zugriffsverletzung.
Hätte ich gleich den Range Check eingeschaltet, wäre hier eine Exception ausgelöst worden und ich hätte mir die lange Fehlersuche gespart.
Nur mal so als Tip.