Как отключить Range Checking для участка программы, а затем вновь включить

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Можно сделать это, используя «IFOPT» и «DEFINE».

type

PSomeArray = ^TSomeArray;

TSomeArray = array[0..0] of integer;

procedure TForm1.Button1Click(Sender: TObject);

var

p: PSomeArray;

i: integer;

begin

{$IFOPT R }

{$DEFINE CKRANGE}

{$R-}

{$ENDIF}

GetMem(p, sizeof(integer) * 200);

try

for i := 1 to 200 do

p[i] := i;

finally

FreeMem(p, sizeof(integer) * 200);

end;

{$IFDEF CKRANGE}

{$UNDEF CKRANGE}

{$R }

{$ENDIF}

end;

{/codecitation}

Добавить комментарий