湖南刘炼
现在软件的界面设计很流行“换肤”(SKIN),例如ICQ、Winamp、超级解霸等等。这种技术
的应用可以最大程度的彰显用户的个性,所以一经推出就大受欢迎。其实这种技术实现起来很简
单,下面就是我用Delphi 4.0换肤的例子。
首先,在窗体上放一个Image控件,一个Button控件和一个OpenDialog控件。
然后,修改属性。将窗体的Caption属性改为Test Skin Program;将Image控件的Align
属性改为alClient,将Stretch属性改为True;将Button控件的Caption属性改为Skin。其余属性不
变。
最后,输入代码吧!
unit mainform;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls,inifiles, jpeg, Menus;
//一定要将inifiles单元加入uses
type
TForm1 = class(TForm)
Image1: TImage;
OpenDialog1: TOpenDialog;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R*.DFM}
procedure TForm1.FormCreate(Sender: TObject);
Var
SkinINI : Tinifile;
SkinPicture : String;
begin
SkinINI := TiniFile.Create(''c:\my documents\skin.ini'');
SkinPicture:=SkinINI.ReadString(''Interface'',''skin'','''');
//将“皮肤”的
图片信息存储在SKIN.INI文件中。当然,你还可以将更多的信息存进该文件中。
//例如:SKIN.INI
//[interface]
// skin = c:\my documents\mylove.jpg
IF SkinPicture<>'''' then
Begin
try
Image1.Picture.LoadFromFile(SkinPicture);
except
end;
End;
SkinINI.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
SkinINI : Tinifile;
SkinPicture : String;
Success : Boolean; //指示换肤是否成功
begin
SkinINI := TiniFile.Create(''c:\my documents\skin.ini'');
SkinPicture:=SkinINI.ReadString(''Interface'',''skin'','''');
OpenDialog1.Filter:=''All Image File(*.jpg;*.jpeg;*.bmp;*.ico)|*.jpg;*.jpeg;*.b