文件拖放不适用于Lazarus中的Form

时间:2013-03-29 09:27:18

标签: delphi lazarus

我在TForm1.FormDropFiles中遇到了一个非常奇怪的问题。

我附上了整个项目。我无法找到问题。

执行项目后,将显示form1并显示系统托盘图标,当在form1上拖放文件时,将显示文件名。这很有效。但是当从系统托盘调用frmDrop表单 - 显示删除平台菜单,并在frmDrop上拖放文件时,将显示垃圾。

请查看项目和指南,我错过了它。该项目如下。

Demoproject

1 个答案:

答案 0 :(得分:8)

表格单元的顶部如下所示:

unit formdrop;

{$mode objfpc}

但它应该是这样的:

unit formdrop;

{$mode objfpc}{$H+}

默认情况下,objfpc字符串是短字符串。要使用长字符串,您需要添加{$H+}。 LCL是针对长字符串编译的,因此您需要匹配它。如果不这样做,则OnDropFiles事件中收到的字符串与LCL发送给您的字符串不匹配。