我制作了一个包含 TVirtualStringTree 的表单,在 Delphi 7 和 Delphi 2010 中均可正常运行。我注意到当我在这两个平台之间切换时,会收到“...参数列表不同...”的消息,并且字符串类型在 TWideString (D7) 和 string (D2010) 之间变化。我发现抑制此错误的唯一诀窍是使用编译器指令,如下所示:
{$IFDEF TargetDelphi7}
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
{$ELSE}
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: string);
{$ENDIF}
我需要在事件实现的地方重复这个操作。我是否错过了一个简单的解决方案?谢谢。