delphi – MessageDlg不发出声音

delphi – MessageDlg不发出声音,第1张

概述我有以下代码: IF MessageDlg('Delete?',mtConfirmation,[mbYes,mbNo],0) = MrYes THENBegin///Do Something;EndElseBegin///Do Something;End; 当Style为Windows时,MessageDlg函数播放声音,但如果我将样式更改为Windows 10,则声音不起作用. > 我有以下代码:

IF MessageDlg('Delete?',mtConfirmation,[mbYes,mbNo],0) = MrYes THENBegin///Do Something;EndElseBegin///Do Something;End;

当Style为windows时,MessageDlg函数播放声音,但如果我将样式更改为windows 10,则声音不起作用.

>为什么选择伴奏时声音不存在?
>我该如何解决这个问题?

注意:我正在使用Delphi 10 Seattle.

更新:

我尝试MessageBeep(MB_ICONQUESTION);正如David Heffernan在他的答案中建议的那样,但那也不会发出声音.

解决方法 为了补充DavID的答案,根据您的windows版本,当前活动样式和其他检查MessageDlg函数是使用Custom TForm或使用TTaskDialog类(这是 Windows Task Dialog的包装器)实现的.因此,作为解决方法,您可以直接使用TTaskDialog类,并将 Vcl.Styles.Hooks单元添加到项目中以设置这种对话框的样式.

uses  Vcl.Styles.Hooks;procedure TForm56.button1Click(Sender: TObject);var LTaskDialog : TTaskDialog;begin  LTaskDialog := TTaskDialog.Create(Self);  try    LTaskDialog.Caption := 'Confirm';    LTaskDialog.Text := 'Delete ?';    LTaskDialog.Commonbuttons := [tcbYes,tcbNo];    LTaskDialog.MainIcon := tdiinformation;    if LTaskDialog.Execute then      if LTaskDialog.ModalResult = mrYes then      begin      end;  finally    LTaskDialog.Free;  end;
总结

以上是内存溢出为你收集整理的delphi – MessageDlg不发出声音全部内容,希望文章能够帮你解决delphi – MessageDlg不发出声音所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1265386.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存