На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Системный tray
    Подскажите пожалуйста, как мне создать программу, которая загружалась бы в системный tray так, чтобы на экране была бы видна ее иконка? (так у иконки выбора языка клавиатуры).
      Могу прислать компонент, который помещает иконку в систрей. Если надо, пиши на мыло.
        Как любят писать в ФИДО ...
        Ответ, свожиться к однозначному использовании библиотеки rxlib
        Искать можно на www.torry.ru
          ---Надеюсь понятно-------
          unit Unit1;
          interface
          uses
          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
          Menus, StdCtrls,
          ShellApi {Содержит ф-ю Shell_NotifyIcon};
          const WM_MyMessage = WM_USER+$DCB;
          {Сообщение, которое посылать. Значение должно быть WM_USER+ ????}
          type
          TForm1 = class(TForm)
          PopupMenu1: TPopupMenu;
          Restore1: TMenuItem;
          bHide: TButton;
          procedure bHideClick(Sender: TObject);
          procedure Restore1Click(Sender: TObject);
          private
          { Private declarations }
          procedure OnMyMessage(var Msg: TMessage); message WM_MyMessage;
          public
          { Public declarations }
          end;
          var
          Form1: TForm1;
          implementation
          {$R *.DFM}
          procedure TForm1.bHideClick(Sender: TObject);
          var nid: TNOTIFYICONDATA;
          begin
          nid.cbSize:=SizeOf(nid); {Размер записи}
          nid.Wnd:=Handle; {Хэндл окна}
          nid.uID:=0; {Идентификатор значка.
          Нужен для разделения нескольких своих значков в трее}
          nid.uFlags {Флаги, говорящие, что в записи передано}
          := NIF_ICON {В записи был передан значек}
          +NIF_MESSAGE {передано новое значение для сообщения}
          +NIF_TIP {передано новое значение TIP'а}
          ;
          nid.uCallbackMessage:=WM_MyMessage; {Если есть флаг NIF_MESSAGE,
          то посылать теперь это
          сообщение}
          nid.hIcon:=Application.Icon.Handle; {Если есть NIF_ICON, то значек
          поменять на этот}
          nid.szTip:='Если есть NIF_TIP, то подсказка будет такая';
          Shell_notifyicon(NIM_ADD, @NID);
          {NIM_ADD означает добавить значек. Тогда нужно флаги ставить все,
          и передавать все параметры}
          {NIM_DELETE означает удалить значет. Флаги надо ставить 0, и
          передавать только uID и cbSize}
          {NIM_MODIFY означает обновить значек. Флаги ставишь те, что надо,
          и соответственно передаешь, что надо}
          Hide;
          end;
          procedure TForm1.OnMyMessage(var Msg: TMessage);
          var p: TPoint;
          begin
          GetCursorPos(P);
          if Msg.LParam=WM_RBUTTONUP then
          PopupMenu1.Popup(P.X, P.Y);
          end;
          procedure TForm1.Restore1Click(Sender: TObject);
          var nid: TNOTIFYICONDATA;
          begin
          Show;
          nid.cbSize:=SizeOf(nid);
          nid.Wnd:=Handle;
          nid.uID:=0;
          nid.uFlags:=0;
          Shell_notifyicon(NIM_DELETE, @NID);
          end;
          end.
            Могу посоветовать сайт по этой теме: pascal.times.lv
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0281 ]   [ 17 queries used ]   [ Generated: 19.04.24, 11:05 GMT ]