想作一个想Foxmail收信后在任务栏右下方缓缓升起的窗口,试过用API函数中那个An..Window 和定时器,但是都达不到那个自然的效果。寻求完美的解决方案。

解决方案 »

  1.   

    利用Timer控件的onTimer事件,在该事件中改变窗口的位置,应该可以做到的!
      

  2.   

    解决了,参考了cnPack中的CnFoxmailMsgFrm.pas 文件,修改一下,用上了。
    跟foxmail一模一样的。
      

  3.   

    CnPack简介
    CnPack是什么? 
    1、CnPack是一个仍在筹划开发中的Delphi第三方开发包:-) ,它的全称是 CnPack For Delphi 开发包。2、与一般的控件包不同的是,CnPack开发包除了包括大量的组件外,还包括用于IDE扩展的专家包、大量的通用窗体库、数据桌面、组件编写工具等辅助开发工具,以及一个版本控制系统等等与Delphi软件开发相关的代码、文档和程序。3、CnPack由网上的自愿者们组成的CnPack开发组制作,是一个典型的网上合作开发项目。4、CnPack是一个完全符合GNU LGPL协议的自由程序库。5、CnPack开发组将用2002年全年甚至更长的时间来完成这一开发计划。 
     
    为什么要开发CnPack呢? 
    Delphi以其完全开放的VCL体系吸引了很多的程序员,通过使用第三方的代码和控件,可以极大的提高软件开发效率。然而,在大量的优秀控件中,由中国程序员制作的却少得可怜。除去商业控件包不说(恕小弟识浅,哪位朋友见过国产的商业控件包吗?),国内有多少控件包可以和RxLib、GExpert、FastReport、FlatStyle等这些免费、共享包相提并论?CnPack的计划就是集中大家的力量制作一个真正优秀的大型开发包,同时提供大量的代码和文档让Delphi程序员参考和学习。我想,不需要我做太多解释,大家也能理解开发CnPack的意义:1、对程序员用户而言,首先,开发包所有文档、注释都将使用中文编写,这对很多E文不好的程序员来说绝对是一件好事。其次,技术支持和学习交流将变得方便,有多少人可以从国外获得控件包的技术支持呢?当然,前面两点国产优势都是次要的,CnPack的设计目标是一个真正功能强大、实用的开发包,能帮助程序员更方便地做出好的软件。 
    2、对开发人员而言,通过开发,可以对Delphi的系统结构有更深的认识,并从中学到大量的经验和技巧,而多人协作开发的经验亦是非常有用。更重要的是,我们将以自己的实际行动证明,中国的Delphi程序员并不比外国的差。
     
    CnPack包括些什么内容? 
    在开发计划中,CnPack包括了Delphi程序设计相关的很多方面:1、不可视工具组件包。2、用户界面控件包。3、符合中国人使用习惯的数据库、报表组件包。4、网络通讯组件包。5、本地化、扩展的属性、组件编辑器。6、IDE扩展专家工具包。7、CnVCS版本控制系统。8、本地化、功能强大的数据桌面、资源编辑器、组件编写工具等辅助开发工具。9、大量可重用的窗体模板库。而在正式的开发中,将根据具体情况进行调整,详细的内容参见CnPack官方网站中相应部分。
     
      

  4.   

    哎这么多人讲空话,我把最近给公司做的公开吧,很简单的procedure TfrmMsg.tmrMsgTimer(Sender: TObject);
    var
       iTop:integer;
    begin
       Application.ProcessMessages;
       iTop:=Top;
       if iFlag=0 then begin
           if Top>(Screen.WorkAreaHeight-Height) then begin
              Dec(iTop,15);
              Top:=iTop;
           end else begin
              Inc(iFlag);
           end;
       end
       else if iFlag=1 then begin
           Sleep(3000);
           Inc(iFlag);
       end
       else if iFlag=2 then begin
           if Top<Screen.WorkAreaHeight then begin
               Inc(iTop,15);
               Top:=iTop;
           end else begin
               Close;
           end;
       end;
    end;