大佬教程收集整理的这篇文章主要介绍了delphi – 如何使MessageDlg以所有者形式为中心,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在下面找到了这个代码:http://delphi.about.com/od/formsdialogs/l/aa010304a.htm,但对我来说并不行.弹出窗口仍然不是以所有者形式为中心. (对我来说,方法实际上不知道所有者的形式是不清楚的)
function TForm1.messageDlg(const Msg: String; DlgType: tmsgDlgType; Buttons: tmsgDlgButtons; HelpCtx: Integer): Integer; begin with CreatemessageDialog(Msg,DlgType,Buttons) do try Position := poownerFormCenter; Result := ShowModal finally Free end end;
function messageDlg(const Aowner: TForm; const Msg: String; DlgType: tmsgDlgType; Buttons: tmsgDlgButtons; HelpCtx: Integer = 0): Integer; begin with CreatemessageDialog(Msg,Buttons) do try Left := Aowner.Left + (Aowner.Width - Width) div 2; Top := Aowner.Top + (Aowner.Height - Height) div 2; Result := ShowModal; finally Free; end end;
并称之为
procedure TForm1.FormClick(Sender: TObject); begin messageDlg(Self,'This is a test',mTinformation,[mbOK]); end;
但是,我个人不会这样做,因为CreatemessageDialog所显示的对话框不是本地Windows对话框.将视觉效果与原始内容进行比较:
procedure TForm1.FormClick(Sender: TObject); begin case messageBox(Handle,PChar('This is a test. Do you wish to do something?'),PChar('A Silly Example'),MB_ICONQUESTION or MB_YEsno) of ID_YES: messageBox(Handle,PChar('Great!'),MB_ICONINFORMATION or MB_OK); ID_NO: messageBox(Handle,PChar('OK,well,I cAnnot force you...'),MB_ICONINFORMATION or MB_OK); end; end;
至少在启用Aero主题的Windows 7中,本机对话框看起来好多了.然而,似乎这不能集中在任何特定的形式上.相反,对话框以当前显示器为中心.但这也是Windows中的默认行为(尝试记事本,写字板或油漆),那么为什么需要这种新行为?
以上是大佬教程为你收集整理的delphi – 如何使MessageDlg以所有者形式为中心全部内容,希望文章能够帮你解决delphi – 如何使MessageDlg以所有者形式为中心所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。