Messagebox

Тема в разделе "Delphi - FAQ", создана пользователем Jeefo, 2 дек 2007.

Статус темы:
Закрыта.
  1. Jeefo

    Jeefo Гость

    потребовалось вывести на экран сообщение с вопросом, сохранять файл или нет. воспользовался MessageBox. я умею описывать кнопки, которые должны быть размещены на этом message box, умею описывать иконки. а вот как описать одновременно и иконку, и кнопки, никак не дойдет ;) в справке дельфи порылся, увы пример там только с кнопками. подскажите пожалуйсто, в частности мне требуется message box с MB_YESNO и MB_ICONQUESTION
     
  2. Jeefo

    Jeefo Гость

    пробовал просто перечислить через запятую после описания кнопок, то есть
    Application.MessageBox('Сохранить файл?', 'Сохранить?', MB_YESNO, MB_ICONQUESTION);
    но компилятор ругнулся на неверное количество параметров. пробовал написать слитно, через _, вобщем всеми способами ;) ошибка при компиляции. ну на болшее моей фантазии не хватило, полез в справку. в справке дельфи есть просто описание параметров message box, есть примерчик, но там походу только кнопка. поэтому обратился к вам
     
  3. Jeefo

    Jeefo Гость

    Для: sax_ol
    большоеспасибо за помощь
     
  4. root

    root Гость

  5. Jeefo

    Jeefo Гость

    Для: root

    встретил практически то же самое в Help -> Windows SDK в Delphi, но наверное не обратил внимания :) за ссылку спасибо, пожалуй добавлю в закладки, пригодится
     
  6. root

    root Гость

    Для: sax_ol
    незнаю на сколько прав я но это производная
    Код
    Код (Text):
    function TApplication.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;
    var
    ActiveWindow: HWnd;
    WindowList: Pointer;
    MBMonitor, AppMonitor: HMonitor;
    MonInfo: TMonitorInfo;
    Rect: TRect;
    FocusState: TFocusState;
    begin
    .......
    GetWindowRect(Handle, Rect);
    SetWindowPos(Handle, 0,
    MonInfo.rcMonitor.Left + ((MonInfo.rcMonitor.Right - MonInfo.rcMonitor.Left) div 2),
    MonInfo.rcMonitor.Top + ((MonInfo.rcMonitor.Bottom - MonInfo.rcMonitor.Top) div 2),
    0, 0, SWP_NOACTIVATE or SWP_NOREDRAW or SWP_NOSIZE or SWP_NOZORDER);
    end;
    WindowList := DisableTaskWindows(0);
    FocusState := SaveFocusState;
    if UseRightToLeftReading then Flags := Flags or MB_RTLREADING;
    try
    [b]Result := Windows.MessageBox(Handle, Text, Caption, Flags);[\b]
    finally
    .........
     
  7. root

    root Гость

    Для: sax_ol
    :)
     
  8. Ashot

    Ashot Гость

    Скажите пожалуйста, как сделать: у меня в программе есть кнопка, которая сохраняет файл. Если при закрытии файл не был сохранен, выскочит этот самый MessageBox, и как мне сделать, чтобы при согласии на сохраненние выполнялось то же, что и при нежатии на кнопку, не переписывая код?

    в смысле "нАжатии"
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Ashot+12:12:2007, 17:22 -->
    <span class="vbquote">(Ashot @ 12:12:2007, 17:22 )</span><!--QuoteEBegin-->что и при нежатии на кнопку, не переписывая код?
    [snapback]89631" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    никак, не переписівая
     
  10. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Сделать сохранение отдельной функцией, и вызывать эту функцию и в обработчике кнопки, и после выбора в MessageBox.
    Надеюсь, я правильно понял вопрос :rolleyes:
     
  11. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Для: sax_ol
    Кхм... На мой взгляд, это лечение зубов через сам знаешь что
     
  12. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-sax_ol+12:12:2007, 18:37 -->
    <span class="vbquote">(sax_ol @ 12:12:2007, 18:37 )</span><!--QuoteEBegin-->где тут оно самое?
    [snapback]89649" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Извини, если грубо сказал... В коде этого нет, просто сам подход не очень, ИМХО. Ты же в своих проектах так не делаешь
     
  13. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Вот я это и имел в виду
     
  14. Ashot

    Ashot Гость

    Большое спасибо. Пойду попробую. Глядишь - выйдет чего
     
  15. SNike

    SNike Гость

    Еще можешь посмотреть в сторону MessageDlg
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей