|
Wszystko o MessageBox
Autor: Vnookality
Umieszczanie w swoich aplikacjach dodatkowych form do wyświetlania komunikatów nie ma zbytnio sensu, chociaż klika miesięcy temu tak robiłem (uff...). Jest za to dużo ciekawszy sposób na wyPwietlanie komunikatów przez nasz program. Dzięki metodzie Application->MessageBox(AnsiString,AnsiString,Unsigned Long) możemy wyPwietlać okna o dowolnej trePci i jak dalej się okaże z wybranymi ikonami oraz przyciskami.
Najprostszym sposobem wykorzystania tej funkcji jest przykładowy kod:
|
Unit1.cpp |
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBox("Przykładowy tekst okna.","Przykładowy tytuł okna",
MB_OK | MB_ICONINFORMATION);
}
| |
|
Pokazuje on przykładowe okno o treści "Przykładowy tekst okna." i o tytule "Przykładowy tytuł okna". Te dwa miejsca w funkcji Application->MessageBox() mogą być dowolne. Gorzej jest z parametrem wyświetlania przycisków (MB_OK) i stylowi ikony (w naszym przykładzie ikona informacyjna - MB_ICONINFORMATION).
Możliwe są następujące style przycisków:
MB_OK - wyświetla tylko przycisk OK
MB_OKCANCEL - wyświetla przyciski OK i Anuluj
MB_ABORTRETRYIGNORE - wyświetla przyciski Ponów, Zignoruj, Przerwij
MB_YESNOCANCEL - wyświetla przyciski Tak, Nie, Anuluj
MB_YESNO - wyświetla przyciski Tak, Nie
MB_RETRYCANCEL - wyświetla przyciski Ponów Próbę, Anuluj
i ikon:
MB_ICONHAND - wyświetla ikonę błędu (czerwony krzyżyk)
MB_ICONQUESTION - wyświetla ikonę pytania (znak zapytania)
MB_ICONEXCLAMATION - wyświetla ikonę ostrzeżenia (żółty wykrzyknik)
MB_ICONASTERISK - wyświetla ikonę informacji (mały wykrzyknik)
No dobra. Możemy zmieniać ilość przycisków, ikony itd., ale przy wybraniu przycisków innych niż proste MB_OK (tylko przycisk OK) nie możemy sterować oknem, co ma zrobić, gdy np. użytkownik nie kliknij na Tak tylko na Nie lub jeszcze na inny przycisk.
Aby sterować tym, co program ma robić przy kliknięciu na odpowiedni przycisk, musimy spytać się programu, jaki był wynik modalny (modal result) podanej operacji. Dla każdego przycisku jest zdefiniowana inna nazwa wyniku modalnego. Pokazuje to przykładowy kod (pyta się czy zamknąć system, czy też nie):
|
Unit1.cpp |
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Application->MessageBox("Czy chcesz zamknąć system?", "Zamknij system",
MB_YESNO | MB_ICONQUESTION) == mrYes)
{
ExitWindowsEx(EWX_SHUTDOWN, 0);
}
}
| |
|
Zwracany jest tu wynik mrYes odpowiadający kliknięciu na przycisk Yes czyli Tak. Odpowiednio dla każdego przycisku jest inna nazwa wyniku modalnego:
IDYES - przycisk Tak
IDNO - przycisk Nie
IDCANCEL - przycisk Anuluj
IDABORT - przycisk Przerwij
IDRETRY - przycisk Ponów próbę
IDIGNORE - przycisk Zignoruj
Uwaga! Pamiętajmy, że aby wynik miał sens, musimy zdefiniować odpowiednie przyciski, bo jaki sens będzie miało pytanie jaki był wynik modalny, jeżeli zdefiniowaliśmy przycisk OK? To samo dotyczy ustawiania wyniku modalnego do przycisku który nie został zdefiniowany, np. mrYes do MB_ABORTRETRYIGNORE.
| Wasze opinie: |
| Średnia ocena: 6.65/10 (43 głosów) |
|
| Liczba komentarzy: 31937 (pokaż wszystkie) | Skomentuj !
|
| Autor: Generic Ambien
| Data dodania: 2008-07-24 |
| Thank You!, Order Xanax, =((, Buy Ambien online, qvv, order viagra, :-(, Phentermine Without Prescription, :(((, Adipex, :-[[[, Cialis, kpf, Buy Ultram, 5490, Cialis bestellen, jvz, Buy Cialis Online, lwsqa, |
| Autor: Buy Diazepam | Data dodania: 2008-07-24 |
| Best Wishes!, Xanax, 8-OOO, Cheap Tramadol, :OOO, Order Valium
, 337, Xanax online
, 8PP, Cialis Online, dtxdgz, Buy Tramadol, 8(, Phentermine, 947567, Xanax online
, >:OO, Phentermine, uuvvvi, |
| Autor: Valium online | Data dodania: 2008-07-24 |
| Thank You!, viagra, %((, Cheap Phentermine, %DD, Ultram, remztf, Tramadol, uck, Order Xanax
, >:[, Buy Adipex, 457553, Buy Phentermine, :-)), viagra, 984, |
| Autor: Buy Ultram | Data dodania: 2008-07-24 |
| Thank You!, Order Cialis
, lxx, Cheap Ultram, fspwht, Diazepam, 8(, Phentermine 37.5mg, %-[[, generic viagra, >:-[, Ultram, :-OOO, Buy Tramadol online
, botytp, Buy Ultram, hhvs, Ultram online, :-]], Cialis barato
, 130, Cialis, oyajz, |
| Autor: Order Ambien
| Data dodania: 2008-07-24 |
| Nise site., order viagra, >:[, Order Xanax, >:(, Tramadol, dpgt, Buy Valium online, yiobqf, Ultram online, fjv, |
| Autor: Buy Tramadol online
| Data dodania: 2008-07-24 |
| Your Site Is Great!, Xanax, 3002, Buy Tramadol, 61967, Cheap Tramadol, =), Buy Ambien, 323046, Cialis, 99026, Cialis barato
, 05325, Ultram online, tfzssp, Generic Valium, 493540, |
| Autor: Cheap Tramadol | Data dodania: 2008-07-23 |
| Nise site., Buy Cialis Online, 878, Buy Cialis, 200768, buy Valium no prescription, :D, Tramadol Online, >:-P, viagra, thx, Phentermine 37.5mg, 406804, Tramadol, 6505, |
|
|