請問如何動態的調用 rcs 資源檔 |
答題得分者是:Stallion
|
brian_chen
一般會員 ![]() ![]() 發表:14 回覆:20 積分:6 註冊:2007-06-26 發送簡訊給我 |
請問一下 比如說我現在有兩個甚至三個以上的rcs資源檔案 style1.rcs and style2.rcs ..... 如果只用一個rcs的話,我是會用 在程式前面加上 #pragma resource "style1.res" 就可以用了 可是如果我想加入一個button,點下去 1、關閉style1.rcs 2、load style2.rcs 就不知道要怎麼做了 編輯記錄
brian_chen 重新編輯於 2007-07-03 20:55:00, 註解 無‧
|
Stallion
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
brian_chen
一般會員 ![]() ![]() 發表:14 回覆:20 積分:6 註冊:2007-06-26 發送簡訊給我 |
其實我的目的是想要有換面版的功能
本來是想說,不同的res存放不同面版的各種圖片 要換哪一套時,再去 load 哪個 res 就行了... 結果想的跟做的完全不是那麼一回事 那如果res這種方式不可行的話,想要有替換面版的功能,不知道要用什麼方法去寫 我知道網路上有一些元件可以做到類似替換面版的功能 如某某skin之類的,只要套上*.skn就可以更換面版 不過是公司要用的,所以必需自己開發...但沒有頭緒.... 有一個想法,就是如果弄成dll,要用的時候再個別去動態去載入,不知道這個方式可不可行...
編輯記錄
|
Stallion
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
brian_chen
一般會員 ![]() ![]() 發表:14 回覆:20 積分:6 註冊:2007-06-26 發送簡訊給我 |
謝謝你的解答..
後來還是改成用dll的方式來寫... 不過有另外一個問題 怎麼把 dll 裡面的 bmp 圖片檔 load 到 imagelist 裡面去 @@ imagelist 裡面的 getresoruce 好像只針對 res 資源檔 我用 OsX 大大寫的 delphi 改成 bcb 好像怪怪的,圖片出不來..... 只 load 一張圖,查詢 Imagelist->count 正常來說應該是傳回 1 (一張圖在裡面),可是卻傳回大於 1 的數字 用image去show 只show出一小格,無法show出原圖大小... 還是說bcd要用其它的方法才行,不能用addmask 底下為OsX大大寫的: 預先將不同的ImageList的內的圖式, 當成Resource放在 DLL 檔裏, 然後在程式中動態載入, 就可以達到你要效果. 做法: 1.先把所有Icon加進ImageList, 然後將ImageList圖存檔成bmp檔. 2.用Delphi內附的ImageEditor, New 一個 Resource File (*.res), Ex:test.res 3.將剛剛的bmp圖檔加進來, 並取個名字, Ex: First (可以放多個bmp檔進來, 取不同名字就可以) 4.New 一個 DLL Project, 然後 Include 剛剛的 res 檔 {$R test.res}. 5.Compile後, 會得到一個只含Icon Resource的 DLL. 6.在Delphi中, 寫Code把外部Resource DLL 載入 ImageList <textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.LoadIconFromDLL; var ResBmap: TBitmap; AHnd: THandle; begin ResBmap := TBitmap.Create; try AHnd := LoadLibrary( PChar( ADllName ) ); if AHnd <> 0 then begin ImageList.Clear; ResBmap.LoadFromResourceName( AHnd, 'First' ); ImageList.AddMasked( ResBmap, clFuchsia ); ResBmap.FreeImage; FreeLibrary( AHnd ); end; finally FreeAndNil( ResBmap ); end; end; </textarea> |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |