Einzelnen Beitrag anzeigen

OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#1

Typenzuweisung sollte abstürzen

  Alt 1. Sep 2016, 11:43
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
  Mit Zitat antworten Zitat