在Delphi XE7中,我使用Anders Melander着名的DragAndDropSuite。此套件中的TDropFileTarget
组件将删除的文件作为TUnicodeStrings
返回。但是,我需要在具有TStrings
参数的过程中使用这些文件:
procedure DoSomethingWithTheseFiles(const AFiles: TStrings);
begin
// Do something...
end;
procedure DropFileTarget1Drop(Sender: TObject;
ShiftState: TShiftState; APoint: TPoint; var Effect: Integer);
begin
DoSomethingWithTheseFiles(DropFileTarget1.Files); // TUnicodeStrings
end;
因此,使用此代码,我收到错误E2010 Incompatible types: 'TStrings' and 'TUnicodeStrings'
那么如何将TUnicodeStrings
转换为TStrings
?
答案 0 :(得分:4)
TUnicodeStrings
支持Assign()
的{{1}}和AssignTo()
方法。它知道如何从TPersistent
对象复制字符串,例如:
TStrings
或者:
Strings.Assign(UnicodeStrings);
在你的情况下,它看起来像这样:
UnicodeStrings.AssignTo(Strings);