I have
procedure TMainForm.FormCreate(Sender: TObject);
begin
DragAcceptFiles (Handle, True ) ;
end ;
但是表单不接受拖放的文件——没有拖放光标,也没有触发WM_DROPFILES消息。
我在FormShow事件中使用了以下结构(出于其他原因——有些代码只想在表单创建后执行一次,而FormShow在初始化期间会多次触发):
procedure TMainForm.FormShow(Sender: TObject);
begin
if (not FRunOnce) then // as FormShow can be called twice - if Form.Position assigned to
begin
DragAcceptFiles (Handle, True ) ;
FRunOnce := True ;
end ;
end ;
DragAcceptFiles (Handle, True ) 在如图所示的位置仍然无法正常工作。如果我将其移动到程序的顶部(使其执行两次),它就可以正常工作:
procedure TMainForm.FormShow(Sender: TObject);
begin
DragAcceptFiles (Handle, True ) ;
if (not FRunOnce) then // as FormShow can be called twice - if Form.Position assigned to
begin
FRunOnce := True ;
end ;
end ;
我找到的所有示例代码似乎都在OnCreate期间调用DragAccept。 我的实验表明这太早了,就像OnShow的第一次触发一样。 我确定我的其他代码有问题,但可能是什么原因?