Сделай сам: IE и Delphi – вместе веселее! | Программирование на Delphi и не только

Реклама на сайте

Установите их в помещении или же на улице - камеры видеонаблюдения для охранных целей.
Купить планшетный компьютер недорого

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Сделай сам: IE и Delphi – вместе веселее!

28.01.2008 от Иван Ширко

Страница: 1 2 3 4 5 6

//процедура обработки нажатия "горячих" клавиш
procedure hotykey(var msg:TWMHotkey); message WM_HOTKEY;

Запишите процедуру для события OnCreate формы:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //заполняем информацию об иконке
  with TrayIconData do
  begin
    cbSize := SizeOf(TrayIconData);
    Wnd := Handle;
    uID := 0;
    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
    uCallbackMessage := WM_ICONTRAY;
    hIcon := application.icon.handle;
    szTip := 'My TrayIcon!';
  end;
  //добавляем иконку в SysTray
  Shell_NotifyIcon(NIM_ADD, @TrayIconData);
  //регистрируем "горячие" клавиши Alt+P
  RegisterHotKey(handle, 1,.MOD_Alt, 80);
  //регистрируем "горячие" клавиши Alt+Q
  RegisterHotKey(handle, 2,.MOD_Alt, 81);
  //регистрируем "горячие" клавиши Alt+R
  RegisterHotKey(handle, 3,.MOD_Alt, 82);
end;

Теперь процедура при уничтожении формы:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  //удаляем иконку
  ShellApi.Shell_NotifyIcon(NIM_DELETE, @TrayIconData);
  //удаляем "горячие" клавиши
  UnRegisterHotKey(handle, 1);
  UnRegisterHotKey(handle, 2);
  UnRegisterHotKey(handle, 3);
end;

//обработка сообщений от иконки
procedure TForm1.TrayMessage(var Msg: TMessage);
var
  p: TPoint;
begin
  case Msg.lParam of
  //если нажата правая кнопка мыши,
    WM_RBUTTONDown, WM_RBUTTONDBLCLK:
    begin
      SetForegroundWindow(handle);
      GetCursorPos(p);
      //то показываем наше меню в текущей позиции курсора
      popupmenu1.Popup(p.x,p.y);
    end;
  end;
end;

//нажатие на "горячие" клавиши
procedure TForm1.hotykey(var msg:TWMHotkey);
var
  n: Integer;
begin
  n := msg.HotKey;
  //если нажали Alt+P, то закрываем все окна IE
  if (n=1) then CloseAllIE_2;
  else
    //если нажали Alt+Q, то переход "Вперёд"
    if (n=2) then NextPage
    else
      //если нажали Alt+R, то переход "Назад"
      if (n=3) then PrevPage;
end;

На этом создание программы, которая расширяет функциональность браузера Internet Explorer, завершено. Мы научились:
1) работать с "горячими" клавишами;
2) помещать иконку на Системную панель;
3) работать с сообщениями и окнами.
На сегодня всё.

Иван Ширко
ishyrko@gmail.com

Страница: 1 2 3 4 5 6

Рубрики: Delphi, Сделай сам |

Один комментарий

  1. Око пишет:

    Что-то так не выходит ничего

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.