在窗体上放置一个TAnimate,Timer和一个Label 控件 ,想在查询数据库时,显示此窗体,播放‘查找’avi动画,同时Label控件显示 '正在初始化,请稍候...',我将窗体变成透明窗体,(在formcreate中),为什么能播放动画,但Label显示不出来?怎样才能将label显示出来?如果能让Label也透明就更好了。代码如下:procedure Tfrmwaiting.FormCreate(Sender: TObject);
var
hr :THandle;
begin
{hr:=CreateRectRgn(width-clientwidth,height-clientheight,width,height) ;
SetWindowRgn(handle,hr,true ) ;
}
setwindowlong(self.Handle,gwl_exstyle,getwindowlong(self.Handle,gwl_exstyle) or ws_ex_transparent);
label1.Caption:='正在初始化,请稍候';
self.Brush.Style:=bsclear;
self.BorderStyle:=bsnone;
ani.Brush.Style:=bsclear;end;procedure Tfrmwaiting.FormShow(Sender: TObject);
begin
label1.Visible:=true;
try
    ani.FileName := dmmain.GetInstallDir + 'FindFile.avi';
  except
    ani.CommonAVI := aviFindFile;
  end;
  ani.Active := True;
  
end;procedure Tfrmwaiting.Timer1Timer(Sender: TObject);//显示...
begin
case length(label2.Caption) of
 0: begin
     label2.Caption:='.';
    end;
    1:begin
      label2.Caption:=label2.Caption+'.';
    end;
    2:begin
      label2.Caption:=label2.Caption+'.';
    end;
    3:begin
      label2.Caption:='';
    end;
  end;
end;end.

解决方案 »

  1.   

    Label是实时画的,不是窗口,应该是和背景一样被去掉了
      

  2.   

    透明窗体:-------------------------unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
      private
        { Private declarations }
        procedure CMEraseBkgnd(var Message:TWMEraseBkgnd);Message WM_ERASEBKGND; 
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CMEraseBkgnd(var Message:TWMEraseBkgnd);
    begin
      Brush.style:=bsClear;{设置背景透明}
      Inherited;
    end;end.