我制作了一个包含 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}
并在执行事件的地方重复此操作。我错过了一个简单的解决方案吗?谢谢。