sVarstringchecks/de
Deutsch (de)
Zurück zu den lokalen Compiler Direktiven.
$VARSTRINGCHECKS und $V
Die Compiler Direktiven $VARSTRINGCHECKS und $V sind in Ihrer Verwendung Synonym.
Die Compiler Direktive $VARSTRINGCHECKS, legt fest, wie streng der Compiler bei der Prüfung von Zuweisungen von Datentypen vom Typ String ist.
Die Compiler Direktive $V kennt zwei Schalter + und -.
Die Compiler Direktive $VARSTRINGCHECKS kennt zwei Schalter ON und OFF.
Beispiel für einen Fehler:
{$V+} // Schaltet die strenge Zuweisungskontrolle ein
procedure subTest(var strUebergabe: shortString);
begin
showmessage(strUebergabe);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
strWert : String[12];
begin
strWert:='123456789012';
subTest(strWert);
end;
Das obige Beispiel erzeugt folgende Fehlermeldung:
unit1.pas(45,20) Error: String types have to match exactly in $V+ mode
Die Fehlermeldung kommt daher, das beide Strings zwar vom Datentyp shortstring sind, aber eine unterschiedliche Länge haben.
Beispiel für ein fehlerfreies compilieren:
{$V-} //Schaltet die strenge Zuweisungskontrolle aus
procedure subTest(var strUebergabe: shortString);
begin
showmessage(strUebergabe);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
strWert : String[12];
begin
strWert:='123456789012';
subTest(strWert);
end;
--Olaf 10:17, 27 January 2013 (UTC)