Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сообщения Windows [D7]


Tornado ©   (2004-04-02 08:04:00) 

Подскажите пожалуйста как обработать сообщение WM_Help которое возникает при нажатии на кнопку HELP в окне диалога MessageDlg('Сообщение', mtInformation, [mbOK, mbHelp], 0)? Спасибо.


Игорь Шевченко   (2004-04-02 10:16:00) [1]

" Use the HelpCtx parameter to specify the context ID for the help topic that should appear when the user clicks the help button or presses F1 while the dialog is displayed."

По нажатию на кнопку Help вызывается процедура из Dialogs.pas

procedure TMessageForm.HelpButtonClick(Sender: TObject);
begin
 Application.HelpContext(HelpContext);
end;

Для того, чтобы среагировать на это событие, нужно обрабатывать событие Application.OnHelp, например так (учитывая, что на главной форме имеется компонент ApplicationEvents)

function TfMain.ApplicationEventsHelp(Command: Word; Data: Integer;
 var CallHelp: Boolean): Boolean;
begin
 CallHelp := true;
 Result := true;
end;


Романов Р.В.   (2004-04-02 09:46:00) [2]

нет это из другой оперы


Tornado   (2004-04-02 09:03:00) [3]

>>> Романов Р.В. ©   (02.04.04 08:53) [1]

Код приведенный Вами это будет реакция именно на нажатие кнопки HELP в MessageDlg?


Романов Р.В.   (2004-04-02 08:54:00) [4]

Извеняюсь не внимательно прочитал вопрос.


Романов Р.В.   (2004-04-02 08:53:00) [5]

TForm1 = class(TForm)
...
private
procedure WMHelp(var Message: TWMHelp); message WM_HELP;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMHelp(var Message: TWMHelp);
var
Control: TWinControl;
begin
Control := FindControl(Message.HelpInfo^.hItemHandle);
if Assigned(Control) then
ShowMessage(Control.Name);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо