Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uygulama içi ses
#1
Merhaba arkadaşlar.

Kafama bir soru takıldı. Billdiğiniz üzere Delphide yazılan programlar Windwos da tanıtılmış sesleri olaylara göre çalıyor.

Örneğin uygulama içinde ENTER tuşuna bastığınızda Blingg diye bir ses çalıoyr (Windows da tanıtılmış ses)..

Bunu uygulama içinde komple iptal edip başka bir ses çaldırma işi ile ilgilenen oldu mu hiç yada aklına bir fikir gelen?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#2
(08-06-2020, Saat: 15:35)mcuyan Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar.

Kafama bir soru takıldı. Billdiğiniz üzere Delphide yazılan programlar Windwos da tanıtılmış sesleri olaylara göre çalıyor.

Örneğin uygulama içinde ENTER tuşuna bastığınızda Blingg diye bir ses çalıoyr (Windows da tanıtılmış ses)..

Bunu uygulama içinde komple iptal edip başka bir ses çaldırma işi ile ilgilenen oldu mu hiç yada aklına bir fikir gelen?
Selamlar
Ben genelde onpresskey eventına aşağıdaki şekilde bir kodla yapıyorum.

sndPlaySound('D:\batarya_izleme\alarm.wav', SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
Yazılımcı; kahveyi koda çeviren organizmadır.
Cevapla
#3
hocam öncelikle cevap için teşekkürler.

boş forma bi edit yerleştirin, onkeypress olayına


 if key=#13  then

 playsound('C:\windows\media\tada.wav',0,SND_ASYNC );


yazdığınızda hem beep sesi hemde sizin kodda belirttiğiniz "tada" sesi geliyor. Ben beep sesinin hiç çıkmasını istemiyorum.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
(08-06-2020, Saat: 16:00)mcuyan Adlı Kullanıcıdan Alıntı: hocam öncelikle cevap için teşekkürler.

boş forma bi edit yerleştirin, onkeypress olayına


 if key=#13  then

 playsound('C:\windows\media\tada.wav',0,SND_ASYNC );


yazdığınızda hem beep sesi hemde sizin kodda belirttiğiniz "tada" sesi geliyor. Ben beep sesinin hiç çıkmasını istemiyorum.

o halde kodu lütfen şu şekilde düzenleyin. Sorun olmadığını göreceksiniz.
SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDWININICHANGE);
if key=#13 then
playsound('C:\windows\media\tada.wav',0,SND_ASYNC );

aşağıdaki kodlarla enable ve disable edebilirsiniz.
//Disable system beep
SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDWININICHANGE);

//Enable system beep
SystemParametersInfo(SPI_SETBEEP, 1, nil, SPIF_SENDWININICHANGE);
Yazılımcı; kahveyi koda çeviren organizmadır.
Cevapla
#5
Walla ne kadar teşekkür etsem azdır tam olarak istediğim buydu hocam.

Fakat 1 kere sesi kapatınca tüm formlarda hatta sistemi kapatı açınca da komple kesiliyor. sanırım direk windowsun sesini kapatıyor? doğru mu anlamışım.. sadece o oturum için yapılan bir olay değil tüm zamanları etkliyor?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
(08-06-2020, Saat: 21:09)mcuyan Adlı Kullanıcıdan Alıntı: Walla ne kadar teşekkür etsem azdır tam olarak istediğim buydu hocam.

Fakat 1 kere sesi kapatınca tüm formlarda hatta sistemi kapatı açınca da komple kesiliyor. sanırım direk windowsun sesini kapatıyor? doğru mu anlamışım.. sadece o oturum için yapılan bir olay değil tüm zamanları etkliyor?

Sanırım öyle. Bu sebeple, formun kapanışından öncei tekrar enable yapmanız uygun olacaktır.
Yazılımcı; kahveyi koda çeviren organizmadır.
Cevapla
#7
malesef sıkıntı oldu. Fakat aşağıdaki kod ile çözdüm olayı. aslında VK_Return da bitti iş Smile


 if (Key = #13)  then
 begin
   Key := #0;
   Perform(CM_DIALOGKEY, VK_RETURN, 0);
   Button3.Click;
 end;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#8
(08-06-2020, Saat: 21:39)mcuyan Adlı Kullanıcıdan Alıntı: malesef sıkıntı oldu. Fakat aşağıdaki kod ile çözdüm olayı. aslında VK_Return da bitti iş Smile


 if (Key = #13)  then
 begin
   Key := #0;
   Perform(CM_DIALOGKEY, VK_RETURN, 0);
   Button3.Click;
 end;

Geçmiş olsun o halde.
Yazılımcı; kahveyi koda çeviren organizmadır.
Cevapla
#9
Merhabalar ses konusu ile ilgili yeni konu açmamak için buraya yazıyorum. yanlış olmamıştır İnşallah.

Delphi 10 Seattle FMX uygulamasında  MessageDlg (ve eskiden Application.MessageBox) kullanıyordum fakat OK, Cancel, Yes, No düğmeleri Windows'ta Türkçe çıkmadığı için kendi function'mı yazdım. İçinde de ses çıkarması için "System.SysUtils.Beep;" ekledim. Fakat artık birkaç defa mesaj çağrıldıktan sonra hafızada Windows Audio Device Graph Isolation sürekli büyümeye başlıyor. Birkaç saat sonra yüzlerce MB oluyor. MessageDlg kullanırken böyle değildi. İleride uygulamayı dağıtınca hafıza miktarı düşük bilgisayarlarda problem olmasından endişeleniyorum. İleriki sürümlerde böyle bir problem var mı? veya alternatif tavsiye edebilir misiniz?
saygılar mustafa ֍zgün 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulama içinde FB DB bakımı mcuyan 3 726 14-08-2020, Saat: 20:11
Son Yorum: mcuyan
  kısayol mu? uygulama mı? info@guzelceker.com 4 1.132 02-06-2020, Saat: 20:37
Son Yorum: mrmarman
  [ÇÖZÜLDÜ] Windows Service içerisinden başka uygulama çalışmasını kontrol etme theSinan 2 1.605 08-06-2019, Saat: 12:17
Son Yorum: elixir84
  Modern Servis Uygulama İskeleti Tuğrul HELVACI 20 9.934 13-02-2019, Saat: 11:00
Son Yorum: ssahinoglu
  Uygulama derlenirken exe açık uyarısı hk yhackup 6 4.460 24-05-2018, Saat: 17:41
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi