对于想了解delphi–如何使我的表单调整更顺利?的读者,本文将是一篇不可错过的文章,我们将详细介绍delphi表格,并且为您提供关于.Delphi7升级到Delphi2010、DelphiXE、De
对于想了解delphi – 如何使我的表单调整更顺利?的读者,本文将是一篇不可错过的文章,我们将详细介绍delphi表格,并且为您提供关于.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结、Delphi XE4 – 获取当前的表单监视器、delphi – ParentBackground如何在IDE生成的表单上工作?、delphi – 为什么我的表单在文件被删除时不会收到WM_DropFiles?的有价值信息。
本文目录一览:- delphi – 如何使我的表单调整更顺利?(delphi表格)
- .Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- Delphi XE4 – 获取当前的表单监视器
- delphi – ParentBackground如何在IDE生成的表单上工作?
- delphi – 为什么我的表单在文件被删除时不会收到WM_DropFiles?
delphi – 如何使我的表单调整更顺利?(delphi表格)
解决方法
procedure TForm1.WMEnterSizeMove(var Message:TWMMove); begin Self.disableAlign; end; procedure TForm1.WMExitSizeMove(var Message:TWMMove); begin Self.EnableAlign; end;
.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
总结
以上是小编为你收集整理的.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Delphi XE4 – 获取当前的表单监视器
当显示表单时,我会进行所有检查(如果监视器编号-i-存在等等),如果一切正常,我会在右侧监视器上显示该表单(i)
Form1.BoundsRect := Screen.Monitors[i].BoundsRect;
我希望能够在Form1.onCloseQuery事件中显示当前监视器显示的表单和活动监视器,这样我就可以在一些Ini,DB中保存该信息,无论如何,但似乎我找不到正确的方法来执行它正常.
有任何想法吗?
解决方法
换句话说,您实际上不需要担心表单所在的监视器.例如,假设您有两台并排的800×600显示器.屏幕坐标为:
>(0,800,800)左手监视器.
>(800,1600,800)用于右侧监视器.
在您第一次显示表单时,检查表单是否在屏幕范围内是明智的.也许当你记得它的位置时,它就在显示器上,后来被移除了.或者用户可能已重新配置其监视器以使之前的屏幕坐标无效.
要回答您提出的问题,请使用表单的Monitor
属性查找与表单关联的监视器.这是通过调用Win32 API函数MonitorFromWindow
传递MONITOR_DEFAULTTONEAREST来实现的.
delphi – ParentBackground如何在IDE生成的表单上工作?
Self.ParentBackground := True;
但为什么?没有任何后代(TForm,TCustomForm,TScrollingWinControl)发布TWinControl的受保护的ParentBackground属性.表单顶部的表单类型声明(f.i.’TForm1′)也没有.确实如预期的那样
TForm(Self).ParentBackground := True;
不编译(“无法访问受保护的符号TWinControl.ParentBackground”).与在运行时创建的任何表单相同.
注意:问题不在于我如何设置属性(BTW,还有其他的,如’Bevel [xxx]’),我想知道这是如何工作的.
解决方法
Self.ParentBackground := True;
编译,因为类可以访问自己的受保护成员.
delphi – 为什么我的表单在文件被删除时不会收到WM_DropFiles?
TMainForm = class(TForm) public: procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; end; procedure TMainForm.FormCreate(Sender: TObject); begin DragAcceptFiles(Self.Handle,True); end; procedure TMainForm.FormDestroy(Sender: TObject); begin DragAcceptFiles(Self.Handle,False); end; procedure TMainForm.WMDropFiles(var Msg: TWMDropFiles); begin inherited; showmessage('catch here'); // some code to handle the drop files here Msg.Result := 0; end;
这段代码没有问题.此外,当我拖放文件时,光标显示状态已更改为拖放,但在删除后,没有任何反应(也未显示任何消息).这有什么不对吗?
解决方法
>在初始调用DragAcceptFiles之后重新创建主窗体的窗口句柄.
>您的进程运行的完整性级别高于删除其上的文件的进程.例如,您是否以管理员身份运行流程?请注意,以IDE身份运行Delphi IDE会导致您的进程在从IDE启动时以管理员身份运行.
>您的过程中的其他任何东西都在干扰拖放.不知道你的应用程序中有什么,很难猜出这可能是什么.开始删除部分应用,直到除了问题中的代码之外什么都没有留下.
方案2似乎很合理.要了解更多信息,请参阅:Q: Why Doesn’t Drag-and-Drop work when my Application is Running Elevated? – A: Mandatory Integrity Control and UIPI
今天的关于delphi – 如何使我的表单调整更顺利?和delphi表格的分享已经结束,谢谢您的关注,如果想了解更多关于.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结、Delphi XE4 – 获取当前的表单监视器、delphi – ParentBackground如何在IDE生成的表单上工作?、delphi – 为什么我的表单在文件被删除时不会收到WM_DropFiles?的相关知识,请在本站进行查询。
本文标签: