Вниз
Скачать: 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.038 c
14-1101850656
Cheater
2004-12-01 00:37
2004.12.19
Отличие 2 кандидатов


3-1100764941
Руслана
2004-11-18 11:02
2004.12.19
Что то с Delphi... Понадобился QReport, оказалось что с закладках


4-1099436174
Nix
2004-11-03 01:56
2004.12.19
Координаты мыши в "чужом" приложении.


14-1101406105
Cerberus
2004-11-25 21:08
2004.12.19
lsass.exe


14-1101562175
ИМХО
2004-11-27 16:29
2004.12.19
Шевченко лидирует в опросе "Лучший футболист Европы"




   Наверх