全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1794
推到 Plurk!
推到 Facebook!

如何將自製的元件安裝在指定的Palette Page??

答題得分者是:bestlong
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-28 15:12:23 IP:140.115.xxx.xxx 訂閱
我做的順序是這樣的
1.先New一個Package,假設為package.bpk
2.Add --> New Component,設定Palette Page為Standard

然後做好一個元件、安裝,都沒問題

接下來我改變主意,Palette Page想改成自訂的名稱,假設名稱是"CustomPage"
於是我改了元件.cpp裡的這一行
RegisterComponents("CustomPage", classes, 0);
可是install時它居然還是安裝在Standard這個Page.......

我少改了什麼東西嗎??
cheng_Chin
一般會員


發表:1
回覆:8
積分:1
註冊:2004-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-05 09:13:59 IP:59.120.xxx.xxx 訂閱
Hi tfanalysis:我在『文魁-C++ Builder與RS232  書號:P2027』,裡看到的方法如下:
1.New Item 點選 Component 會出現對話框 裡頭就有『指定的Palette Page』,記住最後一項不可動。
2.按『OK』後再把你的程式貼在(你剛剛對話盒的路徑)程式給你的 *.CPP*.H裡。
3.你可用『Image Edit』編輯你要的圖形完成後放在一起。
4.記得一起放在 C:\Program Files\Borland\CBuilder6\Lib>
5.到Component /Install Component 去做編輯動作。


大致上是這樣。
------
阿欽
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-07 21:43:26 IP:140.115.xxx.xxx 訂閱
先感謝您的回覆

不過這樣是新作一個Component,且install時也只安裝這個元件
可是我要的是將Component包在一個Package裡

重點是,我第一次將它包在我要的package裡沒問題
可是想要將它改到別的Palette Page卻改不過去

而且就算新開Package,再New Component,把寫好、改好的Code貼過去
還是沒用


===================引 用 文 章===================
Hi tfanalysis:我在『文魁-C Builder與RS232 書號:P2027』,裡看到的方法如下:
1.New Item 點選 Component 會出現對話框 裡頭就有『指定的Palette Page』,記住最後一項不可動。
2.按『OK』後再把你的程式貼在(你剛剛對話盒的路徑)程式給你的 *.CPP*.H裡。
3.你可用『Image Edit』編輯你要的圖形完成後放在一起。
4.記得一起放在 C:\Program Files\Borland\CBuilder6\Lib>
5.到Component /Install Component 去做編輯動作。


大致上是這樣。
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-08 11:07:41 IP:60.248.xxx.xxx 訂閱
這個問題我也研究一段時間,只不過我是使用 Delphi 環境,Package 安裝後會去註冊機碼
第一次安裝的 Package 會以 RegisterComponents() 指定的名稱來決定顯示的位置
可以查看機碼 HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Palette 在 BCB 環境可以自己找一下
不過移除 Package 後並不會同步移除機碼中的資料
當你改變 RegisterComponents 指定的名稱重新安裝 Package,因為元件名稱已經存在機碼中因此元件在 Palette 的位置就會沿用前次的紀錄
所以只要你先去刪除機碼中的元件名稱,再安裝就 OK 了。

另外有個方法我是弄清楚上列狀況後想到的不過自己沒測試
就是先將元件在 Palette 的位置透過設定屬性調整到新的位置,然後移除重裝就應該會在指定的位置。
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
tfanalysis
一般會員


發表:10
回覆:9
積分:3
註冊:2007-01-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-08 21:32:22 IP:140.115.xxx.xxx 訂閱
God!!!
您真是太神了
確實如您所說的,這正是問題所在

其實我也一直懷疑應該是第一次安裝時BCB裡不曉得寫入什麼東西,而且在後來的變更中不會跟著改寫
雖然用記事本開了.bpk逐行檢查
但真的沒想到會是寫在機碼裡(現在還是搞不懂幹嘛要寫到機碼去)


另外跟您報告一件事
您提到的第二個方法
我實際測試了,確實可行

報告完畢。



我很好奇,當初你是怎麼發現問題所在的???
真是太歷害了!

===================引 用 文 章===================
這個問題我也研究一段時間,只不過我是使用 Delphi 環境,Package 安裝後會去註冊機碼
第一次安裝的 Package 會以 RegisterComponents() 指定的名稱來決定顯示的位置
可以查看機碼 HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Palette 在 BCB 環境可以自己找一下
不過移除 Package 後並不會同步移除機碼中的資料
當你改變 RegisterComponents 指定的名稱重新安裝 Package,因為元件名稱已經存在機碼中因此元件在 Palette 的位置就會沿用前次的紀錄
所以只要你先去刪除機碼中的元件名稱,再安裝就 OK 了。

另外有個方法我是弄清楚上列狀況後想到的不過自己沒測試
就是先將元件在 Palette 的位置透過設定屬性調整到新的位置,然後移除重裝就應該會在指定的位置。
系統時間:2024-05-09 19:33:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!