Почему не происходит событие TApplication.OnHelp?
От: surovi  
Дата: 21.08.04 08:13
Оценка:
Не срабатывает событие TApplication.OnHelp
Подскажите пожалуйста в чем проблема?

В случае когда для формы включено свойство
BorderIcons := BorderIcons + [biHelp];
и выключены
BorderIcons := BorderIcons — [biMinimize, biMaximize];
то событие OnHelp происходит, но при этом видна кнопка biHelp,
а это кнопка НЕ НУЖНА.

Вот какие значения BorderIcons имеет моя форма:
BorderIcons := [biSystemMenu,biMinimize,biMaximize];

Вот пример кода программы:
function HtmlHelp(
  hwndCaller: HWND;
  pszFile: LPCSTR;
  uCommand: UINT;
  dwData: DWORD): HWND; stdcall; external 'HHCtrl.ocx' name 'HtmlHelpA';

type
  TFMain = class(TForm)
  private
    function ApplicationOnHelp(
      Command: Word; 
      Data: Longint; 
      var CallHelp: Boolean): Boolean;
  end;

procedure TFMain.FormCreate(Sender: TObject);
begin
  Application.OnHelp := ApplicationOnHelp;
end;

function TFMain.ApplicationOnHelp(Command: Word; Data: Integer;
  var CallHelp: Boolean): Boolean;
const
  HH_HELP_CONTEXT = $0F;
begin
  CallHelp := False;
  Result := False;

  if (csDestroying in ComponentState) then
    Exit;

  Result := Boolean(HtmlHelp(GetDesktopWindow(),
    PChar(ChangeFileExt(Application.ExeName, gstrEXT_CHM)),
    HH_HELP_CONTEXT, Data));
end;


Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.