8 Şubat 2019 Cuma

APP INVENTOR DERS-6

SPINNER VE NOTIFIER KULLANIMI

Bu projemizde ListView ve PasswordTextBox 'da kullanıyoruz.ListView, işlevi ListPicker ile aynı görüntüleri farklı.PasswordTextBox 'ın normal olandan tek farkı, yazdıklarınızın yıldız/küçük yuvarlaklar olarak gözükmesi.
Bu dersimizde bir hastane randevu alma uygulaması yapmaya çalışıyoruz.
Screen1 Bileşenleri
Bileşenlerimizi isimlendirerek başlıyoruz.
  • TextBox1 = txtKullaniciAdi , Hint özelliği: Kullanıcı Adı Giriniz
  • PasswordTextBox1 = pas_txtSifre , Hint özelliği: Şifre Giriniz
  • Button1 = btnGirisYap , Text özelliği: Giriş Yap
Ekran2 Bileşenleri
  • Spinner1 = spnBolumAdlari , ElementFromString: "Genel Cerrahi, İç Hastalıkları, Nöroloji"
  • ListView1 = lstGenelCerrahi ,Visible = False, ElementFromString: "Dr. Ayşe Budak, Dr. Hüseyin Yıldırım, Doç. Dr. Sabi Kalpli" (İsimler hayal ürünüdür)
  • ListView2 = lstIcHastaliklari ,Visible = False, ElementFromString: "Dr. Melek Kaya, Doç. Dr. Zeynep Yıldırım, Prof. Dr. Haki Bıyıklı"(İsimler hayal ürünüdür)
  • TimePicker1 = tmpRandevuSaati , Text: "Randevu Saatini Belirlemek İçin Tıklayın"
  • Button1 = btnTamamla , Text: "İşlemi Tamamla"
  • Label1 = lblSonucYaz , Text: " "
  • Notifier1 = ntfUyarici
  1. ListPicker kullanımını anlatmıştık, aynı şekilde Spinner içerisinde yer almasını istediklerimizi arasına virgül koyarak yazıyoruz.
  2. Bu metin kutusuna liste açıldığında başlık(title) olarak ne yazmasını istiyorsanız yazabilirsiniz."Randevu almak istediğiniz bölümü seçiniz"
  3. Ekrana sürüklediğiniz Notifier 'in ekranda görünmediğini farketmişsinizdir. Bu ve benzeri bileşenler burada Non-visible components(görünmez bileşenler) kısmında yer alır.
  1. "btnGirisYap" a tıklandığında,
  2. Eğer,
  3. Kullanıcı "pas_txtSifre" içerisine "admin123" , 
  4. Ve, 
  5. "txtKullaniciAdi" içerisine de "KodMaceralarim" yazdıysa, (kayıt ol/giriş yap projemizde ki kodları kullanabiliriz ama basit tutmak açısından bu şekilde kodluyoruz.)
  6. Ekran2 'yi aç
Ekran2 ye geçildiğinde ilk yapılacak olan "spnBolumAdlari" içerisinden randevu alacağımız bölümü seçmek
  1. Kullanıcı bölüm seçtiğinde veriyi tutmak için değişken oluşturuyoruz.
  2. Kullanıcı "spnBolumAdlari" ndan seçim yaptıktan sonra çalışacak kodları bu blok içerisine yerleştiriyoruz.
  3. Kullanıcının yaptığı seçimi oluşturduğumuz değişkene atıyoruz.
  4. "get selection" kod bloğunu buradan alabilirsiniz.
  5. Eğer, "secilenBolum" = "Genel Cerrahi" ise
  6. Genel Cerrahi doktorlarının yer aldığı "lstGenelCerrahi" nin visible özelliğini true yap(Böylece kullanıcımız istediği doktoru seçerek devam edebilir.)
  7. Eğer, "secilenBolum" = "İç Hastalıkları" ise
  8. "lstIcHastaliklari".Visible = true
  9. Eğer "secilenBolum" = "Nöroloji" ise
  10. "lblSonucYaz".Text = "Nöroloji bölümünü hizmete açmak için çalışmalarımız devam ediyor" olarak set et.
  11. ve 12. bloklar :Eğer kullanıcı ikinci kez randevu almak isterse diye listelerin visible özelliklerini false yapıyoruz.Blokları silerek aradaki farkı görebilirsiniz.
Randevu almak istediğimiz bölümü seçtiğimize göre sıra, hangi doktora muayene olmak istediğimizi seçiyoruz.
  1. "lstGenelCerrahi" listesinden seçim yapıldıktan sonra,
  2. Kullanıcı 1 'den fazla randevu aldığında yazılar üst üste binmesin diye sıfırlıyoruz, bu kod bloklarını silip neden ihtiyaç duyduğumuzu daha net görebilirsiniz.
  3. Bölüm ve doktor seçimi yapmadan "btnTamamla" ya tıklanamasın diye visible = false yapıyoruz.
  4. Pek çok yazılım dilinde görebileceğiniz bu kod, bir alt satıra  inmeyi sağlar.
  5. Kullanıcının seçtiği doktor adını oluşturduğumuz mesaja yerleştiriyoruz.
  6. Bölüm ve doktor seçimi tamamlandığına göre "btnTamamla".Visible = true olarak set edebiliriz.(Aynı bloğu "lstIcHastaliklari" için de yapıyoruz.)
  1. "btnTamamla".Click altındaki if kontrolünde kullanmak için "sayac" adında değişken oluşturuyoruz.
  2. "tmpRandevuSaati" kullanılarak randevu saati seçildiğinde sayacı 1 yap.
  3. "btnTamamla" ya tıklandığında,
  4. Eğer, "sayac" adındaki değişken 0 dan büyükse(yani randevu saati seçildiyse) 
  5. "lblSonucYaz".Text i şu şekilde set et: Doktor adı seçerken yazdırdıklarımız ("lstGenelCerrahi".AfterPicking veya "lstIcHastaliklari".AfterPicking den gelen kısım) + 
  6. "tmpRandevuSaati" kullanarak seçtiğimiz zamanın saat kısmı +
  7. "tmpRandevuSaati" kullanarak seçtiğimiz zamanın dakika kısmı
  8. "lblSonucYaz" a ekrana göstermek istediğimiz yazıları ekleme işlemini bitirdiğimize göre artık visible = true yapabiliriz.
  9. Else(başka) durumunda, yani if yanındaki şart sağlanmazsa aşağıdaki kodları çalıştır.("sayac" adındaki değişken 0 'dan büyük değilse, randevu saati seçilmemişse)
  10. "ntfUyarici" yi çağır(call).(Notifier için pek çok hazır kod bloğu seçeneği arasından bu proje için "ShowMessageDialog(Mesajı/diyaloğu göster)" seçildi. )
  11. "Randevu saati seçmeden kayıt tamamlanamaz" mesajını bir uyarı penceresi ile ekrana yaz.
  12. Uyarı penceresinin başlığında "Uyarı!" yaz.
Ekran2 kod bloklarının son hali


İYİ ÇALIŞMALAR

Hiç yorum yok:

Yorum Gönder

Son Eklenen

C# Ders-5

Döngüler(Loops) Döngüler, bir işlemin defalarca tekrarlanması gerekiyorsa, aynı kodu tekrar tekrar yazmaktan kurtulmamızı sağlar. Gerçekl...

Popüler Yayınlar