User Tag List

Gösterilen sonuçlar: 1 ile 8 ve 8

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 ...

  1. #1
    hasbi_muharip - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jan 2010
    Yaş
    22
    Mesajlar
    112

    Standart 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:
    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 111i++)
                        {
                            
    System.Threading.Thread.Sleep(100);
                            
    Console.SetCursorPosition(ii);
                            
    Console.WriteLine("1");
                            
    Console.SetCursorPosition(10 ii);
                            
    Console.WriteLine("1");
                        }
                        
                        
    ef Console.ReadKey().Key;
                        


                        if (
    ef != System.ConsoleKey.EnterConsole.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(00);
                    
                    
    Console.ReadKey().KeyChar;
                    
    Console.ForegroundColor ConsoleColor.Yellow;
                           if (
    == rakam[0])
                            {
                                
    Console.Clear();
                                
    Console.WriteLine("1. demoya hoşgeldiniz");
                                
    Console.ReadKey();
                            }
                            else if (
    == rakam[1])
                            {
                                
    Console.Clear();
                                
    Console.WriteLine("2. demoya hoşgeldiniz");
                                
    Console.ReadKey();
                            }
                            else if (
    == rakam[2])
                            {
                                
    Console.Clear();
                                
    Console.WriteLine("3. demoya hoşgeldiniz");
                                
    Console.ReadKey();
                            }
                           else if (
    == '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');

    PROGRAM ÇIKTISI:
    Konu hasbi_muharip tarafından (04-02-2012 Saat 21:31 ) değiştirilmiştir.

  2. #2

    Üyelik tarihi
    Feb 2012
    Mesajlar
    14

    Standart

    teşekkürler...

  3. #3
    dijital3x - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Sep 2006
    Yaş
    28
    Mesajlar
    100

    Standart

    Paylasim İcin Tskler.

  4. #4
    aslanpayi - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Aug 2009
    Yaş
    31
    Mesajlar
    319

    Thumbs up

    Alıntı hasbi_muharip Nickli Üyeden Alıntı Mesajı göster
    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 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');
    }

  5. #5
    hasbi_muharip - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jan 2010
    Yaş
    22
    Mesajlar
    112

    Standart

    @aslanpayi hocam çok çok teşekkürler başkaları ilgilenmedi ya da görmedi. Elleriniz dert görmesin

  6. #6
    aslanpayi - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Aug 2009
    Yaş
    31
    Mesajlar
    319

    Standart

    Alıntı hasbi_muharip Nickli Üyeden Alıntı Mesajı göster
    @aslanpayi hocam çok çok teşekkürler başkaları ilgilenmedi ya da görmedi. Elleriniz dert görmesin
    Rica ederim, umarım istediğini doğru anlayıp ilk bölümü doğru düzenlemişimdir.

  7. #7
    hasbi_muharip - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jan 2010
    Yaş
    22
    Mesajlar
    112

    Standart

    Alıntı aslanpayi Nickli Üyeden Alıntı Mesajı göster
    Rica ederim, umarım istediğini doğru anlayıp ilk bölümü doğru düzenlemişimdir.
    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?

  8. #8
    aslanpayi - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Aug 2009
    Yaş
    31
    Mesajlar
    319

    Standart

    İçteki

    Kod:
    while (!Console.KeyAvailable)
    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ıştaki

    Kod:
    while (Console.ReadKey(true).Key != ConsoleKey.Enter)
    ç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.
    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.
    Kod:
    Console.TreatControlCAsInput = true;
    Burada da Ctrl+C tuşuna bastığımızda programın sonlanmasını engelliyoruz. false olursa Ctrl+C programı sonlandırır.

Konu Bilgileri

Bu konuyu görüntüleyenler

Şu an 1 kullanıcı var. (0 üye ve 1 konuk)

Benzer Konular

  1. Cevaplar: 24
    Son Mesaj: 21-12-2011, 18:31
  2. Cevaplar: 25
    Son Mesaj: 18-01-2008, 01:49
  3. PDF Formatına Çevirmek Bu Kadar Kolay Olmamıştı
    Denizhan Dakılır - forum Eğitim Videoları
    Cevaplar: 12
    Son Mesaj: 18-01-2008, 00:56
  4. Cevaplar: 16
    Son Mesaj: 30-05-2007, 09:22
  5. Pazar gününe kadar Ankara'dayım
    Troy - forum Tanışalım/Görüşelim
    Cevaplar: 40
    Son Mesaj: 22-05-2007, 13:50

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •  

vBulletin Optimisation by vB Optimise.