怎样用delphi实现skin技术? i expect u can get its key...sorry..i donot know about it... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 I will give you my source code on this Saturdat!!!Please wait and give me your points. 用这个控件可以完成http://alin.heha.net/moydown/component/collformd5.zip 错了,应是http://alin.heha.net/moydown/component/coolformd5.zip 又错了,SORRY,http://alin.heha.net/mydown/component/coolformd5.zip 以form背景为例:启动时查找指定文件名的bmp文件,如果存在且尺寸等正确的话,则读入并绘于form的Canvas上。其它的(按钮、文字)也是一样的。 有源码呢另:Windows 有个函数,是专门对不规则窗体的,SKIN只是一种很简单的方法,我的主页上有一个我写的程序,你可以看看,很简单,像WINAMP那样就太简单了,它是规则的窗体.要想做出好的来,如中间是透明的,且鼠标可以在其中点后面的东西,这就要用到掩码图形等,我给你的控件就很好地解决了,源码很容易看懂的 to alin: 你的网址在哪? 就跟PoolD说的那样,像WINAMP就是那样做的,不过要复杂一点,要将图片的事件与位置关联起来,更复杂的如一些特别的MP3播放器,像手机模样的,像圆盘样的等等,就要特殊处理了,我给你的控件就能处理.我的主页在http://alin.heha.net,应该猜得到的吧^_^ 我这儿有一篇文章关于delphi换肤的文章: 首先,在窗体上放一个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. 算了我来说几句用coolform动态生成form和button就可以实现skin如果是winamp,有现成控件我修改的版本马上就会出现在我的站点示范程序http://musicmate.myetang.com/ ★★★ 高分求助!我的idHttp为什么不能提交数据到表单? 大哥大姐看看吧 delphi调用vc dll的问题 用户管理功能设计问题 我数据库里面的值都是一些整数,我想把这些数在取出时,转成带小数点形式的,怎么转呢 关于经韬大哥的QQ消息发送接收器疑问,太神奇了~ 想知道的快来~ 倾家荡产,高分相送 送分100分:关于TYPE的几个问题。 关于Build号的建立问题! free掉的组件如何再次使用??? talbe 的记录数怎么获取啊? finditem的问题 在报表中用不同的颜色代表不同类型的记录(急、急、急) 急! ADO Master/detail表的更新问题
Please wait and give me your points.
启动时查找指定文件名的bmp文件,如果存在且尺寸等正确的话,则读入并绘于form的Canvas上。
其它的(按钮、文字)也是一样的。
另:Windows 有个函数,是专门对不规则窗体的,SKIN只是一种很简单的方法,我的主页上有一个我写的程序,你可以看看,很简单,像WINAMP那样就太简单了,它是规则的窗体.要想做出好的来,如中间是透明的,且鼠标可以在其中点后面的东西,这就要用到掩码图形等,我给你的控件就很好地解决了,源码很容易看懂的
首先,在窗体上放一个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.
我来说几句
用coolform动态生成form和button就可以实现skin
如果是winamp,有现成控件
我修改的版本马上就会出现在我的站点
示范程序
http://musicmate.myetang.com/