Delphi Application.MessageBox Kullanımı

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.

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.

qo3zDKhGyMZW377v FvQLZ07Od6RxZ3xYRLg9t9nrJ7aCuf6tyT5LkVtLRHpjfYSIDUAJV7o 9vBhEujd9KYjFgafZZ9kJd7tUSJt1LWU5Cs0xJCIyO2cOVBoMtobeQHITaPLgtuxG468HIg6Cis vxas74RoR0hfsTFroOEPU5ETMlmC4SPYTv7j7LV tCfDQcGExl1H0H5puUZWKKuhT71DvIx6S9OdwsKBz vOBKR0EQccs8XEQCV2NvvzgaJhNQki4Y3Remut6tA7iZgisO9 QEebGHqWMfTKb7w15wr1QPTJkfTueYFQEUtVxw 1TpseUhS1RrSuZM3InKsURe4tYSiUGyR3jbwSOTUjeZRH1vY72O41jgZmVNETBuU44qf6eHJ1gKCXR PFoIstdcCdUySYo K25AWbdrmTDqnjGW2Ch DOT53vOT5 JxWRZ6ANiVCB6wNoPfCQkDZnSWMZX8TDPrUZT 7w3IrC1OgejzFBMAQ5wjQ2Mh2XdW7Ul9o2 hqD2cJ37EmH61R26k92sIUBBPW5gMuGgA1EHlUJw6ALr24h7FtO53EnSLX2b08 zJYpFO0sUw6RLhtjtNozSAFRjw 7k0XiB5jFS9 Ifx R5R5ANoCHoeqpFw9qo2SEEUzOzB69yflDOiajR763xotkMgc7g=w588 h274 no

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.

9LgLSF N0W5WS3yrbhpFDOYqlbpYJMEwFb9PcRvpFZxcgeOrrQ73nWNBz7CkxjTRRFnMWleQr9riCVp3bwGHcAKB Kr77D9qSevf6BPRpW2hcGURU43HyyM3FbeB9xs6CeE5DpGOMIye5wR3IKo5WEGvux5gJd2Ity1XHKU7o4ePqsKVY6OiJtBzQ1Dh1MXwplico5CA3arCbbJ6rAdES0R2N0re6eBXvUe6qaUbENvPnSNycOdsBdvMmyGuJquxPesie6pNBV64bTESLJ2l3bew4gFGBizYcz7VjWj3857lRH2AsR6R3DyV7Sm51Ea9ZEPbPp84jpBhG0LpdEJQjLk6cTsYsPCkq 1PjiL TZOjxFjtdwJ q3fevH6cHxc5D56MwVKjzNVXx2jwbVJK DmYh wweQXU15XrWZXvKKnCmH9muQujfktI 81XqKdIYoN7Iqky6lRy1Ph9emoQQbPMxhaM Y OOxsCJwfDnHMgg ZPC3PZaCMVZ6dgJbO8TzNgUx5yz4ARpv2o824cZA1InFFKAtcmcmM 0cY6TeDkVIlM0f2wpA nMYKh1U4pW3wZG0IY5V7QWDMIoxoY4zfrjOYU4olT60F7Ea9CixVPVMn sQjVUoldu07ljvjSsIQJDU19lhJE3DfuPHDYSdvl7bj SfzxScY=w224 h122 no

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.

İlk olarak çıkarabileceğiniz buttonları burada belirleyebilirsiniz. Yazabileceğiniz seçenekler aşağıda verilmiştir.

Düğme SeçenekleriAçıklama
MB_OKOk button
MB_OKCancelOk – Cancel button
MB_YesNoYes – No button
MB_YesNoCancelYes-No-Cancel button
MB_RetryCancelRetry – Cancel button
MB_AbortRetryIgnoreAbort – Retry – Ignore button

rgn1hpbI JbrFwBMBRjmhLcrWdrAZsqdZONKALRK d0ByCPf3TXcdpLV8m0yxpHdlmaKinjtblPEKHyE HA9dzIi5IW jEWn4wvpFGpPnc7HK8aqO32KxeQGIeCzdv i q5ptd5ncLev4cGc Rd8FsbVf9aH7kQV97y0j165NzTz9UW73FI Z3r R02czgGigiY3c7gdQexkY4cBD0zeEzs1zYRmwanQxz0spjYQdy3x68vMpUH2GCO8jBlFY1dt6Ubet81IlMvayPxhj7qbcQQw5kgDy4xzww1Dh41bppj bRV BoMx6FMLFlR2Ae4s8iUwxYP6ows74AVRvfBz1vXc8L0ct6RXgLfsRDf160E2xLUPwqmBOHuHp TByeP5UPpLxBcuLAPBuZcXb7gVHbjsnrin4FwrEa8l4ngZLjMAPWED5YBzp8RtThQANyGNjYh3D0YGrFklzvxTqpbuvScU5hjFmLteRmCXr5Pb49b8p 7QwtUQcpMBJGT0YzpvkHAJKteix 8Wzp246Y6rM 6xR0 5KY9CNQ43p ArX6Rr6ElV5BLmmapu0 RK52I94MSbuxDEb9r9RYNaA8QmidHVOEwbKOJ08rw9Dt iL q4a38PaiiYoXvP 1XrT1aE2SpIAqqgbKhK6jkBvAGvitAjiVcBqNtHsk=w323 h120 no

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.

goI88to8aU bEN qIkraEk3Tz 6Thlx5tWMomy0PAlCb vrrPNM HNjUdlbfvlFSefK4sXfM4NHPShvZ9tI93vdfBc3f xheuB6iA6 rdjfD6q3zRp77DLUOSucQi1cRdHlsQIApeD2dhzR0xoyo7SZh0VWGgLrpXCEy1eSeIEQL4 NttyWFCp dLA1wXneLgMz1N7dPx73Bp u48x7KgDfmJq6kvfi6E1N 900wpj618NS XFMmFsCZrPMlh0myMp8nGmMMP1R J6Zt4Fw7sNHYD 5rbB F4kP9NpjadyzlxVes70lOSdreJg43ZsZBdIzhzz27h8s HXDmakCtTja28ei0TnU4p4 EPj74nKj9FtHvLLLMVq27o8XOKRdJxIk hcZ9ltnlGPuAuGx 22 zKKdmB6j2IvWvftgC9R hEa5T4O AWTOrgc5An 3hwC0av8QWkaY HhBtXPqn4q5rLmOHBacP58gZ HTjV1prDmGDNjQO9Ty qobm5S9qhiodrWEDR2vGEa56EvTXFRrkjg7lc8jOXzlWEPSgdi7ENHQTVMjfrXxrSpik6Fh1vy OZlcD0PfkHdNDacP9 17C6ThQWj1D8Z d4o3bAj3zHDj6xWcjjRwPx8g3Av GDO9naBnx63sCO6c4LjQmfgmRQ9MnQ08URwQ=w590 h262 no

Buttona tıkladıktan sonraki ekran görüntünüz aşağıdaki gibi icon resmi içeren bir hal almalıdır.

 photo messageBox5.png

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.

UJHBSy0sKyqSW6zolimClRgWxbvy8Om nZleOtxkL6hdOu8Fi4jpDFEQmCvyc8GFI0huZNA64PmiUwPlyQszFz0TNJ8nM8EMFjZYnIOz61DDuH66BueZmp8jhUhQ8UxHyRSUgqqQop8r7w7fRmER8u1pR8m348I3DGiq3PE8Cn0OVYeZQ7kUqmDwQK2woM8qYi3 9U2ahV2JfG6Ol15P0pE0Ch8UjFcQXMppcEM7FG8uPd7kHXUUVW09DWt4rbIqdQFkiM5rbGRxrhSNZBm1j2eA8L27WcMNG CwoW8TIU2AXCDMC0ojwhPu8b cuDWud ZP0obqlOILUI05YLraK31AGtBJMplwVi3Yi10 8HfvPwP5tv3s54W YqnVAelSgdBfX9E2Q4FYbEEb6pNOh9 D LERjXDFHQAnwKbGceDwgGL78Al8ecCkyhYYUMBlsuukxD8x4VF4pXOxEywdqJBbvhMTMCTYIPM40KBFQLbRORHPpALPj3C6bESrquxTcwga PTDqZVLlXQSofBWG8b56BQ7t Y1YxeBHwfEHKI35ZCtDQLKskfHfuMjVOi74scmip5L9EW2BUilswBJ234OHdL6bmdiUpIJOEEmpnY59dg8ZQ4LgjPaG3JkryBwQkh7ZZ16lCPv0ajEK38jxtteeC1u6eAWmGM=w588 h263 no

“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_DEFBUTTON4Dö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. Sonuç aşağıdaki gibi olacaktır.

IJ8ouRhvCqkNf v0tHu1MHwhRTKAXGf 3KfscLOk Uc1Ga3FIOM 8Gx7PzngcdT 9sxlL1oSKA CLsklzOHN8 yrKTX9kQaqgWvqSla8afLm0iTvxbrEqPJT7HcqahQvDkn2fx78Ou8KFM215GqUbs BW4Fed7O4sGzZrbSe0iVq7bSMYXxUl XbfT7kcH RpH7orokeqppEacbJlkmVJlovWFka0aYcEuMV3mzc1Ma6gKtuTvbe9v l6pYU2ZUOvlCXVuiuZurMeTP35JwMdl7B3EHf0b Tf2H 8JTfhI4RS AxhZwmfqPe4NNnIH18fIKvHuoFj4KFHBgu7 mwypJmpHCWK2Kg54 7KXoyYQ5h1X3OGi1 DwDRQd1iNBribOQDiZeTO2l5kpBfBY4qYj80uDEyvoXQcZYf k0XabgMyOzcVnj fGhPud8fQHkLIvYub3CeOjAtfTfG9lFdUxJXPKrHX NgUCrz FeEG3yqXSmRHk45x11RLVB4uZ bl8lgl2Ijql4IIz2zb3eH3 TIIIqKDvcA65fw7WyWgSP8FNsHpDrrf6wJNa2KaGDcEx8HrEuyNq6neowzIq9eUhWZRlS o2ZnZP2VaADGt8j5ZgA X pSUpOTDxKeYTuS ucNoq6RuXaR 1Lv bJKtWjp lSiiCliPoY=w490 h319 no

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çeneklerAçıklama
MB_SYSTEMMODALHep En Üstte
MB_APPLMODALArkada
MB_TASKMODALArkada

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.

 photo messageBox8.png

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.

 photo messageBox9.png

Dilerseniz aşağıdaki seçeneği de ekleyerek kapat düğmesi ve eklenen düğmelerin yerlerini de değiştirebilirsiniz.

 photo messageBox10.png

 photo messageBox11.png

Kapat düğmesini iptal etmek (pasif hale getirmek) içinde aşağıdaki seçeneği ekleyebilirsiniz.

 photo messageBox12.png

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_RIGHTYazı ve Başlık Sağa Dayalı
MB_PRECOMPOSEDKapat Düğmesini Sola Al
MB_COMPOSITEKapat 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.

 photo messageBox13.png

Dilerseniz dallandırma işlemini “case” yapısıyla da gerçekleştirebilirsiniz. O zaman kodunuzu aşağıdaki şekilde değiştirmelisiniz.

 photo messageBox14.png

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.

5/5 - (1 vote)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et