![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера подскажите как определить появилось информационное окно [D7, XP]
Aleks © (2006-01-22 16:32:00)Доброго времени суток, Мастера пожалуйста.
Есть программа которая при определённом событии выдаёт информационное окно, с одной кнопкой (ОК).
Как определить появилось информационное окно если да то нажать на кнопку.
Aleks (2006-01-23 16:51:00) [1]Какое есть :), но не чего противозаконного))
msguns (2006-01-23 16:23:00) [2]Очень подозрительное желание.
Aleks (2006-01-23 16:19:00) [3]Да совершенно верно ''другую программу''
Это две разные программы.
Одну из них и надо написать.
msguns (2006-01-23 13:47:00) [4]Прошу прощения, пропустил
"Необходимо написать другуюпрограмму которая бы.."
Leonid Troyanovsky (2006-01-23 13:18:00) [5]
> msguns © (23.01.06 13:08) [5]
> Леня, мне не совсем понятно, зачем нужно это мелькание непонятного
> окна.
WM_INITDIALOG приходит до показа. Т.е., при желании можно и
не показывать. Но, заказывали именно нажать.
> Не лучше ли отловить причину его появления ?.
Может быть, может быть.
--
Regards, LVT.
msguns (2006-01-23 13:08:00) [6]Леня, мне не совсем понятно, зачем нужно это мелькание непонятного окна.
Не лучше ли отловить причину его появления ?.
Leonid Troyanovsky (2006-01-23 12:51:00) [7]
> Aleks © (23.01.06 09:51) [2]
> Необходимо написать другую программу которая бы отслеживала
> появление информационного окна в программе INFO, и при появление
> его нажимала кнопку на нём.
Например, если окно - диалог
http://groups.google.com/group/fido7.ru.delphi/msg/e574b451a522c210
--
Regards, LVT.
msguns (2006-01-23 11:29:00) [8]Видимо, речь идет о "заглатывании" некоторого сообщения, которое выдается "системой" ?
Код в программе, приводящий к появлению этого сообщения, надо поместить в блок try.. except. "Свое" сообщение выдавать в секции except с помощью того же ShowMessage либо "молча" игнорировать, не показывая никаких формочек.
Aleks (2006-01-23 09:51:00) [9]Я извиняюсь, не верно задал свой вопрос.
Есть программа (например с именем INFO) которая при определённом событии выдаёт информационное окно, с одной кнопкой (ОК).
Необходимо написать другую программу которая бы отслеживала появление информационного окна в программе INFO, и при появление его нажимала кнопку на нём.
SergProger (2006-01-23 02:41:00) [10]function MessageDlg(const Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;
Отображает диалог типа DlgType с сообщением, указываемым параметром Msg, и с кнопками, указываемыми параметром Buttons. Параметр HrlpCtx определяет ID контекста справки.
Параметр DlgType может определять различные типы диалогов, содержащие следующие изображения: mtError, mtConfirmation, mtWarning, mtInformation, без изображения - mtCustom.
Параметр Buttons указывается множеством типа TMsgDlgDtn, которое определяет следующие кнопки: mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp, mbYesNoCancel, mbOKcancel, mbAbortRetryIgnore. Для того, чтобы указать несколько кнопок, следует использовать операцию + или перечислить их всех в квадратных скобках и через запятую. Например, mbOK+mbHelp или [mbOK,mbHelp].
Функция возвращает одно из следующих значений, определяющих выбранную пользователем кнопку: mrNone, mrAbort, mrYes, mrOK, mrRetry, mrNo, mrCancel, mrIgnore, mrAll.
Пример:
procedureTForm1.Button1Click(Sender: TObject);
begin
IfMessageDlg('Завершить приложение?',mtConfirmation,[mbYes,mbNo],0) = mrYes then begin
MessageDlg('Приложение завершено.',mtInformation,[mbOK],0);
Form1.Close;
end;
end;