Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Problem mit Str() und Unicode

  Alt 13. Jun 2012, 16:55
Delphi-Version: XE
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?

(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat