帮自己制作一个,小的任务管理工具,让他有自动事务提醒功能。
1、定时提醒,指定一个时间点
2、每日提醒
3、每周几提醒
4、先是每周提醒,要到最终日期时每日提醒,甚至每小时提醒让程序运行在右下角那个地方。如果用定时器不停的去比较时间,又有很多个任务时是不是太浪费系统(cup)时间了

解决方案 »

  1.   

    ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
    █████████开机自动运行自身██████████
    〓〓〓〓〓Ghyghost(著名关心CSDN结贴率爱国代表)〓〓〓〓
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡uses registry;procedure autorun();
    Var
    ghyghost:TRegistry;
    begin
    ghyghost:=TRegistry.Create;
    ghyghost.RootKey:=HKEY_LOCAL_MACHINE;
    ghyghost.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True);
    ghyghost.WriteString('systemtray','"'+ExtractFilepath(ParamStr(0))+ExtractFilename(ParamStr(0))+'"');
    ghyghost.Free;
    end;
    上面为开机自动运行自身的程序,,,你时间方面的要求实现很简单
    就是“时间的比较”,
    如果系统时间和你设置的时间相同
    就执行不同的任务。。
    祝苗苗妹开开心心:)
      

  2.   

    你可以定义提醒的时间呀,然后在程序中用TTimer来进行比较,在托盘中显示的话要写代码的,或者用控件,如果让程序开机自动运行的话,要在注册表中写一些信息,就可以了,但是如果你的这个程序关闭的话将不能进行提醒了,你说对了,十分浪费系统资源的,我以前做的计划任务,最后还是因为这点最终失败了,你说的功能我做的都有,而且还有一个非常好的日历控件,可以显示农历,每一个节日都有,你要是能解决消耗系统资源的问题后请教教我好吗?  :)Gool Luck
      

  3.   

    参考:http://expert.csdn.net/Expert/topic/2110/2110416.xml?temp=.9436304
      

  4.   

    用timer控件不好,建议你找个第三方控件,我以前看到过有个时间控件,读取系统的时间,到秒,并且具有秒表的功能,呵呵,说得不好
      

  5.   

    有下图标
    ModifyIcon(aMessage:DWORD);
    var
      aszTip : string;
    begin
            aszTip:='任务管理';
            pnid.cbSize:=sizeof(_NOTIFYICONDATA);
            pnid.Wnd:=Handle;
            pnid.uID:=0;
            pnid.uFlags:=NIF_TIP Or NIF_ICON OR  NIF_MESSAGE;
            pnid.hIcon:=Application.Icon.Handle;
            strcopy(pnid.szTip,Pchar(aszTip));
           // pnid.uCallbackMessage:=WM_LBUTTONDOWN;
            pnid.uCallbackMessage:=WM_SYSTRAYMSG;
            Shell_NotifyIcon(aMessage,@pnid);
    end;
      

  6.   

    加上一个接受消息的行数:
    CONST
        WM_SYSTRAYMSG=WM_USER+100;
    ....  public
        { Public declarations }
        Procedure ModifyIcon(aMessage:DWORD);
        procedure SysMessage(var message: TMessage); message WM_SYSTRAYMSG;
        procedure AppOnMinimize(Sender: TObject);
      end;.....
    procedure TfForm.SysMessage(var message: TMessage);
    begin
      with Message do
      begin
        if LParam= WM_LBUTTONDOWN then
        begin
          Application.Restore;
          SetForegroundWindow(Handle);
          Showwindow(Application.Handle, SW_NORMAL );
          Showwindow(Application.Handle, SW_SHOW);
        end;
      end;
    end;
    procedure TfForm.FormCreate(Sender: TObject);
    begin
            ModifyIcon(NIM_ADD);
    end;