- 20 Ağu 2016
- 8,754
- 411
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.
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.
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.
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.
İ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
Ş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.
Ş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.
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.
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.
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.
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.
MB_PRECOMPOSED seçeneğini ekleyerek, mesaj penceresinde kapat düğmesinin pasif hale gelmesini sağlayabilirsiniz.
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.
Resim ekliyemedim yazısı bile uzun surdu iyi forumlar dilerim ,gelecek konuda görüşmek üzere
Kod:
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.
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.
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.
Kod:
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
Ş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.
Kod:
num:=Application.MessageBox('Kayıt Değiştirilsinmi','Değiştir',
MB_YESNOCANCEL+MB_ICONSTOP);
Ş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.
Kod:
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.
Kod:
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.
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.
Kod:
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.
MB_PRECOMPOSED seçeneğini ekleyerek, mesaj penceresinde kapat düğmesinin pasif hale gelmesini sağlayabilirsiniz.
Kod:
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.
Resim ekliyemedim yazısı bile uzun surdu iyi forumlar dilerim ,gelecek konuda görüşmek üzere