自己对DELPHI学习的一点体会
源代码在线查看: 实现换肤 (2000年12月28日).txt
实现换肤 (2000年12月28日)
网友更新 分类:图形图象 作者: 飘(推荐) 推荐:飘 阅读次数:574
(http://www.codesky.net)
--------------------------------------------------------------------------------
现在软件的界面设计很流行“换肤”(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;*.bmp;*.ico|'+
'Bitmaps(*.bmp)|*.bmp|'+
'Jpeg Image File(*.jpg;*.jpeg)|*.jpeg;*.jpg|'+
'Icons(*.ico)|*.ico';
Success:=True;
IF OpenDialog1.Execute then
Begin
try
Image1.Picture.LoadFromFile(OpenDialog1.Filename);
except
Application.MessageBox('This file is not load!','Error!',MB_OK);
Success:=False;
end;
IF Success then SkinINI.WriteString('interface','skin',OpenDialog1.Filename);
//若换肤成功,将图片信息存进skin.ini文件中
End;
SkinINI.Free;
end;
end.