Hallo,
mit deiner Vermutung, dass es an der
Unicode Unterstützung liegt, bist du ganz richtig.
Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
FSaveHint:=true;
v:=NewStr(value);
v:=SetItemCell(ACol,ARow, FHintCell, v);
if v<>NIL then
DisposeStr(v);
end;
Die Funktion kann nicht kompilieren, da NewStr als Rückgabe PAnsiChar hat und unter Delphi 2009 ist PChar, PString und string ein
Unicode String, also inkompatibel.
Du müsstest also alle Vorkommen von PChar, PString und string durch PAnsiChar, PAnsiString und AnsiString ersetzen.
Oder du probierst folgendes:
Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
FSaveHint:=true;
v:=SetItemCell(ACol,ARow, FHintCell, PChar(Value));// <- Value statt v als Parameter
if v<>NIL then
StrDispose(PChar(v));
end;
Allerdings weiß ich nicht was in der Funktion SetItemCell gemacht wird, kann also sein, das es trotzdem kracht,
weil z.B. mit festen Längen von Zeichen gerechnet wird (also 1 Byte pro Zeichen statt wie bei
Unicode mit 2 Zeichen).
Die Version mit dem Ersetzen von String durch AnsiString sollte auf jedenfall funktionieren.
Solltest nur keine vergessen
Ciao Chris