Cevaplar
-
Slm bunun icin bir suru timer kullanmana gerek yok.
1 tane timer yeterli.
public degiken ve timer tanimlarsin.
public Datetime alarmsaati ;
public Timer timer1;
uygulama load oldugunda ya da alarmi kur buttonuna bastiginda ;
alarmsaati = Convert.ToDatetime(textbox1.text+textbox2.Text) olarak alarm saatini ayarlarsin .
timerin tick olayinda // ki burada sureci kacirabilirsin.milisaniyeler ile o nedenle asagidaki gibi yapmalisin.
if (alarmsaati.Date==DateTime.Now.Date&& alarmsaat.TimeofDay.Hour=DateTime.Now.TimeofDay.Hour&&alarmsaat.TimeofDay.Minute=DateTime.Now.TimeofDay.Minute)
{
timer1.enabled=false;
if (MessageBox.Show(textBox3.Text, "ALARM ! ! ", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
evet demis normal islemleri yaptirirsin.
}
else
{
burasi da istedigin yer.
// asagidaki 5 dakika erteler
alarmsaati.TimeofDay.Minute=alarmsaati.AddMinutes(5);
timer1.Enabled=true; ile alarmi yeniden ayarlarsin.
}-
seeyou
hocam öncelikle teşekkür ederim ilginiz için anladıgım kadarıyla timer 4 tane kullandım 5. timer iptal ettim ve normal alarm saati geldiğinde devreye girmesi gereken timerin altına sizin söylediğiniz 5 dk erteleme kodunu yazdım ama alarm saati name hatası alıyorum nasıl düzeltebilirim11 yıl önce yazılmış -
Supervisor
aldigin hatayi tam yazarsan yardimci olurum. muhtemelen , alarmsaati degiskenini scope icinde tanimladin . global olmali11 yıl önce yazılmış -
seeyou
Error 1 The name 'textbox1' does not exist in the current context c:\documents and settings\ozkan\belgelerim\visual studio 2010\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Form1.cs 90 19 CalarSaat11 yıl önce yazılmış -
Supervisor
biraz dikkatli olup,kopyala yapistir , ezbere yapmamaya gayret ederseniz kendiniz icin faydali olur. Aldigin mesaj da textbox1 i bulamamis. Formunda nasil adlandirmissan ki muhtemelen degistirmemissin textBox1 seklinde yazarsan halletmis olursun11 yıl önce yazılmış -
seeyou
onlarıda denedim hocam oda hata veriyor kopyala yapıştır usulü yapmıyorum bu arada
Error 1 'System.Windows.Forms.TextBox' does not contain a definition for 'TimeofDay' and no extension method 'TimeofDay' accepting a first argument of type 'System.Windows.Forms.TextBox' could be found (are you missing a using directive or an assembly reference?) c:\documents and settings\ozkan\belgelerim\visual studio 2010\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Form1.cs 90 28 CalarSaat11 yıl önce yazılmış -
Supervisor
form1.cs yi komple yazssana11 yıl önce yazılmış -
seeyou
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
namespace WindowsFormsApplication4
{
public partial class ÇalarSaat : Form
{
public ÇalarSaat()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer3.Enabled = true;
this.Text = "Alarm Açık";
}
private void button2_Click(object sender, EventArgs e)
{
timer2.Enabled = false;
timer1.Enabled = false;
this.Text = "Alarm Kapalı";
SoundPlayer player = new SoundPlayer();
string path = ".\\horoz.wav";
player.SoundLocation = path;
player.Stop();
this.Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
label3.Text = DateTime.Now.ToLongTimeString();
}
private void timer2_Tick(object sender, EventArgs e)
{
label4.Text = DateTime.Now.ToLongDateString();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = DateTime.Now.ToShortDateString();
textBox2.Text = DateTime.Now.ToLongTimeString();
timer4.Enabled = false;
timer3.Enabled = false;
timer4.Interval = 100;
timer3.Interval = 1000;
Text = "Alarm Kapalı";
}
private void timer3_Tick(object sender, EventArgs e)
{
if (textBox1.Text == DateTime.Now.ToShortDateString() && textBox2.Text == DateTime.Now.ToLongTimeString())
{
timer4.Enabled = true;
SoundPlayer player = new SoundPlayer();
string path = ".\\horoz.wav";
player.SoundLocation = path;
player.PlayLooping();
if (MessageBox.Show(textBox3.Text, "ALARM ! ! ", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
MessageBox.Show("GÜNAYDIN :) 'Alarm Kapatılıyor..'");
timer3.Enabled = false;
timer4.Enabled = false;
this.Text = "Alarm Kapalı";
player.SoundLocation = path;
player.Stop();
}
else
{
textBox1.TimeofDay.Minute=textBox2.AddMinutes(5);
timer3.Enabled=true;
}
}
}
private void timer4_Tick(object sender, EventArgs e)
{
Color c;
c = textBox3.BackColor;
textBox3.BackColor = textBox3.ForeColor;
textBox3.ForeColor = c;
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void timer5_Tick(object sender, EventArgs e)
{
}
}
}11 yıl önce yazılmış -
Supervisor
bu sekilde olmasi gerekir. iki kodu inceleyip nerede hata yaptigini farketmis olmani umarim .
public partial class ÇalarSaat : Form
{
public ÇalarSaat()
{
InitializeComponent();
}
DateTime alarmsaati;
private void button1_Click(object sender, EventArgs e)
{
alarmsaati = Convert.ToDateTime(textBox1.Text+" " + textBox2.Text);
timer3.Enabled = true;
this.Text = "Alarm Açık";
}
private void button2_Click(object sender, EventArgs e)
{
timer2.Enabled = false;
timer1.Enabled = false;
this.Text = "Alarm Kapalı";
SoundPlayer player = new SoundPlayer();
string path = ".\\horoz.wav";
player.SoundLocation = path;
player.Stop();
this.Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
label3.Text = DateTime.Now.ToLongTimeString();
}
private void timer2_Tick(object sender, EventArgs e)
{
label4.Text = DateTime.Now.ToLongDateString();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = DateTime.Now.ToShortDateString();
textBox2.Text = DateTime.Now.ToShortTimeString();
timer4.Enabled = false;
timer3.Enabled = false;
timer4.Interval = 100;
timer3.Interval = 1000;
Text = "Alarm Kapalı";
}
private void timer3_Tick(object sender, EventArgs e)
{
if (alarmsaati.Date==DateTime.Now.Date&& alarmsaati.TimeOfDay.Hours==DateTime.Now.TimeOfDay.Hours&&alarmsaati.TimeOfDay.Minutes==DateTime.Now.TimeOfDay.Minutes)
{
timer4.Enabled = true;
if (MessageBox.Show(textBox3.Text, "ALARM ! ! ", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
MessageBox.Show("GÜNAYDIN :) 'Alarm Kapatılıyor..'");
timer3.Enabled = false;
timer4.Enabled = false;
this.Text = "Alarm Kapalı";
}
else
{
alarmsaati = alarmsaati.AddMinutes(1);
timer3.Enabled = true;
}
}
}
private void timer4_Tick(object sender, EventArgs e)
{
Color c;
c = textBox3.BackColor;
textBox3.BackColor = textBox3.ForeColor;
textBox3.ForeColor = c;
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void timer5_Tick(object sender, EventArgs e)
{
}
}11 yıl önce yazılmış -
seeyou
hocam amacıma yine ulaşamadım erteleme yaptıktan sonra tekrar uyanıp uyanmadıgını sormuyo yani mesaj kutusu açılmıyo süre eklemeden sonra sürekli çalıyo alarm ?11 yıl önce yazılmış -
Supervisor
Soundplayer i da alarmsaatinin altinda globale tanimla. erteleme alanina girdiginde
soundplayer.stop() de11 yıl önce yazılmış -
seeyou
yok hocam maksat müziği durdurmak değil tekrar bi mesaj penceresi gelicek soracak işte uyandınmı evet basında zaten kapanacak o kod tamam sorun mesaj penceresinin açılmaması.yani 5 saniye ertelemiyo sınırsız erteliyor hiç pencere gelmiyo11 yıl önce yazılmış -
Supervisor
alarmsaati=alarmsaati.Addminutes(1) satirini
alarmsaati.Addminutes(1) olarak degistir bir de11 yıl önce yazılmış -
seeyou
malesef hocam oda olmadı :((11 yıl önce yazılmış
-