線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2121
推到 Plurk!
推到 Facebook!

动态皮肤

尚未結案
51819
一般會員


發表:6
回覆:8
積分:2
註冊:2007-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-08 18:43:11 IP:116.60.xxx.xxx 訂閱
skin.DLL
[code delphi]
library skin;
uses
SysUtils,
Classes;

{$R *.res}
{$R Skin2.RES}

function GetSkin(ASkinName: PChar; var Stream: TMemoryStream): Boolean;stdcall;
var
F: TResourceStream;
begin
try
F := TResourceStream.Create(HInstance, ASkinName, 'Skin');
try
Stream.CopyFrom(F, F.Size);
finally
F.Free;
F := nil;
end;
Result := True;
except
Result := False;
end;
end;

function GetSkinsName(var Strs: TStrings): Boolean;stdcall;
var
F: TResourceStream;
F1: TStringStream;
begin
try
F := TResourceStream.Create(HInstance, 'SkinsName', 'TEXT');
F1 := TStringStream.Create('');
try
F1.CopyFrom(F, F.Size);
Strs.Text := F1.DataString;
finally
F.Free;
F := nil;
F1.Free;
F1 := nil;
end;
Result := True;
except
Result := False;
end;
end;

exports
GetSkin,
GetSkinsName;

begin
end.
[/code]

rc

[code delphi]
skin Skin LE4-BLACKC.skn
skin Skin LE4-DEFAUL.skn
skin Skin LonghornSl.skn
skin Skin LonghornSt.skn
skin Skin macosqqqqq.skn
skin Skin Office2007.skn
skin Skin Tqwertyuio.skn
skin Skin VISTAXPB20.skn
[/code]





如何将上面生成的DLL文件,与EXE程序结合起来,从而实现每次运行程序就自动更换不停的皮肤?
如果不使用上面的方法,还有其它方法实现每次运行程序就自动更换不停的皮肤,也麻烦各位告诉
編輯記錄
51819 重新編輯於 2008-02-09 10:04:29, 註解 無‧
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-09 11:56:20 IP:61.229.xxx.xxx 訂閱
參考這篇
把DLL文件作为数据库使用?
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=84730
exemod.pas
作者網址
http://www.geocities.com/gacarpenter386/
範例下載
jpeg-dll-demo.zip for Mohaomadi :-) 01/13/03
------
努力會更接近成功
51819
一般會員


發表:6
回覆:8
積分:2
註冊:2007-12-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-10 11:04:36 IP:116.60.xxx.xxx 訂閱
看不明白你给的!有更加容易的例子吗
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-02-10 11:50:47 IP:61.229.xxx.xxx 訂閱
這個網站http://www.geocities.com/gacarpenter386/ 的範例
Download EasyDataDemo.zip DEMO 01/15/03
http://www.geocities.com/gacarpenter386/easydatademo.zip

主要是說如何將媒體文件(BMP, MPEG, WAV...)存於一個外部文件(.DAT...)

您的Skins(LE4-BLACKC.skn..)不過是一些Resource檔案, 而需用Rc檔來組成, 更要重新作二次編譯(RC to Res, complier Dll),
日前在下剛好正在研究你的Dll方式, 問題是太繁複了, 剛好有人在問如何以dll當作資料庫。如下篇:
把DLL文件作为数据库使用?
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=84730

您想想,如果能使用這種方式來動態載入相片來當作Form的背景圖的話,您的Skin就能動態載入更換了。
------
努力會更接近成功
系統時間:2024-05-16 11:00:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!