Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.46 MB
Время: 0.058 c
6-1095078719
Comp
2004-09-13 16:31
2004.12.19
Трафик


1-1102145792
Юрик
2004-12-04 10:36
2004.12.19
Свернуть приложение


3-1100789541
serg9
2004-11-18 17:52
2004.12.19
Редактировать DBGrid подключен к интербазе через квери.


1-1101996630
the_ram
2004-12-02 17:10
2004.12.19
Путь к файлу


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский