$R
Adam Boduch
Składnia: | `{$R filename}` lub `{$RESOURCE filename}` `{$R+}` lub `{$R-}` lub `{$RANGECHECKS ON}` lub `{$RANGECHECKS OFF}` |
Wartość domyślna: | `{$R-}` lub `{$RANGECHECKS OFF}` |
Dyrektywa {$R} ma dwojakie znaczenie. Pierwsza wersja umożliwia włączenie pliku zasobu. Domyślnie pliki zasoby posiadają rozszerzenie *.res, tak więc nie jest konieczne podawanie rozszerzenia:
{$R 'My resources'}
Nazwę pliku należy podać w pojedyńczych apostrofach. Możliwe jest określenie rozszerzenia pliku jeżeli jest ono inne niż *.res. Możliwe jest wykorzystanie symbolu *. W każdym kodzie źródłowym, formularza projektu Delphi dla Win32, znajdziesz taką linię:
{$R *.dfm}
Taka dyrektywa oznacza włączenie do projektu pliku o rozszerzeniu *.dfm, a nazwie odpowiadającej nazwie formularza.
Druga wersja dyrektywy powoduje sprawdzanie czy nie próbujemy odwołać się do elementu tablicy z poza zasięgu lub przypisać zbyt długi łańcuch do zmiennej łańcuchowej o ograniczonej długości. Spójrz na poniższą metodę:
procedure TMyForm.MyButtonClick(Sender: TObject);
var
Foo : array[5..10] of Integer;
I : Integer;
begin
{$R+}
for I := 0 to 10 do
Foo[I] := I;
end;
W pętli przypisujemy tutaj elementy do tablicy poczynając od indeksu zero, co jest nieprawidłowe (najmniejszy indeks tablicy to 5). Wykonanie takiego kodu spowoduje wygenerowanie wyjątku ERangeError
. Wyłączenie dyrektywy (wartość domyślna) spowoduje iż żaden wyjątek nie będzie generowany.