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 bir 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 bir 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 bir 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 bir 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?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Modern Servis Uygulama İskeleti Tuğrul HELVACI 24 24.943 06-05-2026, Saat: 21:47
Son Yorum: frmman
Information Uygulama yönetici olarak mı çalışıyor? (runtime tespit etme) bakyuz 0 400 28-04-2025, Saat: 17:22
Son Yorum: bakyuz
Question Uygulama güvenliği - USB Dongle koruma ve diğerleri engerex 46 40.276 19-09-2024, Saat: 16:02
Son Yorum: cinarbil
  Askıya alınan uygulama mcuyan 9 2.920 04-03-2024, Saat: 19:58
Son Yorum: mcuyan
  Çalışan uygulama açık ise uyarı versin. Bay_Y 4 2.340 30-12-2022, Saat: 16:28
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi