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

Rah*_*hul 3 delphi lazarus

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

我附上了整个项目.我无法找到问题所在.

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

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

Demoproject

Dav*_*nan 8

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

unit formdrop;

{$mode objfpc}
Run Code Online (Sandbox Code Playgroud)

但它应该是这样的:

unit formdrop;

{$mode objfpc}{$H+}
Run Code Online (Sandbox Code Playgroud)

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