我想创建一个欢迎的窗口,要求窗口渐变.
等渐变完以后,关闭欢迎窗口并打开主窗口.
不能在DPR文件使用sleep.使用后无法渐变.
请教各位大侠.

解决方案 »

  1.   

    开个线程,之后线程中使用API内置高精度Timer或者就用普通的Timer来实现.
    我很久没用Delphi了,记得窗体有个透明度的属性可以考虑改改那个
      

  2.   

    我觉得可以这样做,在FormCreate的事件中触发一个OnTimer事件,在OnTimer事件中再改变窗体的颜色就行了!好长时间未用Delphi了!
      

  3.   

    欢迎窗口:
    Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm2 = class(TForm)
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        i : integer;
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Timer1Timer(Sender: TObject);
    begin
      if i > 18 * 3 then
      begin
        Timer1.Enabled := false;
        ModalResult := mrYes;
      end;  Inc(i);
      AlphaBlendValue := AlphaBlendValue + 5;
    end;procedure TForm2.FormCreate(Sender: TObject);
    begin
      i := 0;
      AlphaBlend := true;
      AlphaBlendValue := 5;
    end;end.--------------DPR-----------------
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;  Application.CreateForm(TForm1, Form1);
      Form1.Hide;
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal;
      Form1.Show;  Application.Run;
    end.
      

  4.   

    e5022(helpid) 说的对,在delphi7中窗口有一个属性设置透明度,最大值是255,最小值是0,你搞个timer让这个属性从255减到0就可以了,属性名字记不得了,不过form里就那么几个属性,试一下就知道了。该属性的默认值是255,很容易找的。
      

  5.   

    就是 flyinwuhan(制怒·三思而后行)  的程序中的哪个AlphaBlendValue属性。
      

  6.   

    啊?怎么我的D6也有AlphaBlendValue属性
      

  7.   

    如果你是2000,可以用:
      AnimateWindow (Handle, 2000, AW_CENTER or AW_HIDE or AW_SLIDE);