關於新元件安裝完後,顯示的installed 和 Txxx Txxx Registered? |
尚未結案
|
BABM
一般會員 發表:3 回覆:8 積分:7 註冊:2002-09-07 發送簡訊給我 |
請問一下:
我照著那本bcb4的第一個元件TURLLabel去加入新元件,
可是在編譯和安裝後卻沒有辦法在Component platte上看到它,
只能在Packages List那裡看到,會是可視和非可視元件的關係嗎?
可是Label應該是可視元件吧,還是因為沒有幫它作一個圖示?
然後我又試著繼承一個全新的TLabel元件在Samples那裡,
安裝成功後顯示的是正確的 installed & TLabel1 Registered,
也能夠在Component Platte上看到,真奇怪?
我只好再拿別的元件來裝看看,顯示installed & TLabel1 Registered,
的元件直接看到,而只有顯示installed的就只能在在Packages List那裡
看到,請問這是什麼原因呢? ps:插入一個小問題,在bcb中可不可以按Home鍵就跑到那一行的第一個
字那裡,而不是每次都跑到最前面,有這個選項可以設定嗎? 人苦於不知足,
既得隴復望蜀。 發表人 - BABM 於 2003/06/17 23:38:15
------
人苦於不知足, 既得隴復望蜀。 |
way99
一般會員 發表:10 回覆:10 積分:4 註冊:2003-06-16 發送簡訊給我 |
我想是沒有用RegisterComponents()來注冊元件吧,
加入下列程式碼:
namespace Newcomps // 第一個字元要大寫,其餘小寫(為何要如此,不知)
{
void __fastcall Register()
{
TComponentClass custclasses[2] = {__classid(TComp1), __classid(TComp2)}; RegisterComponents("MyComponent", custclasses, 1);
}
}
install後會看到TComp1,TComp2 Registered
這樣應該就能在Component Platte上看到。
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問一下: 我照著那本bcb4的第一個元件TURLLabel去加入新元件, 可是在編譯和安裝後卻沒有辦法在Component platte上看到它, 只能在Packages List那裡看到,會是可視和非可視元件的關係嗎? 可是Label應該是可視元件吧,還是因為沒有幫它作一個圖示? 然後我又試著繼承一個全新的TLabel元件在Samples那裡, 安裝成功後顯示的是正確的 installed & TLabel1 Registered, 也能夠在Component Platte上看到,真奇怪? 我只好再拿別的元件來裝看看,顯示installed & TLabel1 Registered, 的元件直接看到,而只有顯示installed的就只能在在Packages List那裡 看到,請問這是什麼原因呢? ps:插入一個小問題,在bcb中可不可以按Home鍵就跑到那一行的第一個 字那裡,而不是每次都跑到最前面,有這個選項可以設定嗎? BABM 你好: (1)如果是可視元件,又安裝成功的話,應該是能夠在 Component Platte 裡面 找得到的,即使你沒有為它新增圖示,也會自動使用預設的圖示,建議你利 用「Tools/Environment Options/Palette」去找找看你的元件裝到哪裡去了 呢?? ( > > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
BABM
一般會員 發表:3 回覆:8 積分:7 註冊:2002-09-07 發送簡訊給我 |
謝謝way99你的回答,but我不是自己key程式碼的,
是照著New一個component的功能增加component,
後來才自己再新增Property或是Method的,
所以你那段Code,我確定是有在裡面的,and
我剛剛又試了一次,還是...很成功的在 Packages
那裡出現 but在Component Platte那裡還是看不到...
真是不知道為什麼< >< > 以下是原始程式碼 //這是URLLabel.h的內容
class PACKAGE TURLLabel : public TLabel
{
private:
String FURL;
void __fastcall SetURL(String value);
protected:
DYNAMIC void __fastcall Click();
public:
__fastcall TURLLabel(TComponent* Owner);
__property String URL = { read=FURL, write=SetURL };
__published:
};
//這是URLLabel.cpp的內容
static inline void ValidCtrCheck(TURLLabel *)
{
new TURLLabel(NULL);
}
//---------------------------------------------------------------------------
__fastcall TURLLabel::TURLLabel(TComponent* Owner)
: TLabel(Owner)
{
Font->Color =clBlue;
Font->Style =TFontStyles() << fsUnderline;
Cursor = crHandPoint;
}
//---------------------------------------------------------------------------
namespace Urllabel
{
void __fastcall PACKAGE Register()
{ //會是這邊的問題嗎?
TComponentClass classes[1] = {__classid(TURLLabel)};
RegisterComponents("Samples", classes, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TURLLabel::SetURL(String value)
{
FURL = value;
Caption = value;
}
//---------------------------------------------------------------------------
DYNAMIC void __fastcall TURLLabel::Click()
// or是上面這個DYNAMIC的問題?可是如果不加上這個,編譯又會發生錯誤...
{
TLabel::Click();
ShellExecute(Parent->Handle ,"open",URL.c_str() ,0,0,SW_NORMAL);
}
------
人苦於不知足, 既得隴復望蜀。 |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我不是自己key程式碼的, 是照著New一個component的功能增加component, 後來才自己再新增Property或是Method的, 所以你那段Code,我確定是有在裡面的,and 我剛剛又試了一次,還是...很成功的在 Packages 那裡出現 but在Component Platte那裡還是看不到... 真是不知道為什麼< >< > BABM 你好: (1)Component Platte 裡面看不到?? 這個問題我在上一篇已經回答你了,如果 還是不行的話,按「Project/Options/Packages」,看看「Borland User Components」這一項有沒有打勾?? (>>>> --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
BABM
一般會員 發表:3 回覆:8 積分:7 註冊:2002-09-07 發送簡訊給我 |
剛要貼這一則回覆,沒想到RaynorPao版主快了一步,
我在Project/Options/Packages那裡卻沒有發現Borland User Components這一個選項,只有Borland Standard Components的選項
,也有選取了...
還是我應該去更新BCB了,(到現在還沒有更新過,應該還是sp0吧^^) //=====本來要貼的回覆======================
謝謝RaynorPao版主的回覆,
我去那裡看過了,可是還是沒發現它的身影--尋它千百度...
它 只是安安靜靜的待在 Project->Options->Packages 裡,
在裝它時,它也只是跟我說它 has been installed,
而我試過有的LED元件則會顯示has been installed和
TXXX TLED has been registered.
Then,It will be visibled in Component Plette...
Why...枉費我跟它那麼好...(會不會是那裡的設定被改掉了?) 另外,Ctrl Home也試了一下,是跑到檔案的最前面,
but ,我要的是跑到遊標所在行的第一個字元那裡,像是UltraEdit那樣,
我知道Ctrl 向右鍵可以做到,可是還是不如直接一個Home鍵省事(太懶了^^!)
,只是不知道有這樣的Edit設定嗎,還是謝謝你的答案了^^
------
人苦於不知足, 既得隴復望蜀。 |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 剛要貼這一則回覆,沒想到RaynorPao版主快了一步, 我在Project/Options/Packages那裡卻沒有發現Borland User Components這一個選項,只有Borland Standard Components的選項 ,也有選取了... 還是我應該去更新BCB了,(到現在還沒有更新過,應該還是sp0吧^^) //=====本來要貼的回覆====================== 謝謝RaynorPao版主的回覆, 我去那裡看過了,可是還是沒發現它的身影--尋它千百度... 它 只是安安靜靜的待在 Project->Options->Packages 裡, 在裝它時,它也只是跟我說它 has been installed, 而我試過有的LED元件則會顯示has been installed和 TXXX TLED has been registered. Then,It will be visibled in Component Plette... Why...枉費我跟它那麼好...(會不會是那裡的設定被改掉了?) 另外,Ctrl Home也試了一下,是跑到檔案的最前面, but ,我要的是跑到遊標所在行的第一個字元那裡,像是UltraEdit那樣, 我知道Ctrl 向右鍵可以做到,可是還是不如直接一個Home鍵省事(太懶了^^!) ,只是不知道有這樣的Edit設定嗎,還是謝謝你的答案了^^BABM 你好: 如果你的 URLLabel.h, URLLabel.cpp 已經寫好的話,在 BCB 6.0 中按 「Component/Install Component」,選擇「Into existing package」TAB ,然後在「Unit file name」欄位,指向 URLLabel.cpp;「Search path」 欄位保持預設值;「Package file name」欄位確認為 dclusr.bpk; 「Package description」欄位應該為 Borland User Component,最後按 「OK」,就會自動 compile,如果 compile 成功,就會自動安裝元件 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
BABM
一般會員 發表:3 回覆:8 積分:7 註冊:2002-09-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |