我在TForm1.FormDropFiles中遇到了一个非常奇怪的问题。
我已经附上了整个项目。我找不到问题所在。
执行完项目后,将显示form1并显示系统任务栏图标,将文件拖放到form1上后,将显示文件名。这可行。但是,当从系统托盘-显示放置平台菜单中调用frmDrop窗体,并将文件拖放到frmDrop上时,将显示垃圾。
请查看项目和指南,了解我所错过的内容。该项目如下。
Demoproject
最佳答案
您的formdrop单元的顶部如下所示:
unit formdrop;
{$mode objfpc}
但它应该看起来像这样:
unit formdrop;
{$mode objfpc}{$H+}
在
objfpc
中,字符串默认为短字符串。要使用长字符串,您需要添加{$H+}
。 LCL是为长字符串编译的,因此您需要匹配它。如果不这样做,则在OnDropFiles
事件中收到的字符串与LCL发送给您的字符串之间将不匹配。