[Çözüldü] Uygulamada çoklu mönitör kullanımı

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ü] Uygulamada çoklu mönitör kullanımı

Mesaj gönderen Lord_Ares »

Merhaba arkadaşlar,
Müzik kutusu adında bir proje ile uğraşmaktayım. Bilmediğim ve takıldığım bir konu hakkında sizlerin yardım ve fikirlerinize ihtiyacım var.
Bazı işletmelerde görmüşsünüzdür, 1 TL atıp istediği müzik parçasını seçerek dinledikleri bir yazılım. ( Bildiğimiz masaüstü bilgisayarın kabin içinde hizmet verdiği bir sistem) Benden istedikleri, bilgisayarın kendi mönitöründe şarkı seçip dinlerken eğer video klip seçerlerse bilgisayara bağlı ikinci bir ekranda bu videoyu oynatmak. Videoyu ayrı bir formda (Örneğin şarkılar form1 de, klipler form2 de) oynattık diyelim. Klipleri oynattığım bu formun görüntüsünü ikinci monitöre vermek istiyorum. Uygulama kısmında bu nasıl yapılabilir , yapılabilir mi ?.
En son Lord_Ares tarafından 05 May 2015 06:11 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Uygulamada çoklu mönitör kullanımı

Mesaj gönderen SimaWB »

Screen.MonitorCount monitörlerin sayısını verir.
Screen.Monitors ise monitörlerin listesini verir.

Örnek:

Kod: Tümünü seç

Form2.BoundsRect := Screen.Monitors[1].BoundsRect;
yada

Kod: Tümünü seç

Form2.Left := Screen.Monitors[1].Left;
Form2.Top := Screen.Monitors[1].Top;
There's no place like 127.0.0.1
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Uygulamada çoklu mönitör kullanımı

Mesaj gönderen Lord_Ares »

Cevap için teşekkürler, özür dileyerek tam anlayamadığımı belirtmek isterim.Form1 den form2 yi show ederken nasıl kullanmalıyım. Şu şekildemi kullanmalıyım. Biraz açıklayabilirseniz sevinirim.

Kod: Tümünü seç

  
   Application.CreateForm(TForm2,Form2);
   
   Form2.BoundsRect := Screen.Monitors[1].BoundsRect;
   
   Form2.ShowModal;
   Form2.Release;
speed60
Üye
Mesajlar: 53
Kayıt: 07 Eki 2011 08:07

Re: Uygulamada çoklu mönitör kullanımı

Mesaj gönderen speed60 »

Form2 nin Show olayına aşağıdaki kodu ekleyiver olsun bitsin.

procedure TForm2.FormShow(Sender: TObject);
var
Mon: TMonitor;
MonitorIdx: Integer;
begin
MonitorIdx := 1;
if (MonitorIdx <> Monitor.MonitorNum) and (MonitorIdx < Screen.MonitorCount) then begin

Mon := Screen.Monitors[MonitorIdx];
Left := Left + Mon.Left - Monitor.Left;
Top := Top + Mon.Top - Monitor.Top;
end;
end;

yalnız bu formu show edip işlemini bitirdiğinde kapatman gerekir çünki bu form açık olduğunda kontrol o form üzerinde olacağından diğğer formda işlem yaptırman çok zor olur
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Uygulamada çoklu mönitör kullanımı

Mesaj gönderen Lord_Ares »

Çok teşekkürler hemen deneyeceğim. Formu kapattığımda monitör 2 deyken tekrar monitör bire almam gerekiyormu.Yoksa dediniz gibi form kapanması yeterli oluyormu bu iş için :))
speed60
Üye
Mesajlar: 53
Kayıt: 07 Eki 2011 08:07

Re: Uygulamada çoklu mönitör kullanımı

Mesaj gönderen speed60 »

Form2 kapandığında kontrol yine Form1 e dönecektir.
Bay_Y
Üye
Mesajlar: 116
Kayıt: 10 Mar 2014 11:12
Konum: İstanbul

Re: [Çözüldü] Uygulamada çoklu mönitör kullanımı

Mesaj gönderen Bay_Y »

Merhaba
formu direk ikinci ekranda nasıl çalıştırabilirim ilk ekranda bişi çıkmasını istemiyorum sadece 2. ekranda uyarı versin istiyorum bunu nasıl yapabilirim. Birde çalışan uygulama ikonu görünmesin.

Teşekkürler.
speed60
Üye
Mesajlar: 53
Kayıt: 07 Eki 2011 08:07

Re: [Çözüldü] Uygulamada çoklu mönitör kullanımı

Mesaj gönderen speed60 »

if Screen.MonitorCount = 1 then
begin
Showmessage('Sistemde 2 nci Monitör Bulunamadı');
Timer1.Enabled:=False;
Timer2.Enabled:=False;
Timer3.Enabled:=False;
frmmesaj.Timer1.Enabled:=False;
frmmesaj.Timer2.Enabled:=False;
Halt;
end
else
begin

end;


ben bu şekilde yapıyorum uygulama ikonunun görünmeme olayını yapmadım çünki gerektiğinde açılan formda yer ayarlarını yapma maksatlı olarak
Bay_Y
Üye
Mesajlar: 116
Kayıt: 10 Mar 2014 11:12
Konum: İstanbul

Re: [Çözüldü] Uygulamada çoklu mönitör kullanımı

Mesaj gönderen Bay_Y »

öncelikle bilgilendirme için teşekkürler ama benim asıl sorunum

procedure TForm2.FormShow(Sender: TObject);
var
Mon: TMonitor;
MonitorIdx: Integer;
begin
MonitorIdx := 1;
if (MonitorIdx <> Monitor.MonitorNum) and (MonitorIdx < Screen.MonitorCount) then begin

Mon := Screen.Monitors[MonitorIdx];
Left := Left + Mon.Left - Monitor.Left;
Top := Top + Mon.Top - Monitor.Top;
end;


formshow olayına bu kodu eklediğimde direk ikinci ekranda açılmıyor fakat buton kodu içine yazdığımda açılıyor acaba neden ?
speed60
Üye
Mesajlar: 53
Kayıt: 07 Eki 2011 08:07

Re: [Çözüldü] Uygulamada çoklu mönitör kullanımı

Mesaj gönderen speed60 »

senin kodunlada formshow olayında bende direk ikinci ekranda açılıyor bu kodda bir sorun yok başka bir nedenden olabilir sende formshow olayında açılmamasının
Cevapla