Вниз
Скачать: CL | DM;

Schreduler   Найти похожие ветки 

 
ssergey   (2004-11-05 14:29) [0]

Пишу schreduler, сидит в трее и в заданное время выполняет архивирование базы.

Сообщения от пользователя обрабатываю с помощью компонента TRxTrayIcon.
Прблема в том, что
1) TRxTrayIcon тащит за собой модуль Forms и др.,
 в результате увеличиваетя объём занимаемой памяти.
2) Когда в трее кликаю на иконку и вылазит меню - останавливается
 основной цикл (на время активизации меню)

Опыт программирования на API небольшой.

Конструкция следующая:

program rBackup;

uses
Windows,  Menus,  Classes,  SysUtils,  ServerList,  ZIPDLL,
ZCallBck,  RXShell,  СВBurn;

{$R RBACKUP_ICON.RES}

type TMyTrayIcon = Class(TRxTrayIcon)
   private
     pm : TPopupMenu;
     procedure MyExit(Sender: TObject);
   public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
   end;

.......

begin

.....
ti := TMyTrayIcon.Create(Nil);

repeat
  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
  begin
    if (Msg.Message = WM_TIMER) then
    begin
      if Msg.wParam = AgentTimer then
      begin
        Msg.Message := 0;
        if not ServersListLocked then
        begin
          CheckCurrentDate(ServersList);
          CheckMemFile(ShareBuf, ServersList, BackupList);
          CheckBackupList(ServersList, BackupList);
        end;
      end
        else
      if (Msg.wParam = CDWriteList.CDWriteTimer) then
        PostThreadMessage(CDWriteList.ThreadID, Msg.Message, Msg.wParam, Msg.lParam);
    end
      else
    if Msg.Message <> WM_QUIT then                      
    begin
      TranslateMessage(Msg);
      DispatchMessage(Msg);
    end
      else
    begin
      PostThreadMessage(CDWriteList.ThreadID, WM_QUIT, 0, 0);
      CDWriteList.WaitFor;
      CDWriteList.Free;
    end;
  end
    else WaitMessage;
until Msg.Message = WM_QUIT;
.........

end.


 
Cobalt ©   (2004-11-05 19:43) [1]

Прикольно :)


 
Anatoly Podgoretsky ©   (2004-11-05 19:49) [2]

А вопрос есть?


 
GuAV ©   (2004-11-05 21:23) [3]

The taskbar notification area is sometimes erroneously called the "tray." (c) MSDN



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
4-1099323488
Alexey_Trofimov
2004-11-01 18:38
2004.12.19
Отключить мышь или чтоб его небыло видно


3-1101193679
first_may
2004-11-23 10:07
2004.12.19
Yaffil, сборка 885


1-1102058321
dream
2004-12-03 10:18
2004.12.19
Проблема с TreeView


8-1096008495
Darkwing
2004-09-24 10:48
2004.12.19
Встроенный в WinXP голос должен заговорить.


1-1102328759
grigory
2004-12-06 13:25
2004.12.19
Как запустить ехе скрыто?




   Наверх