请问如何做出象msn的那种有信息来的那种窗口弹出效果呢?(delphi)

解决方案 »

  1.   

    推荐一篇文章:
    http://www.microsoft.com/china/community/TechZone/TechArticle/TechDoc/vcsharpmsn.asp
      

  2.   

    kingcom:我操死你妈!不要以为只有你会用马甲!我也会!不要以为你多牛,我鼠标一点就封了你!
      

  3.   

    TO: glassesboy 谢谢了,给我一份吧.   [email protected] THANK YOU
      

  4.   

    我也正需要啊,能不能也给我看看呢?![email protected]谢谢了
      

  5.   

    to glassesboy(glassesboy) 
    给我一份,谢谢啦 [email protected]
      

  6.   

    自己根据需要改写拉!unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Timer1: TTimer;
        procedure Button1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      waitTime,oldtop,oldleft:integer;
    implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
      oldtop:=form1.Top ;
      oldleft:=form1.Left ;
      form1.Left:=screen.Width-form1.Width;
      form1.Top:=screen.Height ;
       timer1.Interval:=5;
      timer1.Enabled:=true;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     if waittime<100 then
       form1.Top:=form1.Top-2;
     if (waittime>500) and (waittime<600) then
           form1.Top:=form1.Top+2;
      waittime:=waittime+1;
     if waittime>600 then
       begin
        timer1.Enabled:=false;
        form1.Top:=oldtop;
        form1.Left:=oldleft;
        waittime:=0;   end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      waittime:=0;
    end;
      

  7.   

    请也给我一份
    先谢了
    [email protected]
      

  8.   

    tcpc2003(tcpc)、[email protected][email protected]、 zyyjc() :发给你们了收吧
      

  9.   

    也给我一份吧,[email protected]  谢拉!
      

  10.   

    这可能是你想要的
    procedure ShowWindow(WHandle:HWND;DispMode:Integer);
    var Flag:array [0..11] of Int64;
    begin
      if DispMode=1 then begin
        //显示
        Flag[0]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_VER_POSITIVE+AW_SLIDE;//左上至右下     滑行效果
        Flag[1]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_VER_POSITIVE+AW_SLIDE;//右上至左下     滑行效果
        Flag[2]:=AW_ACTIVATE+AW_CENTER+AW_SLIDE;                      // 中心向四周  滑行效果
        Flag[3]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_SLIDE;                //左 至右     滑行效果
        Flag[4]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_SLIDE;                //右至左     滑行效果
        Flag[5]:=AW_ACTIVATE+AW_VER_POSITIVE+AW_SLIDE;                //上至下     滑行效果
        Flag[6]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_VER_POSITIVE+AW_BLEND;//左上至右下     淡入淡出
        Flag[7]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_VER_POSITIVE+AW_BLEND;//右上至左下     淡入淡出
        Flag[8]:=AW_ACTIVATE+AW_HOR_POSITIVE+AW_BLEND;                //左至右     淡入淡出
        Flag[9]:=AW_ACTIVATE+AW_HOR_NEGATIVE+AW_BLEND;                //右至左     淡入淡出
        Flag[10]:=AW_ACTIVATE+AW_VER_POSITIVE+AW_BLEND;                //上至下     淡入淡出
        Flag[11]:=AW_ACTIVATE+AW_CENTER+AW_BLEND;                      //中心向四周  淡入淡出
      end;
      if DispMode=2 then begin
        //关闭
        Flag[0]:=AW_HIDE+AW_HOR_POSITIVE+AW_VER_NEGATIVE+AW_SLIDE;//左上至右下     滑行效果
        Flag[1]:=AW_HIDE+AW_HOR_NEGATIVE+AW_VER_NEGATIVE+AW_SLIDE;//右上至左下     滑行效果
        Flag[2]:=AW_HIDE+AW_CENTER+AW_SLIDE;                      // 中心向四周  滑行效果
        Flag[3]:=AW_HIDE+AW_HOR_POSITIVE+AW_SLIDE;                //左 至右     滑行效果
        Flag[4]:=AW_HIDE+AW_HOR_NEGATIVE+AW_SLIDE;                //右至左     滑行效果
        Flag[5]:=AW_HIDE+AW_VER_NEGATIVE+AW_SLIDE;                //上至下     滑行效果
        Flag[6]:=AW_HIDE+AW_HOR_POSITIVE+AW_VER_NEGATIVE+AW_BLEND;//左上至右下     淡入淡出
        Flag[7]:=AW_HIDE+AW_HOR_NEGATIVE+AW_VER_NEGATIVE+AW_BLEND;//右上至左下     淡入淡出
        Flag[8]:=AW_HIDE+AW_HOR_POSITIVE+AW_BLEND;                //左至右     淡入淡出
        Flag[9]:=AW_HIDE+AW_HOR_NEGATIVE+AW_BLEND;                //右至左     淡入淡出
        Flag[10]:=AW_HIDE+AW_VER_POSITIVE+AW_BLEND;                //上至下     淡入淡出
        Flag[11]:=AW_HIDE+AW_CENTER+AW_BLEND;                      //中心向四周  淡入淡出
      end;
      Randomize;
      AnimateWindow(WHandle,500,Flag[Random(6)]);
        {Windows下有一个函数AnimateWindow,在Delphi自带的Win32 API Help中是找不到的.
        你可以在Delphi的编辑器中输入windows.等待代码向导出来,继续输入AnimateWindow就能看到
        确实是存在的Win32 API,它的功能是在显示或者关闭窗体的时候产生动画,如从左向右开屏,从中心向周围开屏等.
        语法:function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; stdcall;
        参数:hWnd : 想要显示动画窗体的句柄
         dwTime : 动画时间数,单位毫秒
         dwFlags : 显示方式,取值如下定义
         1.AW_HOR_POSITIVE = $00000001; // 从左向右开屏
         2.AW_HOR_NEGATIVE = $00000002; // 从右向左开屏
         3.AW_VER_POSITIVE = $00000004; // 从上向下开屏
         4.AW_VER_NEGATIVE = $00000008; // 从下向上开屏
         5,AW_CENTER = $00000010;       // 从中心向四周扩展,在关闭动画中则为从四周向中心收缩
         6.AW_HIDE = $00010000;         // 关闭时候与前面的定义组合使用,如AW_HIDE or AW_CENTER
         7.AW_ACTIVATE = $00020000;     // 与1-5组合,开屏使用
         8.AW_SLIDE = $00040000;        // 与1-5 + 6/7 组合,产生滑行效果
         9.AW_BLEND = $00080000;        // Win2000下使用,淡入淡出效果}
    end;procedure TFm_Ckcx.FormShow(Sender: TObject);
    begin
      ShowWindow(self.Handle,1);
    end;
      

  11.   

    belllab(bell) :
    AnimateWindow是做不到MSN Messager那样的变速运动的窗口的
      

  12.   

    glassesboy(glassesboy):MSN Messager的窗口是变速运动吗?我觉得是匀速运动吧!
      

  13.   

    能否发给我一份:[email protected]谢过