İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# Timer, ProgressBar ve Alarm Erteleme

OnurSorhan27.07.201222 cevap7.928 görüntüleme
2012'den beri808 mesaj
#1
Günaydın Merhaba Arkadaşlar ;



Şöyle Bir Program Yapıyorum Alarm Saati Geldiği Zaman
Seçilen "Mp3,waw" vb hangisiyse süresini Alıp "00:00" yazan yere Nasıl yazdırabilirim tabi buna görede Progressbar ilerleyecek
eğer ses dosyası seçili degilse otomatik alarm seçiliyse 5 dk kadar onu gösterecek bunları nasıl yapabilirim bilgisi olan birisi yardım edebilirmi
Cevaplar
2010'den beri4.409 mesaj
#2
Progressbar olayını bilmiyorum.Ancak şunu söyleyebilirim, piyasada birçok alarm programı olduğunu düşünürsek senin programının öne çıkmasını istiyorsan bence görsellik üzerine çalışmalısın.Basit görünümlü programlar ilgi çekmiyorlar.Eğer hoş bir görünüm sağlayabilirsen programına bence bir sıfır önde başlarsın bu işe.. Kolay gelsin.
2009'den beri134 mesaj
#3
ilk önce projeye sağ taraftaki listede Classa sağ tıkla ve Add Class de 'Com' nesnelerinden Windows Media Playeri bul ve ekle.. sonra aşağıdaki kodu global olarak tanımla

WMPLib.WindowsMediaPlayer oynatici = new WMPLib.WindowsMediaPlayer();

oynat butonunun içine

oynatici.URL = 'müziğin bilgisayardaki konumu string olarak';
oynatici.controls.play();
timer1.Enabled = true;

daha sonra timer nesnesi ekle içine

progressbar.Maximum = Convert.ToInt32(oynatici.currentMedia.duration);
progressbar.Value = Convert.ToInt32(oynatici.controls.currentPosition);

timerın intervalini 1000 yap

mantığı bu kendine göre geliştirebilirsin
2009'den beri134 mesaj
#4
ayriyetten label in içinide değiştirmeyi atlamışım

timerın içine şu kodu eklersin label ismi label1 aldım

label1.Text = oynatici.controls.currentPositionString;
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#5
Merhaba Arkadaşlar

Bir Alarm Programı Yapmaktayım Saat Geldiği Zaman
Mesala Ne Olsun
27.07.2012 Saat 16.25
Bu Saatte Alarm Çalmaya Başlıyor Ve 1 Dk Kadar Çalmasını Sağladım
Benim İstediğim Şey İse Alarm Saatini Textbox3. den Alıyorsa Bu
Alarm Saatini Textbox4'e 5 Dk Ekleyip Yazmasını Sağlamak İçin Ne Yapabilirim
Yanisi
Textbox3'de 16.25 se Alarm Durduğu Zaman
Textbox4'e 16:30 Yazmasını Sağlayacak Yani

Yardımlarınızı Bekliyorum Şimdiden Teşşekkürler
2009'den beri1.039 mesaj
#6
Textbox4.Text = (Mevcut Zaman değişkeni).Minutes +5;

Böyle bişey olması lazım
2011'den beri914 mesaj
#7
OnurSorhan Timer'in interval'ı var textbox'dan girilen değeri milisecond'a çevirip timer'in interval'ine vermelisin.
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#8
textBox4.Text = DateTime.Now.AddMinutes(5).ToString();

Beyle çalışdı tşkler :)
2011'den beri914 mesaj
#9
Ben alarmı 5dk uzatmak istediğini anlamışım :)
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#10
Ben Anlatamıyorumki sorunumu Doğru Düzgün :)
2012'den beri250 mesaj
#11
Yanlis.
En duz haliyle:

TextBox4.Text = DateTime.Parse(TextBox3.Text).AddMinutes(5).ToString()

Olmali.
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#12
OnurSorhan dedi: ↑
textBox4.Text = DateTime.Now.AddMinutes(5).ToString();

Beyle çalışdı tşkler :)
kizanlik dedi: ↑
Yanlis.
En duz haliyle:

TextBox4.Text = DateTime.Parse(TextBox3.Text).AddMinutes(5).ToString()

Olmali.
Evet Aynı İşlemi Yapıyor Şimdi Bakdım :)
2012'den beri250 mesaj
#13
Aynı işlemi yapmaz. Yap(A)maz.

TextBox3'e, 20 dakika geri kalmış saat bilgisi gir.
Bir seninki gibi, bir de benimki gibi yap.
Bakalım hangisi 5 dakika ekliyor?
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#14
OnurSorhan dedi: ↑
textBox4.Text = DateTime.Now.AddMinutes(5).ToString();

Beyle çalışdı tşkler :)
kizanlik dedi: ↑
Aynı işlemi yapmaz. Yap(A)maz.

TextBox3'e, 20 dakika geri kalmış saat bilgisi gir.
Bir seninki gibi, bir de benimki gibi yap.
Bakalım hangisi 5 dakika ekliyor?
Anlamadım Ben OLayı Hala :)
2009'den beri149 mesaj
#15
Dostum, senin kod şu anki zamana 5 dk. ekleyip yazar, kizanlik arkadaşın verdiği kod ise textbox3 deki zamana 5 dk. ekleyip yazar. Fark budur
2009'den beri523 mesaj
#16
Alarmı ertelemeye çalışıyor sanırım. Bu ufak bir "TimeSpan" toplama işlemi ile kolayca yapılabilir. @OnurSorhan tarihle alakalı bir işlemin olmadığı yerlerde direkt olarak time span kullan derim. Böylece işlemlerin daha kolay olur ve daha az kod yazarsın. aşağıdaki kod işini görecektir. Geliştirmek sana kalmış tabi.

[COLOR=#333333]textBox4.Text = [/COLOR]TimeSpan.Parse("16:25:00") + TimeSpan.Parse("00:05:00");
Misafir
#17
textBox3.TextChanged += (o,s) => { DateTime result; if(DateTime.TryParse(textBox3.Text, out result)) { textBox4.Text = result.AddMinutes(5).ToShortTimeString(); }  };


aradigin herhalde boyle birsey
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#18
OnurSorhan dedi: ↑
textBox4.Text = DateTime.Now.AddMinutes(5).ToString();

Beyle çalışdı tşkler :)
SDN Okuru dedi: ↑
textBox3.TextChanged += (o,s) => { DateTime result; if(DateTime.TryParse(textBox3.Text, out result)) { textBox4.Text = result.AddMinutes(5).ToShortTimeString(); }  };


aradigin herhalde boyle birsey
benim istediğim Sadece saat formatını 5 dk ileri yazması bunların hiç biri istediğim işlemi yapmadı erteleme yapdıracağım alerm'e fakat kod farklı geliyor

textBox4.Text = DateTime.Now.AddMinutes(5).ToString();
Bunda Tarihide Yazdırıyor

Sizin Verdiğiniz kodda'da

Sadece 10:59
Gibi yazıyor Benim İstediğim Format
10:59:00
Gibi :&

textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss tt");

Tam Aradğım Buydu :S

textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss tt");

Tam Aradğım Buydu :S
2009'den beri523 mesaj
#19
Bence sen yapamamışsın gibi geldi şimdi. Millete 5dk ileri almıyor hiçbiri diyorsun da kodu sen geliştireceksin. Herkes de sana yazdı işte kaç çeşit yol varsa. bunlardan birini beğenip kendi koduna göre değiştireceksin. Yapacağın sadece bu. Kodların hepsi de farklı şekilde yazılmış olsa da sonuç olarak aynı kapıya çıkıyor. Orada sadece Time işlemi yapıyorsun ve DateTime metodunu kullanıyorsun. Senin derdin bu işte. TimeSpan kullansan daha sorunsuz yazabilirdin. DateTime sınıfını Date veTime'ı aynı yerde veya sadece Date göstereceğin zaman kullanırsan istediğin sonuca daha çabuk ulaşırsın.
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#20
aslanpayi dedi: ↑
Bence sen yapamamışsın gibi geldi şimdi. Millete 5dk ileri almıyor hiçbiri diyorsun da kodu sen geliştireceksin. Herkes de sana yazdı işte kaç çeşit yol varsa. bunlardan birini beğenip kendi koduna göre değiştireceksin. Yapacağın sadece bu. Kodların hepsi de farklı şekilde yazılmış olsa da sonuç olarak aynı kapıya çıkıyor. Orada sadece Time işlemi yapıyorsun ve DateTime metodunu kullanıyorsun. Senin derdin bu işte. TimeSpan kullansan daha sorunsuz yazabilirdin. DateTime sınıfını Date veTime'ı aynı yerde veya sadece Date göstereceğin zaman kullanırsan istediğin sonuca daha çabuk ulaşırsın.
Sizi Gerçekde Anlamıoyrum İnsanları yargılamakda nesi küçümserlik ?
Hiçbiri dediğim ötekiler tarihide yazdırıyordu textbox'a benim istediğim olay sadece saat dakika saniyeyi yazdırmasıydı
öteki türlü saatin ertelemesini ayarlamamışdım beyefendi
Programım gayet güzel çalışıyor ufak tefek bilmediğim şeyler olabiliyor ben bir öğrenciyim
daha bu yaşımda birşeyler öğrenmeye çabalıyorum hiç yokdan insanları küçümsemiyorum
istediğim sonuca ulaşdım sonuçda şuan sizin derdiniz nedir :)
Size İyi Günler "
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#21
Progressbar Çalışıyor Alarm Saati Geldiği Zaman 1'dk Sayıyor ve sıfır olduğu Zaman Resetliyor
Fakat O Müzik Bilgilerini Yapadım Böyle Daha İyi
Bilgiler İçin Teşekkürler :)
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#22
Günaydın Arkadaşlar



Ekrandaki Gibi Bir Alarm Proğramı Yapmaktayım
Sorunum Şu
Alarm Saati Geldiği Zaman

 //alarm zamanı geldiyse
             if (textBox1.Text == DateTime.Now.ToShortDateString() && textBox2.Text == DateTime.Now.ToLongTimeString())
             {
                 for (int i = 0; i < 200; i++)
                 {
                     this.Left += 3;
                     this.Top += 3;
                     this.Left -= 3;
                     this.Top -= 3;
                 }
                 //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                 timer2.Enabled = true;
                 this.WindowState = FormWindowState.Normal;
                 this.Show();
                 textBox5.Text = DateTime.Now.AddMinutes(5).ToString("HH:mm:ss tt");
                 a = 59;
                 timer3.Enabled = true;
                 timer4.Enabled = true;
                 timer4.Start();
                 try //alarm sesi çalmasında olası hata için try catch denetimini ekledik
                 {
                     SoundPlayer sp = new SoundPlayer(Properties.Resources.alarm); //alarm için değer oluşturuldu
                     if (alarmcal.Checked)
                     {
                         sp.PlayLooping();
                     }
                     else
                     {
                         Pcommand = "open \"" + textBox4.Text + "\" type mpegvideo alias MediaFile";
                         mciSendString(Pcommand, null, 0, IntPtr.Zero);
                         isOpen = true;
                         Play(true);
                     }
                 }
                 catch
                 {
                     MessageBox.Show("Ses dosyasında hata oluştu");
                 }


Bunları Yaptırıyorum Göründüğü Gibi
textBox5.Text = DateTime.Now.AddMinutes(5).ToString("HH:mm:ss tt");

5 Dakika Zamanı İleri Alıyor Alarm 1 Dk Kadar Çaldıkdan Sonra Duruyor Erteleme Çalışıyor
Fakat Erteleme süresi Geldiği Zaman Alarm Çalışmıyor Yardımcı Olurmusunuz :(
OnurSorhan Konuyu açan
2012'den beri808 mesaj
#23
OnurSorhan dedi: ↑
benim istediğim Sadece saat formatını 5 dk ileri yazması bunların hiç biri istediğim işlemi yapmadı erteleme yapdıracağım alerm'e fakat kod farklı geliyor

textBox4.Text = DateTime.Now.AddMinutes(5).ToString();
Bunda Tarihide Yazdırıyor

Sizin Verdiğiniz kodda'da

Sadece 10:59
Gibi yazıyor Benim İstediğim Format
10:59:00
Gibi :&

textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss tt");

Tam Aradğım Buydu :S

textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss tt");

Tam Aradğım Buydu :S
OnurSorhan dedi: ↑
Progressbar Çalışıyor Alarm Saati Geldiği Zaman 1'dk Sayıyor ve sıfır olduğu Zaman Resetliyor
Fakat O Müzik Bilgilerini Yapadım Böyle Daha İyi
Bilgiler İçin Teşekkürler :)
LoSt61 dedi: ↑
ilk önce projeye sağ taraftaki listede Classa sağ tıkla ve Add Class de 'Com' nesnelerinden Windows Media Playeri bul ve ekle.. sonra aşağıdaki kodu global olarak tanımla

WMPLib.WindowsMediaPlayer oynatici = new WMPLib.WindowsMediaPlayer();

oynat butonunun içine

oynatici.URL = 'müziğin bilgisayardaki konumu string olarak';
oynatici.controls.play();
timer1.Enabled = true;

daha sonra timer nesnesi ekle içine

progressbar.Maximum = Convert.ToInt32(oynatici.currentMedia.duration);
progressbar.Value = Convert.ToInt32(oynatici.controls.currentPosition);

timerın intervalini 1000 yap

mantığı bu kendine göre geliştirebilirsin
OnurSorhan dedi: ↑
Günaydın Arkadaşlar



Ekrandaki Gibi Bir Alarm Proğramı Yapmaktayım
Sorunum Şu
Alarm Saati Geldiği Zaman

 //alarm zamanı geldiyse
             if (textBox1.Text == DateTime.Now.ToShortDateString() && textBox2.Text == DateTime.Now.ToLongTimeString())
             {
                 for (int i = 0; i < 200; i++)
                 {
                     this.Left += 3;
                     this.Top += 3;
                     this.Left -= 3;
                     this.Top -= 3;
                 }
                 //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                 timer2.Enabled = true;
                 this.WindowState = FormWindowState.Normal;
                 this.Show();
                 textBox5.Text = DateTime.Now.AddMinutes(5).ToString("HH:mm:ss tt");
                 a = 59;
                 timer3.Enabled = true;
                 timer4.Enabled = true;
                 timer4.Start();
                 try //alarm sesi çalmasında olası hata için try catch denetimini ekledik
                 {
                     SoundPlayer sp = new SoundPlayer(Properties.Resources.alarm); //alarm için değer oluşturuldu
                     if (alarmcal.Checked)
                     {
                         sp.PlayLooping();
                     }
                     else
                     {
                         Pcommand = "open \"" + textBox4.Text + "\" type mpegvideo alias MediaFile";
                         mciSendString(Pcommand, null, 0, IntPtr.Zero);
                         isOpen = true;
                         Play(true);
                     }
                 }
                 catch
                 {
                     MessageBox.Show("Ses dosyasında hata oluştu");
                 }


Bunları Yaptırıyorum Göründüğü Gibi
textBox5.Text = DateTime.Now.AddMinutes(5).ToString("HH:mm:ss tt");

5 Dakika Zamanı İleri Alıyor Alarm 1 Dk Kadar Çaldıkdan Sonra Duruyor Erteleme Çalışıyor
Fakat Erteleme süresi Geldiği Zaman Alarm Çalışmıyor Yardımcı Olurmusunuz :(
Sorumun Yanını Buldum Arkadaşlar Sağolun Yinede Şu Şekilde Olacak

Öncelikle alarm çalma işlemini alarmical() adlı bir sınıf oluşturup onun içine atıyoruz..
public void alarmical()
{
for (int i = 0; i < 200; i++)
{
this.Left += 3;
this.Top += 3;
this.Left -= 3;
this.Top -= 3;
}

//timer2yi aktif yap (yanıp sönmeyi sağlayacak)
timer2.Enabled = true;
this.WindowState = FormWindowState.Normal;
this.Show();
textBox5.Text = DateTime.Now.AddMinutes(1).AddSeconds(5).ToString("HH:mm:ss");
a = 59;
timer3.Enabled = true;
timer4.Enabled = true;
timer1.Enabled = true;
timer4.Start();
try //alarm sesi çalmasında olası hata için try catch denetimini ekledik
{
SoundPlayer sp = new SoundPlayer(Properties.Resources.alarm); //alarm için değer oluşturuldu
if (alarmcal.Checked)
{
sp.PlayLooping();
}
else
{
Pcommand = "open \"" + textBox4.Text + "\" type mpegvideo alias MediaFile";
mciSendString(Pcommand, null, 0, IntPtr.Zero);
isOpen = true;
Play(true);
}
}
catch
{
MessageBox.Show("Ses dosyasında hata oluştu");
}
}

Daha Sonra Timer1_Tickin içine
private void timer1_Tick_1(object sender, EventArgs e)
{
//alarm zamanı geldiyse
if (Text == "Alarm Açık")
{
if (textBox1.Text == DateTime.Now.ToShortDateString() && textBox2.Text == DateTime.Now.ToLongTimeString())
{
alarmical();
}
}
else
{
if (textBox7.Text == DateTime.Now.ToShortDateString() && textBox5.Text == DateTime.Now.ToLongTimeString())
{
alarmical();
}
}
}

yaziyoruz. Ve Son Olarak da

Timer3_Tickin içinde if kosulunun hemen altına

if (label4.Text == "00:0")
{
textBox5.Text = Convert.ToDateTime(textBox5.Text).AddMinutes(1).ToLongTimeString();//Bu kodu
ve

Form_load methodundaki
textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss tt"); // tt olan yeri hariç

textBox5.Text = DateTime.Now.AddMinutes(1).ToString("HH:mm:ss");//ötekileri olarak değiştirdiğimiz

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.