Bir iki sorun ve KeyPress olayı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

Bir iki sorun ve KeyPress olayı

Mesaj gönderen futbolcu »

Arkadaşlar, hepinize merhaba,
Uzun süredir soru sormadığım için çok soru sorma hakkımı kullanmak istedim. :)

1. Memo ile richedit arasındaki fark nedir? Eğer sorun
sadece girilcek metnin boyutu ise memoya en fazla ne kadar
metin sığar? Diyelim panoda çok büyük boyutta ms-dos
biçimli metin dosyamız var. Bu dosya memo bileşeni ile
oluşturduğumuz editöre sığmaz ise yine Windows
wordpadi mi çağıracak? O zaman ms dos metinlerini işlemek için
ms-edit'ini mi çağıracağız?

2. Olarak klavyedeki tuşları tuşların KeyPress olayı ile kontrol
ederken türkçe karakterleri nasıl kontrol edebilirim?

if key=#65 then
showmessage('A tuşuna bastınız'); // Küçük büyük harfler için kolay bir yol var mı ?
if key=#65 then
showmessage('B tuşuna bastınız'); // capslock açık :) ?
ç için:
if key=#135 then
showmessage('ç tuşuna bastınız'); // neden olmuyor ?
.
.
3. Her farklı ses dosyası için yeni bir Mediaplayer bileşeni mi
kullanmam gerekir? Çok sayıda wav için form üzerinde yer bile kalmıyor?


Saygı ve selamlarımla.
Bilgi çoğaldıkça krallar ölür
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

ses çalmak için mediaplayer'a ihtiyacın yok
şu kodu kullanabilirsin:
playSound(PChar(dosyaismi),0,SND_SYNC);
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

soru hakkı diye birşey yok hocam, istediğin zaman istediğin kadar soru sorabilirsin :wink:

1. Memo ile RichEdit arasında 2 temel fark var :

* Birincisi seninde dediğin gibi Memo en fazla 64 KB yazı alabilir, RichEditte böyle bir sınır yok

* İkincisi Momoda sadece basit yazı yazabilir/görebilirsin (simple text), richedit'te ise koyu-italik, farklı renkler, maddelemeler gibi değişik yazı tipleri kullanabilirsin. Delphi Demos klasöründe bir örnek var, incelersin.

2. if Key='ç' then ... gibi kontrol edebilirsin.

3. undefined'ın dediği gibi playsound api'si işini görür. Ayrıca buna benzer durumlarda her iş için bir component koymana gerek yok. Bir Component koy, ayarlarını değiştir.

Kolay gelsin.
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

Mesaj gönderen futbolcu »

Çok teşekkür ederim.
Bilgi çoğaldıkça krallar ölür
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

Mesaj gönderen futbolcu »

merhaba,
Her ne kadar Mustafa Hocam tek bir bileşenle diğer media dosyalarını çalabileceğimizi belirtse de ben tam 38 tane (daha da var) MP bileşenini form üzerine yerleştirip aşağıdaki gibi kodlarla yazım :
if a='çocuk' then
mediaplayer1.play;
if a='çicek' then
mediaplayer2.play;
if a='çorap' then
mediaplayer3.play
......
.....
mediaplayer38.play;

Bu kodlar: D7 WinXP pro ve 512 ram- p4 2.4 olan makinede yazıldı.
Sorunsuz. Ancak win 98 128mb p3 D7 kurulu makinede
başta bellek hatası olmak üzere hatalar verdi.

Anlayabildiğim kadarıyla;
1- Tek bir bileşine duruma göre çaldırılan
38 wav bu işi hafifletir.
...
....
if a='çocuk' then
Filename := 'c:\deneme\cocuk.wav';
Type := dtauto
Open;
Play;
...
şeklinde yazdım ama olmadı.

2- Tek bir wav altında toplanmış sesleri Timer bileşeni aracılığıyla
koşullara atamak. Doğrusu bunu bilmiyorum.

Yardılarınız olursa sevinirim.
Bilgi çoğaldıkça krallar ölür
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Yukarda undefined'ın bahsettiği PlaySound apisini kullan. en temizi o. Gerçi kullanılışını yazmış ama Arama kısmından aratırsan bir kaç örnek daha vardı.

Kolay gelsin.
Cevapla