[Çözüldü]Forumda olmayan bileşenin eventslarına ulaşmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

[Çözüldü]Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen Lord_Ares »

Merhaba arkadaşlar, TLB dosyasından media player create ederek kullanıyorum. Full ekran oynatırken mouse çift tıklanırsa video duruyor aynı şekilde mouse scroolu kullanılarak sesi kısıp yükseltebiliyor. Bunu engellemek adına, eventslarında, eğer çift tıklanırsa playerı durdurma demek istiyorum. Fakat forumda olmayan bir nesne olduğu için eventsa nasıl ulaşacağımı bilmiyorum. Bunu bana gösterir misiniz. Veya ne yapmalıyım.
Teşekkürler.
En son Lord_Ares tarafından 10 Mar 2016 12:24 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
kimimben
Üye
Mesajlar: 129
Kayıt: 28 Oca 2016 04:41
Konum: İstanbul

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen kimimben »

Lord_Ares yazdı:Fakat forumda olmayan bir nesne olduğu için eventsa nasıl ulaşacağımı bilmiyorum. Bunu bana gösterir misiniz. Veya ne yapmalıyım.
Teşekkürler.
Sayın @Lord_Ares

delphi oops concepts
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen Lord_Ares »

Cevap için teşekkürler. Anladığım kadarıyla çözüm ek prosedür oluşturup ilgili eventsa (örneğin ondbclik gibi..)eşitlemek. Sanırım bu şekilde sorunu çözebileceğim.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen Lord_Ares »

media playerda video izlerken double click yapılmasını engellemek için media playerın ondoubleclick eventsını kendi prosedürüme eşitledim ama olmadı.

Kod: Tümünü seç

//// yönlendiğini anlamak için aşağıdaki şekilde prosedür oluşturdum
procedure TForm_Video.KPlayerciftclik(ASender: TObject; NBUTTON:SmallInt; nShiftstate:SmallInt; Fx:integer; Fy:integer);

begin
  if NBUTTON=MOUSEEVENTF_LEFTDOWN then ShowMessage('sağ tuşa basma');
  if NBUTTON=MOUSEEVENTF_RIGHTDOWN then ShowMessage('sol tuşa basma');
end;

Oluşturduğum bu prosedürle, media playerı create ederken aşağıdaki şekilde yönlendirdim.

Kod: Tümünü seç

  kMediaPlayer          			  := TWindowsMediaPlayer.Create(nil);
  kMediaPlayer.Parent 		       := Panel1;
  kMediaPlayer.ParentWindow        := Panel1.Handle;
  kMediaPlayer.OnPlayStateChange   := Form_Video.kPlayerPlayStateChange;
  KMediaPlayer.OnDoubleClick        := Form_Video.KPlayerciftclik;  //// bu şekilde kullandım
 
Sonuç tam ekran video oynatılırken video üzerinde sağ mouse tuşu ile tıklarsam mesajı veriyor. Fakat sol mouse tuşu ile tıklarsam hiç birşey olmuyor.:D
Tam ekran Video oynatılırken mouse kullanmasını veya double click ile durdurmasını nasıl engellerim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen Lord_Ares »

Çözümü hala bulmuş değilim işin içinden çıkamadım. Fikri olan varsa paylaşırsa sevinirim.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen SimaWB »

Gidiş yolunuz doğru ama hem sağ tıklama hem de sol tıklamayı kontrol etmek istiyorsanız OnDoubleClick'i kullanmayın. OnClick, OnMouseDown yada OnMouseUp'ı deneyin
There's no place like 127.0.0.1
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Forumda olmayan bileşenin eventslarına ulaşmak

Mesaj gönderen Lord_Ares »

SimaWB cevap için teşekkürler. Şöyle küçük bir hile yaparak çözüme ulaştım. Önceden mediaplayerı form üstüne oluşturuyordum. Forma bir panel ekleyip mediaplayerı onun üstüne oluşturdum. Formun onshowunda da panel1.enablad=false yaptım. Böylece sorun ortadan kalktı.
Tekrardan herkese teşekkürler.
Cevapla