@bitsetter: Welchen Sinn hat es das du 20 Byte speicher anforderst obwohl du nicht soviel nutzt. Und warum schreibst du ' = 3°' in den WideChar? Und warum castest du WText zu PWideChar wenn es doch schon von dem Typ ist? Das ist jetzt keine blose Kritik sondern sind ernst gemeinte Fragen da ich micht mit der Handhabung von
Unicode nicht so recht auskenne und man ja nur dazu lernen kann wenn man auch versteht was man tippt.
[Edit]
ok, das mit dem ' = 3°' versteh ich jetzt. Da wird das erste Zeichen (Leerzeichen) dann durch's Alphazeichen ersetzt.
Anstelle der festen 5 bei TextOutW kann man auch mit Length arbeiten
Nach meinem Verständnis wäre das ganze doch so am besten (zwecks einfacher Änderung des Textes ohne die Zahlen für die Länge gesondert anpassen zu müssen)
Delphi-Quellcode:
var
WText : PWideChar;
lStr : String;
begin
lStr := ' = 3°';
GetMem(WText, Length(lStr) * 2);
StringToWideChar(lStr, WText, Length(lStr) + 1);
PWidechar(WText)^:= WideChar($03B1);//Alpha Zeichen
canvas.Font.Name := 'Arial';
TextOutW(canvas.Handle, 10, 10, WText, Length(WText));
FreeMem(WText);
[/Edit]