En çok kullanılan ve en iyi performansı veren methoddur. Kullanıcıya seçenekli mesaj penceresi açmak için kullanılır. Bu methodda kullanıcının tercih edebileceği düğme sayısı birden fazla olduğu için, basılan düğmenin değerini tutabilecek tam sayı tipli bir değişkene ihtiyaç vardır.
En çok kullanılan ve en iyi performansı veren methoddur. Kullanıcıya seçenekli mesaj penceresi açmak için kullanılır. Bu methodda kullanıcının tercih edebileceği düğme sayısı birden fazla olduğu için, basılan düğmenin değerini tutabilecek tam sayı tipli bir değişkene ihtiyaç vardır. Kullanım şekline ait yapı aşağıda verilmiştir.
1 2 | Var Num:Integer; begin num:=Application.MessageBox('Mesaj', Başlık,seçenekler); |
Methodda opsiyonel (istenirse parametre gönderilmeyen) parametre olmadığı için, tüm parametrelere değer göndermek zorunludur. Şimdi tüm parametreleri basitten zora doğru inceleyelim. Birinci parametrede (Mesaj) pencerede gösterilmesi istenen açıklama satırı belirtilmelidir.
Yukarıdaki kod satırıyla kullanıcıya ‘Kayıt Değiştirilsin mi’ açıklama satırını ileten (Başlık satırı ve düğmelerde oluşturulmuştur, bunlar birazdan incelenecektir.) bir pencere açılmasını sağlayabilirsiniz. Programın düğmeye tıklandıktan sonraki ekran görüntüsü aşağıda verilmiştir.
Kodda belirtilen açıklama satırının pencerenin ortasında yer aldığına dikkat ediniz. Gelelim ikinci parametreye (Başlık), buraya gireceğiniz metni, kullanıcı formun başlığında görecektir. Yukarıdaki pencereye dikkat edecek olursanız, formun başlığının bu metinle aynı olduğunu göreceksiniz. Üçüncü parametremiz (Seçenekler) ise kendi arasında bir çok opsiyonel parametresi bulunan bir seçenekler kümesidir. Bu seçeneklerden en az bir tanesini methodda belirtmelisiniz. Aksi takdirde uygulamanız çalışmayacaktır. Şimdi bu seçenekleri teker teker inceleyelim.
1 2 | num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir', MB_YESNOCANCEL); |
İlk olarak çıkarabileceğiniz buttonları burada belirleyebilirsiniz. Yazabileceğiniz seçenekler aşağıda verilmiştir.
Düğme Seçenekleri | Açıklama |
---|---|
MB_OK | Ok button |
MB_OKCancel | Ok – Cancel button |
MB_YesNo | Yes – No button |
MB_YesNoCancel | Yes-No-Cancel button |
MB_RetryCancel | Retry – Cancel button |
MB_AbortRetryIgnore | Abort – Retry – Ignore button |
Yukarıdaki kod satırının ekran görüntüsü üst tarafta verilmiştir. Şimdi seçenek kümemizdeki ikinci alternatifimize bakalım. Pencerede standart iconlarımızdan bir tanesini kullanmayı deneyelim. Kodu aşağıdaki şekilde değiştirip uygulamanızı tekrar çalıştırın.
1 2 | num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir', MB_YESNOCANCEL+MB_ICONSTOP); |
Buttona tıkladıktan sonraki ekran görüntünüz aşağıdaki gibi icon resmi içeren bir hal almalıdır.
Kullanabileceğiniz diğer icon seçeneklerini de tablo halinde sizlere verelim. Projenize uygun olanını kullanabilirsiniz.
Icon Seçenekleri | Açıklama |
---|---|
MB_ICONSTOP | |
MB_ICONQUESTION | |
MB_ICONINFORMATION | |
MB_ICONHAND | |
MB_ICONEXCLAMATION | |
MB_ICONASTERISK | |
MB_ICONWARNING | |
MB_ICONERROR | |
MB_ICONMASK |
Şimdi de üçüncü seçeneğimizi inceleyelim. Tehlikeli işlemlerde (silme veya değiştirme vs.) kullanıcının yanlışlıkla klavyeden bir tuşa basıp “Yes” buttonunu işletmesi çok kötü sonuçlar doğurabilir. Bu yüzden pencere açıldığı zaman aktif buttonun “No” düğmesi olmasını sağlamak, sizin için bir alışkanlık olmalıdır. Bu işlemi nasıl yapabileceğiniz aşağıda gösterilmiştir.
“MB_DEFBUTTON2” parametresi pencere açıldığı zaman klavyeden enter tuşuna basılması durumunda “No” düğmesine girilen kodun işletilmesini sağlayacaktır.
1 2 | num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir', MB_YESNOCANCEL+MB_ICONMASK+MB_DEFBUTTON2); |
Kullanabileceğiniz diğer alternatifler tablo halinde aşağıda verilmiştir.
Default Button Seçenekleri | Açıklama |
---|---|
MB_DEFBUTTON1 | İlk Button Aktif |
MB_DEFBUTTON2 | İkinci button aktif |
MB_DEFBUTTON3 | Üçüncü button aktif |
MB_DEFBUTTON4 | Dördüncü button aktif |
Seçenek kümemizde yer alan dördüncü parametremiz, açılacak olan mesaj penceresinin diğer uygulamaların en üstünde mi yoksa altında mı kalacağını belirlemektedir. Aşağıda yapının kullanımına ait örneklendirme yapılmıştır.
1 2 | num:=Application.MessageBox('Kayıt Değiştirilsinmi', 'Değiştir', MB_YESNOCANCEL +MB_ICONMASK+MB_DEFBUTTON2+ MB_SYSTEMMODAL); |
“MB_SYSTEMMODAL” seçeneği mesaj pencerenizin diğer uygulamaların önünde (en üstte) yer almasını sağlayacaktır. Sonucu görmek için mesaj pencereniz açıkken “Calc” (veya herhangi) programını çalıştırınız. Sonuç aşağıdaki gibi olacaktır.
Burada kullanabileceğiniz iki seçeneğiniz var. Birincisi mesaj pencerenizin en üstte kalmasını sağlayacak olan “MB_SYSTEMMODAL”, ikincisi ise diğer uygulamalarınızın mesaj penceresinin üzerinde olmasını sağlayacak (Varsayılan değer budur. Yazılmazsa da bunu kabul edecektir.) “MB_APPLMODAL” dır. Seçenekleri yinede tablo halinde vermek sanırım yararlı olacaktır.
Seçenekler | Açıklama |
---|---|
MB_SYSTEMMODAL | Hep En Üstte |
MB_APPLMODAL | Arkada |
MB_TASKMODAL | Arkada |
Seçenek kümemizin beşinci parametresi, mesaj penceresinde yer alacak olan metni sağa dayalı yazmak için kullanılır. Aşağıda bu husus örneklendirilmiştir.
1 2 | num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir', MB_YESNOCANCEL+MB_ICONMASK+MB_DEFBUTTON2+MB_TASK MODAL+MB_RIGHT); |
“MB_RIGHT” parametresi pencerede yer alan metnin sağa dayalı yazılmasını sağlar. Aşağıdaki kodu projenize ekleyip çalıştırırsanız, açıklama metninizin sağa dayalı yazıldığını göreceksiniz.
Buttona tıkladıktan sonraki ekran görüntünüz aşağıda verilmiştir. Burada pencere başlığının da sağa dayalı yazıldığını dikkatinizden kaçırmayın.
Dilerseniz aşağıdaki seçeneği de ekleyerek kapat düğmesi ve eklenen düğmelerin yerlerini de değiştirebilirsiniz.
Kapat düğmesini iptal etmek (pasif hale getirmek) içinde aşağıdaki seçeneği ekleyebilirsiniz.
“MB_PRECOMPOSED” seçeneğini ekleyerek, mesaj penceresinde kapat düğmesinin pasif hale gelmesini sağlayabilirsiniz.
1 2 3 | num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir', MB_YESNOCANCEL+MB_ICONMASK+MB_DEFBUTTON2+ MB_TASK MODAL+MB_RIGHT+MB_PRECOMPOSED); |
Son eklediğimiz seçenekleri de tablo halinde verip, bu kısmı kapatmak istiyorum. Yazacağımız bu seçenekler birbirlerine alternatif değildir. Hepsinin görevi farklı olup, tabloda bu husus açıklanmıştır.
Seçenekler | Açıklama |
---|---|
MB_RIGHT | Yazı ve Başlık Sağa Dayalı |
MB_PRECOMPOSED | Kapat Düğmesini Sola Al |
MB_COMPOSITE | Kapat Düğmesini Pasif Yap |
Açılan mesaj penceresi alternatifli düğmelerden oluşacağı için, basılan düğmenin değerinin aktarılacağı değişken bizim için oldukça önemlidir. Aynen “MessageDlg” methodunda olduğu gibi burada da elimizdeki bu değişkeni dallandırma (if veya case) işlemine tabi tutarak her düğme için farklı kodların işletilmesini sağlayabiliriz.
Aşağıdaki uygulamada bu husus örneklendirilerek, her düğme için farklı kodların işletilebilmesi sağlanabilmektedir. Programı çalıştırdıktan sonra button kontrolüne tıklayabilirsiniz.
Dilerseniz dallandırma işlemini “case” yapısıyla da gerçekleştirebilirsiniz. O zaman kodunuzu aşağıdaki şekilde değiştirmelisiniz.
Kıyaslama işleminde kullanacağınız yapı tamamen programcıya kalmıştır. Bizim bu hususta herhangi bir tavsiyemiz olmayacaktır. Dilediğinizi seçebilirsiniz.
çok güzel ama resimler uçmuş. buda makaleyi anlamsız hale getiriyor ilgilenirseniz sevinirim
redhacker@hotmail.de mailini bekliyrm
MRB EMRE TELİNİ VERİRMİSİN DOSTM TANISALM