|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как из MessageBox передать ответ в if?
Подскажите пожалуйста, что нужно в условии if прописать чтобы определить какой ответ дал пользователь?
Пробовал так, но так выходить ошибка: Код:
MessageBox( Self.Handle , PChar('...: "'+DBGrid1.Fields[0].asString+' '+DBGrid1.Fields[1].asString+'"...?') , PChar('....') , MB_YESNO + MB_ICONWARNING )=1 if MB_YES then begin ... end |
#2
|
||||
|
||||
Функция возвращает число. Его надо сохранить и заюзать.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Цитата:
|
#4
|
||||
|
||||
Код:
iRes := MessageBox(...) if iRes = ... then ... Код:
if MessageBox(...) = ... then ... jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
DDim1000 (07.01.2013)
|
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Гугл - это не круто, да? тыц тыц тыц (подзаголовок Return value)
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
|||
|
|||
вот тебе пример только на основе месседждлг ... вообщем одна и таже зараза ...
Код:
if MessageDlg('Вы не промазали? Точно изменить 1 запись?', mtWarning, mbOKCancel, 0) = mrOK then begin mrOK это делфийская константа 1 ... можно вместо нее написать "...= 1 then..." 1 будет одно и тоже .... upd ну вот на твоём примере будет както так ... Код:
if MessageBox(Self.Handle, PChar('...:...?'), PChar('....'), MB_YESNO + MB_ICONWARNING) = mrYes then begin Последний раз редактировалось caHek-2x, 10.01.2013 в 10:44. |
#8
|
||||
|
||||
а
Код:
if MessageBox(Handle, '', '', MB_OKCANCEL)=IDOK then Код:
if MessageBox(Handle, '', '', MB_YESNO)=IDYES then Код:
const { Dialog Box Command IDs } {$EXTERNALSYM IDOK} IDOK = 1; ID_OK = IDOK; {$EXTERNALSYM IDCANCEL} IDCANCEL = 2; ID_CANCEL = IDCANCEL; {$EXTERNALSYM IDABORT} IDABORT = 3; ID_ABORT = IDABORT; {$EXTERNALSYM IDRETRY} IDRETRY = 4; ID_RETRY = IDRETRY; {$EXTERNALSYM IDIGNORE} IDIGNORE = 5; ID_IGNORE = IDIGNORE; {$EXTERNALSYM IDYES} IDYES = 6; ID_YES = IDYES; {$EXTERNALSYM IDNO} IDNO = 7; ID_NO = IDNO; {$EXTERNALSYM IDCLOSE} IDCLOSE = 8; ID_CLOSE = IDCLOSE; {$EXTERNALSYM IDHELP} IDHELP = 9; ID_HELP = IDHELP; {$EXTERNALSYM IDTRYAGAIN} IDTRYAGAIN = 10; {$EXTERNALSYM IDCONTINUE} IDCONTINUE = 11; Пишу программы за еду. __________________ |
#9
|
|||
|
|||
mrOk и idOk это одно и тоже вообщем ...
|
#10
|
||||
|
||||
С какого перепугу? Если константы совпадают, это не означает одно и тоже. Что в Windows, что в Дельфи эти константы однажды могут поменяться. И что тогда делать будешь?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
Цитата:
Код:
const mrNone = 0; mrOk = idOk; mrCancel = idCancel; mrAbort = idAbort; mrRetry = idRetry; mrIgnore = idIgnore; mrYes = idYes; mrNo = idNo; mrAll = mrNo + 1; mrNoToAll = mrAll + 1; mrYesToAll = mrNoToAll + 1; mrClose = mrYesToAll + 1; в теории и конец света когда то наступит ... и что тогда ты будешь делать ?) |
#12
|
||||
|
||||
Константы на то и константы, чтобы пользоваться их символьными именами а не значениями. Производитель всегда оставляет за собой право изменить их (и не только их) не поставив лично тебя в известность. Ну а конец света, это круто - наверно от большого ума добавлено.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
ну спасибо за комплименты про ум ...
я не предлагал пользоваться значениями ... я сказал что константы mrOk и idOk одно и тоже ... в текущих средах они одинаковы и я привел вырезку из файла ... где идет их приравнивание ... если виндоус обновит их значение то и проги скоплированные придется переделывать т.к. они скомпилированы в той среде где прописаны именно те значения констант что были "типо до изменения их в винде" это раз ... два я не очень уверен что виндоус будет менять значения констант ... от этого может много прог вылететь ... поэтому и привел сравнение про конец света ... три... делфи когда обновляется тоже многое может изменить и как ты выразился "что ты будешь делать" ... ты ничего не предъявишь и будешь переделывать ... как с переходом с 7 на 10 если не ошибаюсь в версиях ... у многих проблема с кодировками пошла ... приходилось дописывать править проэкты ... Последний раз редактировалось caHek-2x, 10.01.2013 в 23:20. |