Messagebox

  • Автор темы Jeefo
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

Jeefo

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

Jeefo

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

Jeefo

#5
Для: root

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

root

#6
Для: sax_ol
незнаю на сколько прав я но это производная
Код
Код:
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
.........
 
A

Ashot

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#9
<!--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]
никак, не переписівая
 
04.09.2006
2 566
3
#10
Сделать сохранение отдельной функцией, и вызывать эту функцию и в обработчике кнопки, и после выбора в MessageBox.
Надеюсь, я правильно понял вопрос :rolleyes:
 
04.09.2006
2 566
3
#11
Для: sax_ol
Кхм... На мой взгляд, это лечение зубов через сам знаешь что
 
04.09.2006
2 566
3
#12
<!--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]
Извини, если грубо сказал... В коде этого нет, просто сам подход не очень, ИМХО. Ты же в своих проектах так не делаешь
 
A

Ashot

#14
Большое спасибо. Пойду попробую. Глядишь - выйдет чего
 
Статус
Закрыто для дальнейших ответов.