Jak pozbyć się dźwięku MessageBoxa

0

Normalnie, przy wyświetlaniu MessageBoxa odtwarza się systemowy dźwięk, ale ja chciałbym się go pozbyć.
Jak to zrobić?

0

Użyj waveOutSetVolume żeby ściszyć dźwięk ;-)

0

Albo: MessageDlg

0

WaveOutSetVolume - owszem, ścisza dźwięk, ale nie ten MessageBoxa.
Ściszyłem, a teraz nie umiem przywrócić tego tak jak było :P
Mam dźwięk tylko na lewym kanale.
Co wpisać, żeby było tak jak wcześniej?

MessageDlg działa OK.

0

nie wiem czy pomoge, pisze z glowy... bylo jezcze cos takiego jak MessageBoxEx...

0

Sprawdziłem i MessageBoxEx także genetuje dzwięk tak jak MessageBox. Dlatego rozwiązaniem jest
właśnie użycie MessageDlg. Jeżeli trzeba zmienić tytuł okna, etykiety przycisków czy zablokować "X"
do zamykania można użyć funkcji CreateMessageDialog - poniżej przykład (sorry że znów kod daję :P)

var
  Dlg : TForm;
begin
  Dlg := CreateMessageDialog('Czy na pewno chcesz zamknąć program?',
         mtConfirmation, [mbYes, mbNo]);
  Dlg.Caption := Application.Title;
  Dlg.BorderIcons := [];
  Dlg.ActiveControl := TButton(Dlg.FindComponent('Yes'));
  TButton(Dlg.FindComponent('Yes')).Caption := 'Tak';
  TButton(Dlg.FindComponent('No')).Caption := 'Nie';
  Dlg.ShowModal;
case Dlg.ModalResult of
  mrYes : begin
     Caption := 'Tak';
     end;
  mrNo : begin
     Caption := 'NIE';
    end;
end;
// ......
end;
0

Dzięki, zastosowałem MessageDlg, tylko że zamiast Tak/Nie jest Yes/No no ale trudno.

Jak naprawić ten ściszony dźwięk?

0

A czytałeś uważnie mój post? Możesz poprzez Dlg := CreateMessageDlg.... zmeinić później etykiety
dla przycisków, ewentualnie można przetłumaczyć źródła pliku consts.pas i wrzucić do katalogu Lib.

  TButton(Dlg.FindComponent('Yes')).Caption := 'Tak';
  TButton(Dlg.FindComponent('No')).Caption := 'Nie';

1 użytkowników online, w tym zalogowanych: 0, gości: 1