User Tag List
C# tuş basılana kadar döngü
Programlama forumunda C# tuş basılana kadar döngü konusunu incelemektesiniz.
Merhaba arkadaşlar c# ta bir program ile ilgili yardım istiyorum sizlerden. Şimdiden çok teşekkürler. Program bir animasyon ile açılmakta ve daha sonra menüye geçmekte. Animasyon kısmında (henüz taslak) bir tuşa ...
-
04-02-2012 21:19 #1
C# tuş basılana kadar döngü
Merhaba arkadaşlar c# ta bir program ile ilgili yardım istiyorum sizlerden. Şimdiden çok teşekkürler.
Program bir animasyon ile açılmakta ve daha sonra menüye geçmekte. Animasyon kısmında (henüz taslak) bir tuşa basılana kadar animasyona devam etmesini istiyorum. Bu programda "Enter" tuşu olarak belirledim fakat do-while yapısında bu programda şartı nasıl belirleyeceğimi çözemedim. Altta kodlarını verdiğim şekilde olursa kodların altındaki animasyondan göreceğiniz üzere bir tuşa basmamı bekliyor program fakat bu sırada animasyon duruyor. Benim istediğim üsttede belirttiğim üzere animasyonla eş zamanlı tuşa basmayıda kontrol ettirmek bu sayede animasyon devam ederken(durmadan-sonsuz döngüde) belirli bir tuşa misal burda olduğu üzere "Enter" a bastığım an animasyonun durması ve asıl menüye geçmesi.
Bir de menüyü "If" şartıyla yaptım fakat Switch case ile nasıl olur o konudada yardımcı olursanız sevinirim.
Teşekkürler.
KOD:
PROGRAM ÇIKTISI:PHP- Kodu:static void Main(string[] args)
{
char[] rakam={'1','2','3','4'};
char t;
ConsoleKey ef;
// Menü Efekti
do
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Demoyu Bitirmek için 'ENTER' a basın.");
Console.ForegroundColor = ConsoleColor.Blue;
for (int i = 1; i < 11; i++)
{
System.Threading.Thread.Sleep(100);
Console.SetCursorPosition(i, i);
Console.WriteLine("1");
Console.SetCursorPosition(10 - i, i);
Console.WriteLine("1");
}
ef = Console.ReadKey().Key;
if (ef != System.ConsoleKey.Enter) Console.Clear();
} while (ef != System.ConsoleKey.Enter);
// MENÜ
do
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Seçiminizi yapın:");
Console.WriteLine("[1] Demo1");
Console.WriteLine("[2] Demo2");
Console.WriteLine("[3] Demo3");
Console.WriteLine("[4] Çıkış");
Console.SetCursorPosition(0, 0);
t = Console.ReadKey().KeyChar;
Console.ForegroundColor = ConsoleColor.Yellow;
if (t == rakam[0])
{
Console.Clear();
Console.WriteLine("1. demoya hoşgeldiniz");
Console.ReadKey();
}
else if (t == rakam[1])
{
Console.Clear();
Console.WriteLine("2. demoya hoşgeldiniz");
Console.ReadKey();
}
else if (t == rakam[2])
{
Console.Clear();
Console.WriteLine("3. demoya hoşgeldiniz");
Console.ReadKey();
}
else if (t == '4')
{
Console.ForegroundColor = ConsoleColor.Magenta;
Console.Clear();
Console.WriteLine("Çıkış Yapılıyor.");
System.Threading.Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Çıkış Yapılıyor..");
System.Threading.Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Çıkış Yapılıyor...");
System.Threading.Thread.Sleep(500);
Console.Clear();
}
else
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("Yanlış bir tuşa bastın, tekrar dene!");
System.Threading.Thread.Sleep(1000);
}
Console.Clear();
} while (t!='4');
}
Konu hasbi_muharip tarafından (04-02-2012 Saat 21:31 ) değiştirilmiştir.
-
07-02-2012 12:50 #2
- Üyelik tarihi
- Feb 2012
- Mesajlar
- 14
teşekkürler...
-
11-02-2012 10:42 #3
-
14-02-2012 00:56 #4
Bir de böyle dene bakalım: (ikinci kısmı biraz araştırman lazım)
Kod:static void Main(string[] args) { int[] rakam = { '1', '2', '3', '4'}; char t; Console.TreatControlCAsInput = true; // Menü Efekti do { while (!Console.KeyAvailable) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Demoyu Bitirmek için 'ENTER' a basın."); Console.ForegroundColor = ConsoleColor.Blue; for (int i = 1; i < 11; i++) { System.Threading.Thread.Sleep(100); Console.SetCursorPosition(i, i); Console.WriteLine("1"); Console.SetCursorPosition(10 - i, i); Console.WriteLine("1"); } Console.Clear(); } } while (Console.ReadKey(true).Key != ConsoleKey.Enter); // MENÜ do { Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Seçiminizi yapın:"); Console.WriteLine("[1] Demo1"); Console.WriteLine("[2] Demo2"); Console.WriteLine("[3] Demo3"); Console.WriteLine("[4] Çıkış"); Console.SetCursorPosition(0, 0); t = Console.ReadKey().KeyChar; Console.ForegroundColor = ConsoleColor.Yellow; if (t == rakam[0]) { Console.Clear(); Console.WriteLine("1. demoya hoşgeldiniz"); Console.ReadKey(); } else if (t == rakam[1]) { Console.Clear(); Console.WriteLine("2. demoya hoşgeldiniz"); Console.ReadKey(); } else if (t == rakam[2]) { Console.Clear(); Console.WriteLine("3. demoya hoşgeldiniz"); Console.ReadKey(); } else if (t == '4') { Console.ForegroundColor = ConsoleColor.Magenta; Console.Clear(); Console.WriteLine("Çıkış Yapılıyor."); System.Threading.Thread.Sleep(500); Console.Clear(); Console.WriteLine("Çıkış Yapılıyor.."); System.Threading.Thread.Sleep(500); Console.Clear(); Console.WriteLine("Çıkış Yapılıyor..."); System.Threading.Thread.Sleep(500); Console.Clear(); } else { Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.Write("Yanlış bir tuşa bastın, tekrar dene!"); System.Threading.Thread.Sleep(1000); } Console.Clear(); } while (t != '4'); }
-
15-02-2012 18:51 #5
@aslanpayi hocam çok çok teşekkürler başkaları ilgilenmedi ya da görmedi. Elleriniz dert görmesin
-
15-02-2012 21:56 #6
-
15-02-2012 22:06 #7
Aynen hocam bunu istiyordum normalde uğraştığımda animasyonun döngüsünün devam etmesi için bir tuşa basılmasını bekliyordu(readkey)
Sizin verdiğiniz kod sayesinde animasyon devam ederken aynı anda bir tuşa basılmasını da kontrol edebiliyorum
Console.TreatControlCAsInput = true;
Bütün olay bu kodda mı bitiyor hocam? yoksa do-while döngüsü içerisine bir tane de while eklediğiniz için mi?
-
16-02-2012 20:35 #8
İçteki
klavyeyi sonsuza kadar dinler. Tuşa basılmadığı sürece döner durur. Ne zaman ki bir tuşa basarsın o zaman döngüden çıkar. Ve dıştakiKod:while (!Console.KeyAvailable)
çalışır. Buradaki sonsuz döngü de basılan tuşun enter olup olmadığını sorgular ve değilse seni yine içteki döngüye havale eder.Kod:while (Console.ReadKey(true).Key != ConsoleKey.Enter)
Bu yöntem genelde klavyede basılmasını istemediğimiz tuşları devre dışı bırakmada kullanılır.
Enter tuşu harici diğer tuşlar devre dışı kalmış oldu böylece ve senin animasyon da devamlı dönmeye başladı tabi.
Burada da Ctrl+C tuşuna bastığımızda programın sonlanmasını engelliyoruz. false olursa Ctrl+C programı sonlandırır.Kod:Console.TreatControlCAsInput = true;
Konu Bilgileri
Bu konuyu görüntüleyenler
Şu an 1 kullanıcı var. (0 üye ve 1 konuk)
Benzer Konular
-
Tektaraflı bir ilişkinin peşinde ne kadar koşarsın
pajero - forum Konu DışıCevaplar: 24Son Mesaj: 21-12-2011, 18:31 -
Ücretsiz Antivirüs = Antivir (Kaspkerky kadar iyi gibi )
srtc91 - forum Eğitim VideolarıCevaplar: 25Son Mesaj: 18-01-2008, 01:49 -
PDF Formatına Çevirmek Bu Kadar Kolay Olmamıştı
Denizhan Dakılır - forum Eğitim VideolarıCevaplar: 12Son Mesaj: 18-01-2008, 00:56 -
Ne Kadar Hızlı Tıklayabiliyosun ?
Furci - forum OyunCevaplar: 16Son Mesaj: 30-05-2007, 09:22 -
Pazar gününe kadar Ankara'dayım
Troy - forum Tanışalım/GörüşelimCevaplar: 40Son Mesaj: 22-05-2007, 13:50



Alıntı

Hocam geçmişte sizi birileri hayli üzmüş anlaşılan özellikle söyle rahatlada yazdıkların bunu çok iyi anımsatıyor.
Hayattaki seçimler(3)...