Delphi. MessageBox
Рано или поздно программеру необходимо "общаться" с пользователем... Вот приведу пример, зайдите в "блокнот", напишите там "bla-bla-bla" без ковычек, теперь закройте быстро(а то не дай бог привыкните :) ),
И видите что там появилось? Нет? Да вам типа пора обратиться к окулисту :) ! Посмотрите по-внимательней, вот уже кое чего видно(да ты теперь кул-кодер номер 1 в мире :) ), там написано что типа изменён текс и всё такое, дак вот это то, что вылезло называется... Блин, ну как-же оно называется? :) Пусть будет сообщение :). Дык во-о-о-о-от, мы сейчас научимся мутить такие-же в дельфи... А юзать мы будем ф-цию MessageBox, с её помощью делается всё очень быстро! Причём, надписи на кнопках будут соответствовать языку виндосы... т.е. если вы юзаете японскую версию оси, то и надписи, там да, отмена будут на японском!!!
MessageBox(Handle,Текст,Заголовок,Дополнения);
Handle - этот параметр указывает на окно владельца сообщения. оставте как есть, это значит что владелец это то окно из которого вызывается сообщение.
Текст - а это, сам текст сообщения, т.е. типа "Вы хотите сохранить", там или "Внимание! Чё-нибуть":) Причём тип сообщения
PChar, а это значит что надо писать так:
PChar('ТЕКСТ СООБЩЕНИЯ')
Заголовок - ну а это текст заголовка, тоже типа
PChar
Дополнения -ето уже по-сложнее будет!
Значит та-а-а-ак что у нас входит в дополнения, а КНОПКИ, ИКОНКА
Иконки
MB_ICONWARNING | |
MB_ICONINFORMATION
MB_ICONASTERISK | |
MB_ICONQUESTION | |
MB_ICONSTOP
MB_ICONERROR | |
Кнопки
MB_OK | Одна кнопка ОК |
MB_OKCANCEL | ОК, Отмена |
MB_YESNO | Да, Нет |
MB_YESNOCANCEL | Да, Нет, Отмена |
MB_RETRYCANCEL | Повторить, Отмена |
MB_ABORTRETRYIGNORE | Прервать, Повтор, Пропустить |
Есть ещё др. параметры, например какая кнопка будет выделена по умолчанию -
MB_DEFBUTTONx, где х номер кнопки слева на право. Т.е. если у нас параметр кнопок MB_YESNOCANSEL и MB_DEFBUTTON2 - то будет выделена кнопка НЕТ по умолчанию... во-о-о-о-от. А вот ещё если несколько параметров то их следует разделять плюсами:
MessageBox(handle, PChar('текст'),PChar('заголовок'), MB_ICONSTOP+MB_YESNOCANCEL+MB_DEFBUTTON2);
Пример использования
Создай новый проект, сохрани, и на форме создай кнопку с текстом
Closeи напиши при клике на кнопку(ну или на событии OnClose формы) след. код:
MessageBox(handle, PChar('Are you want exit?'), PChar('Think please :)'),(MB_YESNO+MB_ICONQUESTION));
Ну, что компиль... Скомпилил? Открой, нажми на кнопку, нажми в сообщении Да - Отлично! Выходит! Теперь опять открой, нажми на кнопку, нажми в сообшении Нет - отстой не робит... Ну дак! :) Надо замуть чтоб робило!!!! Теперь пиши вот что:
procedure TForm1.Button1Click(Sender: TObject);
var
temp:Word;
begin
temp:=MessageBox(handle, PChar('Are you want exit?'), PChar('Think please :)'), MB_YESNO+MB_ICONQUESTION);
case temp of
idyes:Application.Terminate;// выключаем прогу
end;
end;
Ну а теперь? :) Робит? Отлично!
Просто поясню что мы проверяли "значение" нажатой кнопки. "значения"(ну я просто не знаю как правельно писать :)) кнопки это id+имя кнопки. Т.е. "значение" кнопки No - idno, retry - idretry
Как видишь кодить на дельфи очень просто! Удачи