西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → VCLSkin組件使用、Delphi界面美化圖文教程

VCLSkin組件使用、Delphi界面美化圖文教程

前往專題相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/3/30 11:23:53字體大小:A-A+

作者:佚名點擊:401次評論:1次標簽: Delphi

Borland Delphi8.0光盤版
  • 類型:編程工具大。83.1M語言:中文 評分:4.0
  • 標簽:
立即下載

VCLSkin是個方便而且功能強大的界面加強型組件包。只要在程序的任何一個窗體里加入SkinData組件,設(shè)置好相關(guān)屬性,則所有這個程序里出現(xiàn)的窗體(包括對話框)都具有設(shè)置好的界面風格。SkinStore組件又可以把一些皮膚文件預(yù)先存在里面,供SkinData隨時調(diào)用,表現(xiàn)出程序的多種風格。下面簡單地介紹它的用法。

1. VCLSkin綜述
VCLSkin 是一個能讓Delphi程序變得非常漂亮的控件包. 它允許允許軟件開發(fā)人員不用修改程序代碼便把軟件界面變得非常漂亮。它的美化支持窗體和控件和菜單。VCLSkin同時也提供了大量高質(zhì)量的skin(皮膚)讓你應(yīng)用于你的程序。
2. VCLSkin特點
VCLSkin 是一個用于讓用戶的程序界面更加漂亮的擴展控件。 它允許軟件開發(fā)人員不用修改源代碼就能讓他們的程序界面更加漂亮。一個標準的程序界面能在窗體放入VCLSkin控件后變得非常漂亮,而這公公需要幾分鐘的時間。
VCLSkin 能做些什么 ?
不像其它控件那樣,你需要修改源代碼才能構(gòu)建一個漂亮的界面, VCLskin 能讓Delphi的標準控件在一下子就變得非常漂亮,而這一切都不用修改源代碼。
VCLSkin 支持以下的窗體:

    * Delphi Form
    * MDIform . (normal,Maximized, MInimized)
    * Common Windows dialogs (Open/Save,Font,Print,Color).
    * MsgBox.
    * Exception MsgBox.

VCLSkin 支持的標準控件:

    * The title bar of TForm
    * The title bar buttons
    * The borders of Tform
    * Tbutton,TBitbtn.
    * Tradiobutton and Tcheckbox
    * Tmainmenu and Tpopupmenu
    * Toolbar buttons
    * TTabcontrol and TPageControl
    * T Progressbar
    * TStatusbar
    * TCustomCombox,Tcombobox, TDbCombobox
    * TPanel and TGroupbox
    * TMemo, TListBox,TListView,TTreeview
    * TRadioGroup , TDBRadioGroup.
    * TCustomGrid,TStringgrid,TDrawgrid,Tdbgrid.
    * Third party component, Enlib, AdvGrid ..
同時也支持大量的第三方控件。

3.安裝
你可以像安裝其它控件一樣安裝這夽控件,其實就這幾步:

   1. 解壓縮 Vclskin2.zip 到任意目錄
   2. 在 Delphi IDE 環(huán)境中選擇菜單 "File. Open...", 然后找到連接庫 vclskindX.dpk, 按著點擊Compile按鈕。
   3. 在 Environment 添加VCLSkin控件所在的路徑。
*****************************************************************************************

1. TSkinData
TSkinData 主要用于美化你的程序, 只要把TSkinData控件放下去,它就能自動美化所有窗體。
屬性
Active: 使用或取消對程序的美化。
DisableTag: 取消對某個特定的組件的美化; 把組件的Tag屬性設(shè)為99就行了。
(control.tag mod 100=disabletag)
SkinControls: 指定哪類組件能被美化.
SkinFile: skin(皮膚)文件的包含路徑的文件名,在運行時加載。
SkinStore: 在設(shè)計模式時儲備的skin文件.
SkinFormType: 能使用多種美化方式.
方法
LoadFromStream(Stream: TStream);
LoadFromFile(value:string);
LoadFromCollection(astore:TSkinStore;aindex:integer);
在運行時裝載skin文件.
UpdateSkinControl(fParent:Tform);
UpdateMenu(fParent:Tform);
在運行時組件創(chuàng)建時進行美化。
事件
OnFormSkin(Sender:TObject;aName:string;Var DoSkin:boolean);
OnFormSkin 事件的發(fā)生先于美化窗體, 如果 Doskin 為 true, Vclskin 就會美化這個窗體, 如果為false,Vclskin 就會跳過這個窗體. aName 是窗體的類名.
OnSkinChangned(Sender:TObject);
OnSkinChanged 發(fā)生在skin文件改變之后。

2. TSkinStore
TSkinStore 能讓你在設(shè)計模式時儲存多個skin文件。
TSkinData 能在運行時從 TSkinStore 裝載skin文件:
TSkinData.LoadFromCollection(astore:TSkinStore;aindex:integer),

3. 怎么美化程序界面
你可以在幾分鐘內(nèi)構(gòu)建一個漂亮的程序.
1 把 TSkindata 控件放在主窗體上。
2 設(shè)置 Skindata.skinstore 屬性 , 把skin文件儲存在你的程序中。
3 設(shè)置 Skindata.active = true
4 編譯運行你的程序。

4.   VCLSkin    FAQ

1 如果我的工程中有14個窗體,用不用每個窗體都放一個skin控件?
不用,你只需要放置一個Tskindata在你的主窗體,Vclskin就能自動美化每個窗體。
2 怎樣美化一個內(nèi)嵌的窗體 ?
Vclskin 不能自動美化內(nèi)嵌窗體,你要手動控制它。壓縮包中有一個"NestedForm"的例子,講的是在運行狀態(tài)美化內(nèi)嵌窗體、框架的。
3 怎樣美化動態(tài)控件 ?
你需要手動控制它。代碼如下:
control:=Tmycontrol.create(form1);
skindata1.UpdateSkincontrol(form1); // add this line to skin dynamic control.
4 怎樣美化依靠窗體 ?
Vclskin 支持?看绑w. 例程代碼如下:
procedure TDockableForm.FormShow(Sender: TObject);
begin

if MainForm.skindata1.active then MainForm.skindata1.skinform(handle);

end;

5 怎么美化動態(tài)的右鍵菜單 ?

例程代碼如下:
popup:=Tpopupmenu.create(form1);
..... add menuite
skindata1.UpdateMenu(form1); //add this line
popup.popup(x,y);

6 怎樣美化動態(tài)窗體 ?
Vclskin 可以美化動態(tài)窗體 , 但不能自動美化內(nèi)嵌窗體. 點擊這兒查看如何美化內(nèi)嵌窗體.

7 找不到文件 'c:\program files\borland\delphi7\SM\winskindata.pas'
Delphi7 試用版與Delphi7正式版的Dcu文件格式是不一樣的。
如果你使用的是正式版,你可以安裝一個演示包。vclskin2.zip.
如果你使用的是試用版,你可以安裝一個演示包。 D7trial.zip.

8 使用 FastReport 時,出現(xiàn)了“無效操作,控件沒有父窗體的的錯誤提示 ?
設(shè)置 TSkindata.skincontrols.xcFastReport = true 就可以解決這個問題。

9 使用 ReportBuilder 出現(xiàn)了“無效操作,控件沒有父窗體的錯誤提示?
你可以在 TSkindata.OnformSkin 事件中取消美化這個控件。 代碼如下 :
procedure Tform1.SkinData1FormSkin(Sender: TObject;
aName: String; var DoSkin: Boolean);
begin

//'TppPrintPreview' 就是要取消美化的窗體名稱。
if aName='TppPrintPreview' then doskin:=false;

end;

10 如何存取skin文件的顏色?
你可以借助 Tskindata.colors[] 屬性來存取顏色。
比如說 , 窗體的背景色是 : skindata.Colors[csButtonFace].
TShemeColor=(csText,csTitleTextActive,csTitleTextNoActive,
csButtonFace,csButtonText,
csButtonHilight,csButtonlight,csButtonShadow,csButtonDkshadow,
csSelectText,csSelectBg,csHilightText,csHilight,
csMenuBar,csMenuBarText,csMenuText,csMenubg,
csScrollbar,csTextDisable);
TShemeColors=array[csText..csTextDisable] of Tcolor;
Skindata.Colors: TShemeColors;

11 用戶能自定義那些可視化控件的外觀嗎?
你可以使用 skin builder自定義細節(jié).

12 怎樣取消美化某個窗體或控件?
設(shè)置 form.tag=99 取消 美化這個窗體。

13 如何在美化一個工程的窗體標題欄和菜單的風格?
設(shè)置 TSkindata.skincontrols.xcMainmenu = false

先建立一個新工程,加入一些常見的組件。運行結(jié)果的界面如圖9.18所示。

然后加入一個SkinData控件,把Active屬性設(shè)為True。再單擊SkinStore屬性的帶省略號的按鈕,選擇VCLSkin自帶的一個皮膚文件macos.skn。然后,編譯,運行,結(jié)果如圖9.19所示。

圖9.18 原始程序 圖9.19 加入VCLSkin組件后的效果

此處將程序界面從原來古板的樣貌變成Mac Os風格沒有用一行代碼,只設(shè)了SkinData的屬性。下面我們結(jié)合SkinStore組件講講程序中“換膚”的做法。

在窗體上加入一個SkinStore組件,在Object Inspector中單擊Store后面的帶省略號的按鈕,出現(xiàn)如圖9.20所示的窗體。

單擊圖標,新生成一個SkinStore,可以像上面設(shè)置SkinData的SkinStore那樣設(shè)置好它的屬性。創(chuàng)建多個SkinStore,存入多個皮膚。然后在窗體的按鈕上加入如下代碼(代碼的作用是當程序運行中按下Button1時,SkinData1會從SkinStore1中讀取第1個皮膚,并顯示出來):

procedure TForm1.Button1Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,1);

end;

類似地,加入以下代碼:

procedure TForm1.Button3Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,2);

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,3);

end;

“換膚”功能完成了。在程序中按下那幾個按鈕,程序界面的風格就會相應(yīng)改變。圖9.21示出了兩個例子。

圖9.21 VCLSkin的另兩種皮膚效果

VCLSkin的功能遠不止如此,我們挑幾個說一下:

· DataSkin有個DisableTag屬性。默認值是99。如果窗體上哪個組件的Tag值是99的話,DataSkin不會對這個組件起作用。

· 支持MDI窗體。

· 支持通用Windows對話框(打開,保存文件等)。

· SkinControls屬性可以設(shè)置對哪類控件起作用。

· 在一個程序中不同窗體可以有不同皮膚風格。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)