Merhaba Arkadaşlar,
Herhangi bir video bileşeni üzerinde Label, Image, Shape gibi nesneleri görüntüleyemiyorum.
Örnek olarak video üzerinde bir altyazı çalışması düşünülebilir. Label'in transparent özelliğide açık olarak kullanıldığını düşünelim.
Bu gibi durumlarda önceliğini değiştirmeme rağmen video bileşeni her defasında en üstte kalmaya devam ediyor.
Bu konuda nasıl bir çözüm önerirsiniz.
Nesne Görünüm Önceliği
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Nesne Görünüm Önceliği
Merhaba.
- TLabel'in aynı özelliklerine sahip TStaticText ile ön planda gösterir hale getirebilirsiniz. Ama bu sefer de video için transparan özelliğini kaybedecektir.
- Bir görüntü; panel / form üzerinde canvas boyama ile gösteriliyorsa bir label onun üzerine gelebilirdi. Ancak Video gösteren altyapıda Video overlay denen bir yapı kullanılır. Akıcı video / performans için gereklidir. Form veya Panel'in buradaki görevi, ekranda bir yer rezerve etmektir. Ön planda TWinControl benzeri örtücü bir nesne yoksa, video bu ayrılan alana bindirilirken label , paintbox vs. görünmez olurlar çünkü bir boyama hükümsüz kalır. Aslında boyama olur ama hemencecik o boyama üzerine yeni video overlay onu siler.
- Bunun için direkt Video Overlay üzerine direkt yazılabilir. DSPack ücretsiz bir bileşen setidir. Tavsiye ederim. Ben bu söylediğiniz işlemler için ihtiyacım olduğunda tek adresim DSPack olmuştur. Video üzerine transparan yazının yanı sıra animasyonlu logo bile bindirmek mümkün.
- TLabel'in aynı özelliklerine sahip TStaticText ile ön planda gösterir hale getirebilirsiniz. Ama bu sefer de video için transparan özelliğini kaybedecektir.
- Bir görüntü; panel / form üzerinde canvas boyama ile gösteriliyorsa bir label onun üzerine gelebilirdi. Ancak Video gösteren altyapıda Video overlay denen bir yapı kullanılır. Akıcı video / performans için gereklidir. Form veya Panel'in buradaki görevi, ekranda bir yer rezerve etmektir. Ön planda TWinControl benzeri örtücü bir nesne yoksa, video bu ayrılan alana bindirilirken label , paintbox vs. görünmez olurlar çünkü bir boyama hükümsüz kalır. Aslında boyama olur ama hemencecik o boyama üzerine yeni video overlay onu siler.
- Bunun için direkt Video Overlay üzerine direkt yazılabilir. DSPack ücretsiz bir bileşen setidir. Tavsiye ederim. Ben bu söylediğiniz işlemler için ihtiyacım olduğunda tek adresim DSPack olmuştur. Video üzerine transparan yazının yanı sıra animasyonlu logo bile bindirmek mümkün.
Re: Nesne Görünüm Önceliği
Şöyle bir deneme yapabilirsiniz.
Forma bir button, TMediaPlayer, TPanel ile Panel üzerine bir TPaintBox ve bir de TTimer koyun.
Timer'in intervalini 1-100 arası bir değer verin. Aşağıdaki kodu uygulayın. Ekranda flicker yaparak sarı bir çerçeve çizdiğini göreceksiniz. Bu çerçevenin sürekliliği video kare sayısı kadar kere yeniden boyama olduğundan sağlanamaycaktır.
Forma bir button, TMediaPlayer, TPanel ile Panel üzerine bir TPaintBox ve bir de TTimer koyun.
Timer'in intervalini 1-100 arası bir değer verin. Aşağıdaki kodu uygulayın. Ekranda flicker yaparak sarı bir çerçeve çizdiğini göreceksiniz. Bu çerçevenin sürekliliği video kare sayısı kadar kere yeniden boyama olduğundan sağlanamaycaktır.
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
MediaPlayer1.FileName := 'd:\VideoDosyasi.avi';
MediaPlayer1.ParentWindow := Panel1.Handle;
MediaPlayer1.DeviceType := dtAVIVideo;
MediaPlayer1.Open;
MediaPlayer1.Display := Panel1;
MediaPlayer1.Play;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
PaintBox1.Canvas.Brush.Style := bsClear;
PaintBox1.Canvas.Pen.Style := psSolid;
PaintBox1.Canvas.Pen.Color := clYellow;
PaintBox1.Canvas.Pen.Width := 2;
PaintBox1.Canvas.Rectangle( 10,10,100,100 );
end;