第1章 界面开发实例

实例1 实时的透明窗体

    

界面是程序的面孔,很多应用程序的界面给用户留下了深刻的印象,如FlashGet的半透明窗体。本实例说明如何利用Delphi制作一个Windows 2000下的透明窗体。

在窗体上分别添加一个TImageTTrackBar组件,前者用来显示一幅图片,后者用来调节窗体的透明度。添加组件后的窗体如图1-1所示。

1-1  添加组件后的窗体

为了达到实时的透明效果,在程序运行过程中用户可以通过调节TTrackBar组件上滑块的位置来设置窗体的透明程度。为此需要设置窗体的AlphaBlend属性为True,然后添加如下处理TTrackBar组件上滑块位置变化的代码:

procedure TfrmMain.TrackBar1Change(Sender: TObject);

begin

    self.AlphaBlendValue:=self.TrackBar1.Max-self.TrackBar1.Position;

end;

AlphaBlend属性为True,通过改变窗体的AlphaBlendValue属性值即可设置窗体的透明度。

程序代码如下:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ComCtrls, ExtCtrls;

type

  TfrmMain = class(TForm)

    Image1: TImage;

    TrackBar1: TTrackBar;

    procedure FormCreate(Sender: TObject);

    procedure TrackBar1Change(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  frmMain: TfrmMain;

implementation

{$R *.dfm}

 

procedure TfrmMain.FormCreate(Sender: TObject);

begin

    self.AlphaBlend:=true;

    self.TrackBar1.Min:=0;

    self.TrackBar1.Max:=255;

    self.TrackBar1.Frequency:=25;

end;

 

procedure TfrmMain.TrackBar1Change(Sender: TObject);

begin

    self.AlphaBlendValue:=self.TrackBar1.Max-self.TrackBar1.Position;

end;

end.

选择“File|Save All”选项,在弹出的对话框中选择合适的文件名保存文件。然后按F9键运行程序,运行结果如图1-2所示。

值得注意的是,本程序在Windows 98环境下不能够得到透明效果,因为AlphaBlend属性和AlphaBlendValue属性只支持Windows 2000及以后版本的操作系统。通过这个实例,读者不但可以体验到Delphi的强大功能,还可以为自己的应用程序界面加上看起来很神奇的透明效果。

1-2  程序运行结果