Hallo Zusammen,
Ich habe folgenden Beispielcode geschrieben:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs;
type
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TTestTyp = (KeinSet = 0, SetFestgelegt = 1, SetIndividuell = 2);
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
a: TTestTyp;
begin
a := TTestTyp(3);
ShowMessage(Ord(a).ToString);
end;
end.
In den Projektoptionen habe ich die Bereichsprüfung auf "TRUE".
Ich würde bei der Zuweisung einen Absturz mit "außerhalb des gültigen Bereichs" erwarten. Das Programm läuft aber ohne zu murren durch. Auch das ShowMessage zeigt mir die "3" an.
Wenn ich mir "a" im Debugger nach der Zuweisung anschaue, sehe ich "(außerhalb des gültigen Bereichs) 3".
Habe ich hier einen Denkfehler, oder wie kann ich Delphi dazu überreden an der Stelle abzustürzen oder sich zumindest irgendwie anders bemerkbar zu machen.
Genutzt wird: Delphi Berlin 10.1 - 32bit -
VCL