sVarstringchecks/de

From Lazarus wiki
Jump to navigationJump to search

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)