Delphi中将ShowMessage,MessageDlg, MessageBox,InputBox,InputQuery及任意模态窗口相对主窗口(父窗口、母窗口)居中

这篇具有很好参考价值的文章主要介绍了Delphi中将ShowMessage,MessageDlg, MessageBox,InputBox,InputQuery及任意模态窗口相对主窗口(父窗口、母窗口)居中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Delphi中调用系统的一些Modal模态对话框(如ShowMessage,MessageDlg, Application.MessageBox,InputBox,InputQuery等),一般是屏幕居中,也有其他窗体的TForm.Position未定义主窗口居中poMainFormCenter,若主窗口不在屏幕中间或多个显示屏时,这些对话框位置就不在主窗口中间,既不美观也不便于操作。

本文提供一简易方法,不修改模态对话框任何代码,实现将任意模态窗口相对于主窗口(或任意父窗口)居中。本方法也可移植到C#,Java等

procedure NextModalFormMoveToMyCenter(Owner: TForm);
begin
//From HeZiHang@cnBlogs
TThread.ForceQueue(nil, procedure var R: TRect; X, Y: Integer; begin GetWindowRect(Application.ActiveFormHandle, R); X := Owner.Left + (Owner.Width - R.Width) div 2; Y := Owner.Top + (Owner.Height - R.Height) div 2; // 将InputBox或MessageBox在Owner Form居中 SetWindowPos(Application.ActiveFormHandle, HWND_TOP, X,Y, 0, 0, SWP_NOSIZE or SWP_SHOWWINDOW or SWP_NOOWNERZORDER); end); end;

//Demo1:MessageBox自动居中
procedure TForm1.btnResetClick(Sender: TObject); begin NextModalFormMoveToMyCenter(Self); if Application.MessageBox('是否复位重启?', '重启', MB_YESNOCANCEL or MB_ICONQUESTION or MB_DEFBUTTON2) <> mrYes then 。。。。。。。。。//此时MessageBox对Form1居中 end;
//Demo2:InputBox自动居中 
procedure TForm1.btnCommandClick(Sender: TObject);
var
  S: String;
begin
  NextModalFormMoveToMyCenter(Self);
  S := InputBox('请输入命令', '命令:', '');。//此时InputBox对Form1居中
    。。。。
end;

//Demo3:其他窗体,自动居中
procedure TForm1.btnCommandClick(Sender: TObject); var F:TMyForm; S: String; begin NextModalFormMoveToMyCenter(Self); F:=TMyForm.Create(Self); F.ShowModal;//此时 F对Form1居中
..............
F.DisposeOf; end;

 文章来源地址https://www.toymoban.com/news/detail-807417.html

到了这里,关于Delphi中将ShowMessage,MessageDlg, MessageBox,InputBox,InputQuery及任意模态窗口相对主窗口(父窗口、母窗口)居中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++中MessageBox弹窗的用法大全

    想必大家都知道,MessageBox函数是c语言中很常用且好玩的函数之一,那你知道它怎么用吗? 这是MessageBox函数的标准格式之一,本人喜欢用这种格式,注意函数的 大小写 ! MessageBox不在 #includebits/stdc++.h 头文件里面,在 #includewindows.h 里面! 这是运行出来的结果: 其中,函数前

    2024年02月08日
    浏览(28)
  • HubSpot整合小红书,MessageBox助力多系统融合

    在当今数字化潮流中,HubSpot与小红书的强大联盟成为了数字化市场的亮点。今天运营坛将深入解析它们的合作策略,聚焦于MessageBox在整合中的关键角色,以及它在推动HubSpot和小红书整合方面的关键作用。 HubSpot和小红书的合作不仅是一场普通的合作,更是一个数字化市场的

    2024年01月22日
    浏览(24)
  • MessageBox:HubSpot x Facebook全方位对接!

    在当今数字化营销的浪潮中,将多个业务系统高效整合成为推动企业成功的核心。HubSpot作为一体化的市场营销平台,与Facebook的整合通过强大的工具——MessageBox,为企业提供了更灵活、高效的整合方案。今天运营坛将深入探讨在HubSpot平台上整合Facebook的详细步骤和优势,突出

    2024年01月21日
    浏览(33)
  • Element UI 的 MessageBox 弹框使用 HTML 片段生成表格

    因为 MessageBox 弹框的默认宽度是固定的,所以需要增加样式改变宽度。  

    2024年01月19日
    浏览(23)
  • WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

    一.前言 申明 :WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 本文主要内容: 自定义Window窗体样式; 基于自定义窗体实现自定义MessageBox消息

    2024年02月05日
    浏览(31)
  • vue3使用Element ui plus中MessageBox消息框+radio框配合使用

    想要达到的效果 首先安装element ui plus 省略~~ 官网地址: https://element-plus.gitee.io/zh-CN/component/message-box.html https://element-plus.gitee.io/zh-CN/component/message-box.html 需要用到的 引入

    2024年01月16日
    浏览(31)
  • Element-ui MessageBox.$alert()方法创建弹框页面跳转无法关闭

    点击取消按钮后返回上一页,但$alert()$alert()方法创建的弹框依旧会存在,或者点击浏览器回退按钮,效果一直alert弹框依旧存在,切element官网并没有提供主动关闭弹框的api方法,尝试通过$alert()中的 distinguishCancelAndClose 属性在beforeDestroy生命周期函数中触发esc按钮关闭弹框,但上面的弹

    2024年02月11日
    浏览(30)
  • Delphi 11必备指南:使用Git集成Python4Delphi的完整步骤

    在Delphi中使用Python有很多好处,可以扩展Delphi的功能并利用Python强大的科学计算和数据分析库。但是,为了将Python集成到Delphi中,我们需要安装Python for Delphi (P4D)组件套件。在这篇博客中,我将介绍如何使用Git安装P4D组件套件。 步骤1:下载并安装Git程序 Git是一个流行的版本

    2024年02月04日
    浏览(24)
  • Delphi 12必备指南:使用Git集成Python4Delphi的完整步骤

    在Delphi中使用Python有很多好处,可以扩展Delphi的功能并利用Python强大的科学计算和数据分析库。但是,为了将Python集成到Delphi中,我们需要安装Python for Delphi (P4D)组件套件。在这篇博客中,我将介绍如何使用Git安装P4D组件套件。 步骤1:下载并安装Git程序 Git是一个流行的版本

    2024年02月22日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包