Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c