Hallo,
ich habe folgendes Problem:
In der Online-Hilfe zu XE steht:
System.Str
Übergeordnet: System
Delphi procedure Str(const X [: Width [:Decimals]]; var S: String);
Eigenschaften
Typ Sichtbarkeit Quelle
Unit Übergeordnet
---------- -------------- ------------ -------- ------------
procedure public System.pas System System
Beschreibung
Formatiert einen String und gibt diesen an eine Variable zurück.
In Delphi konvertiert Str den numerischen Wert X entsprechend der in Width und Decimals angegebenen Formatierung in einen String. Das Ergebnis entspricht einem Aufruf der Prozedur Write, wobei aber der formatierte String nicht in eine Textdatei geschrieben, sondern in der Variable S gespeichert wird.
X ist ein Ausdruck des Typs Integer oder Real. Width und Decimals sind Integer-Ausdrücke. Wenn die erweiterte Syntax aktiviert ist, ist der Parameter S eine String-Variable bzw. ein nullbasiertes Zeichen-Array (PChar).
Siehe auch
Write
Intrinsische Routinen in Delphi
Routinen für die Typumwandlung
Codebeispiele
SystemStr (Delphi)
Quelle:
http://docwiki.embarcadero.com/VCL/de/System.Str
Leider bringt mir der folgende Aufruf eine Warnung beim Compilieren.
Delphi-Quellcode:
// Das ist das Original Beispiel aus derDelphi Hilfe
// http://docwiki.embarcadero.com/CodeExamples/XE2/en/SystemStr_(Delphi)
function MakeItAString(const ANumber: LongInt): String;
begin
{ Convert any ordinal type to string }
Str(ANumber, Result);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.TextOut(10, 10, MakeItAString(-5322));
end;
Die Warnung besagt, dass der Parameter ein ShortString ist.
Fehlermeldung:
[DCC Warnung] Unit1.pas(29): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
Laut Doku ist es doch ein String (
unicode).
Wie kann das sein?