Новые книги

Рано или поздно продажи в любом бизнесе «замирают». Чтобы не сдать позиции конкурентам, необходимо ежедневно завоевывать и удерживать клиентов.

Активные продажи – двигатель бизнеса, а клиентская база – его главный актив. Применение методики холодных звонков, которая пошагово описана в этой книге, поможет вам успешно завоевывать клиентов и удерживать их. Простые инструменты – скрипты продаж и чек-листы, автоматизация и точечный контроль – сразу же докажут свою результативность.

Книга будет полезна топ-менеджерам и владельцам бизнеса, руководителям отделов продаж, начинающим менеджерам по продажам и опытным продавцам.
Вы приобрели нетбук? И теперь хотите понять, чем он отличается от привычного всем ноутбука? Тогда вы держите в руках действительно необходимую книгу. Прочитав ее, вы не только освоите все тонкости, относящиеся к работе с нетбуками, но и узнаете о том, как работать на компьютере. Вы научитесь выбирать мобильный компьютер и аксессуары к нему, узнаете, как установить и настроить операционную систему, научитесь пользоваться пакетом Microsoft Office, выясните, какие программы следует иметь на жестком диске, как защитить сам ноутбук и данные на нем, можно ли модернизировать нетбук и что делать в случае его поломки.

Вопрос и Ответ 36

Вопросы и Ответы


      36. Каким образом работать с иконками расположенными в панели задач Win'95?

      Функция работы с, так называемыми, нотификационными иконками, которые находятся в правой части панели задач Windows'95, определена в модуле ShellAPI:

      function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData): BOOL;

      В зависимости от переданного сообщения в параметре dwMessage, эта функция может добавлять, модифицировать или удалять иконки, данные о которых передаются в параметре lpData. Поддерживаются три сообщения:

      Сообщение

      Описание

      NIM_ADD Добавить иконку в панель задач.
      NIM_MODIFY Изменить параметры иконки в панели задач.
      NIM_DELETE Удалить иконку из панели задач.

      Для работы с нотификационными иконками необходимо правильно заполнить поля данных, которые содержатся в структуре TNotifyIconData:

      Поле

      Тип

      Описание

      cbSize

      DWORD

      Размер передаваемой структуры.

      Wnd

      HWND

      Указатель на главное окно программы.

      uID

      UINT

      Идентификатор иконки.

      uFlags

      UINT

      Устанавливаемые флаги:

      Флаг

      Назначение

      NIF_MESSAGE

      Посылать сообщение при щелчке мыши.

      NIF_ICON

      Отображать иконку в панели задач.

      NIF_TIP

      Показывать подсказку (Hint).

      uCallbackMessage

      UINT

      Номер сообщения посылаемого иконкой при щелчке на ней мышью.

      hIcon

      HICON

      Указатель на используемую иконку.

      szTip

      array [0..63] of WideChar

      Подсказка (Hint).

      Пример:

      ............

      uses ShellAPI;

      var NID :TNotifyIconData;

      ............

      {Добавление}
      procedure TForm1.bAddClick(Sender: TObject);
      begin

        {Установка необходимых значений в поля структуры TNotifyIconData}
        WITH NID DO BEGIN

          uFlags := NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
          cbSize := SizeOf(NID);
          uID := 123;
          Wnd := Handle;
          szTip := 'Пример подсказки'+#0;
          hIcon := Application.Icon.Handle;
          uCallBackMessage := WM_USER+10;

        END;
        {Добавление иконки в панель задач}
        IF Shell_NotifyIcon(NIM_ADD,@NID) THEN MessageBeep(0);

      end;

      ............

      {Изменение}
      procedure TForm1.bModifyClick(Sender: TObject);
      begin

        {Установка новых значений в поля структуры TNotifyIconData}
        WITH NID DO BEGIN

          szTip := 'Пример подсказки 1'+#0;
          hIcon := LoadIcon(0,IDI_ASTERISK);

        END;
        {Изменение иконки в панели задач}
        IF Shell_NotifyIcon(NIM_MODIFY,@NID) THEN MessageBeep(0);

      end;

      ............

      {Удаление иконки из панели задач}
      procedure TForm1.bDeleteClick(Sender: TObject);
      begin

        IF Shell_NotifyIcon(NIM_DELETE,@NID) THEN MessageBeep(0);

      end;

      ............

      {Процедура реакции на события передаваемые иконкой}
      procedure TForm1.WndProc(var M: TMessage);
      var CursorPos: TPoint;
      begin

        {Проверка на принадлежность сообщения иконке}
        IF M.Msg = WM_USER+10 THEN
        {Реакция на необходимые события}
        CASE M.LParam OF

          WM_RBUTTONUP :

            BEGIN

              GetCursorPos(CursorPos);
              PopupMenu1.Popup(CursorPos.X, CursorPos.Y);

            END;

          WM_LBUTTONDBLCLK :

            ShowMessage('Двойной щелчок мыши!');

        END;
        {Передача необработанных сообщений дальше}
        INHERITED WndProc(M);

      end;

      ............

      P.S. Использование нотификационных иконок в Delphi вызывает некоторые сложности, так как, необходимо прятать окно и оставлять на экране только иконку, а простое использование свойства Visible не дает необходимого результата. Выход из этого положения видится, только, в отказе от использования объекта TApplication и работе с функциями API напрямую. Данный подход хорош еще и тем, что эти программы постоянно находятся в памяти, а использование в них объектно-ориентированной библиотеки Delphi будет отнимать слишком много ресурсов.


...предыдущая страница следующая...
оглавление



"Вопрос и Ответ 36"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2024 .
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.006