Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.01.2013, 20:19
DDim1000 DDim1000 вне форума
Прохожий
 
Регистрация: 28.12.2012
Сообщения: 18
Репутация: 10
Счастье Как из 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  
Старый 07.01.2013, 20:22
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Функция возвращает число. Его надо сохранить и заюзать.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 07.01.2013, 20:30
DDim1000 DDim1000 вне форума
Прохожий
 
Регистрация: 28.12.2012
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
... число. ... надо сохранить ...
А Как это число сохранить?
Ответить с цитированием
  #4  
Старый 07.01.2013, 20:32
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
iRes := MessageBox(...)
if iRes = ... then
 ...
или
Код:
if MessageBox(...) = ... then
 ...
Ваш К.О.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
DDim1000 (07.01.2013)
  #5  
Старый 07.01.2013, 21:18
DDim1000 DDim1000 вне форума
Прохожий
 
Регистрация: 28.12.2012
Сообщения: 18
Репутация: 10
Счастье

Цитата:
Сообщение от Bargest
Код:
if iRes = ... then

А что в место точек писать?
Ответить с цитированием
  #6  
Старый 07.01.2013, 21:23
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Гугл - это не круто, да? тыц тыц тыц (подзаголовок Return value)
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #7  
Старый 10.01.2013, 10:40
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

вот тебе пример только на основе месседждлг ... вообщем одна и таже зараза ...

Код:
    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  
Старый 10.01.2013, 10:44
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

а
Код:
  if MessageBox(Handle, '', '', MB_OKCANCEL)=IDOK then
Код:
  if MessageBox(Handle, '', '', MB_YESNO)=IDYES then
IDOK и IDYES из Windows. вообще:
Код:
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  
Старый 10.01.2013, 10:53
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

mrOk и idOk это одно и тоже вообщем ...
Ответить с цитированием
  #10  
Старый 10.01.2013, 12:16
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

С какого перепугу? Если константы совпадают, это не означает одно и тоже. Что в Windows, что в Дельфи эти константы однажды могут поменяться. И что тогда делать будешь?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 10.01.2013, 15:09
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
С какого перепугу?
Код:
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  
Старый 10.01.2013, 21:47
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Константы на то и константы, чтобы пользоваться их символьными именами а не значениями. Производитель всегда оставляет за собой право изменить их (и не только их) не поставив лично тебя в известность. Ну а конец света, это круто - наверно от большого ума добавлено.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 10.01.2013, 23:10
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

ну спасибо за комплименты про ум ...
я не предлагал пользоваться значениями ... я сказал что константы mrOk и idOk одно и тоже ... в текущих средах они одинаковы и я привел вырезку из файла ... где идет их приравнивание ...
если виндоус обновит их значение то и проги скоплированные придется переделывать т.к. они скомпилированы в той среде где прописаны именно те значения констант что были "типо до изменения их в винде"
это раз ...
два я не очень уверен что виндоус будет менять значения констант ... от этого может много прог вылететь ... поэтому и привел сравнение про конец света ...
три... делфи когда обновляется тоже многое может изменить и как ты выразился "что ты будешь делать" ... ты ничего не предъявишь и будешь переделывать ... как с переходом с 7 на 10 если не ошибаюсь в версиях ... у многих проблема с кодировками пошла ... приходилось дописывать править проэкты ...

Последний раз редактировалось caHek-2x, 10.01.2013 в 23:20.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter