|
导读湖南刘炼 现在软件的界面设计很流行“换肤”(SKIN),例如ICQ、Winamp、超级解霸等等。这种技术 的应用可以最大程度的彰显用户的个性,所以一经推出就大受欢迎。其实这种技术实现起来很... 湖南刘炼现在软件的界面设计很流行“换肤”(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. 怎么样,换肤简单吧(什么东西都是“难的不会,会的不难”)!你还可以在此基础上继续向窗 体上添加各种控件。因为这只是一个示例,所以就没有加那些。另外,严格得说,“换肤”指令应该 在菜单中(即MainMenu控件中,其实也很简单)。但为了没有“赚稿酬”之嫌,所以就用一个Button 应付了。 |
温馨提示:喜欢本站的话,请收藏一下本站!