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

如何安裝 TntWare ?

尚未結案
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-23 23:37:01 IP:211.76.xxx.xxx 訂閱
有一套很有名的軟體叫 TntWare Unicode Control,它可以讓 Delphi/BCB 支援 Unicode.
想請教各位,有沒有安裝成功過呢 ?
我用的是 BCB6,不知怎麼安裝,還請各位幫忙。
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-24 00:02:01 IP:61.229.xxx.xxx 未訂閱

很容易安裝的,下載後放到一個目錄上,然後用bcb去開TntLibR.bpk,按install,然後再開TntLibD.bpk,再install,就搞定! (大概是這樣的,裝好久好久了,用印象回答你的)

當然,你的project option裡的 include,lib等要設定指向解壓的那個安裝目錄。


===================引 用 文 章===================
有一套很有名的軟體叫 TntWare Unicode Control,它可以讓 Delphi/BCB 支援 Unicode.
想請教各位,有沒有安裝成功過呢 ?
我用的是 BCB6,不知怎麼安裝,還請各位幫忙。

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-24 15:12:50 IP:203.68.xxx.xxx 訂閱
不好意思,我試不出來耶。
我用的是 BCB6 官網最新的 TntWare

我執行完 TntWare 的安裝檔之後,在 BCB 裡用 [File->Open] 去開啟安裝目錄下的 bpk 檔,
不管是用 install 還是用 compile 的,都會有錯誤訊息說我少什麼少什麼的。
能麻煩你再給我多一點幫助嗎?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-25 00:09:15 IP:211.76.xxx.xxx 訂閱
我自己試出來了

1. 開啟 BCB,先 Close All,再 Open TntLibR.bpk
(在 \TntWare\Delphi Unicode Controls\CBuilder\BCB6\ 底下)

2. 會跳出一個視窗,你會發現它裡頭的檔案都要放在
TntWare\Delphi Unicode Controls\CBuilder\Source 底下,可是明明沒這目錄阿。

3. 所以我們先把 TntWare\Delphi Unicode Controls\Source 目錄複製過去,
再按下 Compile。

4. 接著開啟 TntLibD.bpk

5. 會跳出一個視窗,它裡頭的檔案都要放在
TntWare\Delphi Unicode Controls\CBuilder\Design 底下,同樣沒這目錄。

6. 所以再把 TntWare\Delphi Unicode Controls\Design 目錄複製過去。

7. 再仔細看一下那個視窗,TntBandActn.pas 的路徑錯了,所以我們把它 Remove,
再把 \TntWare\Delphi Unicode Controls\Source\ 底下的 TntBandActn.pas 加入

8. 按下 Compile,再按下 Install

9. 完成了。真累
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-25 03:20:44 IP:61.229.xxx.xxx 未訂閱
我剛去它的網站上看了一下,我想你可能下載的是install程式。我從來沒用那來安裝…

我都是下載source code 然後照我之前講的二個step來搞定。
即解壓縮,然後先安裝xxxR 的bpk部份,再安裝xxxD 的bpk,就ok了!

也許你可以試看看 (我過我好奇的是,由exe檔來安裝理論上應該裝好就可以用了,應該什麼都不用調整,不然exe安裝程式搞什麼@@,但沒那樣裝過,還真不知會有什麼情形)

===================引 用 文 章===================
不好意思,我試不出來耶。
我用的是 BCB6 官網最新的 TntWare

我執行完 TntWare 的安裝檔之後,在 BCB 裡用 [File->Open] 去開啟安裝目錄下的 bpk 檔,
不管是用 install 還是用 compile 的,都會有錯誤訊息說我少什麼少什麼的。
能麻煩你再給我多一點幫助嗎?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-08-25 20:46:50 IP:211.76.xxx.xxx 訂閱
安裝程式理論上應該會完成所有動作,
不過大概是作者的 script 寫錯了,路徑部分出了點問題,所以沒辦法完成。
我有回報給作者了,目前應該正在修改吧。

對了,TntTreeView 支援 Unicode 吧? 可是我無法讓它顯示日文哩。
我是用 Windows XP,有些資料夾名稱是日文,在檔案總管裡頭可以正常顯示。
我複製某個日文資料夾的名稱,然後在 TntTreeView 加入一個 TreeNode,
在它的 Text 欄位貼上那段日文,卻顯示一堆問號,這是怎麼回事呢 ?

抱歉,第一次用 TntWare,很多東西都不懂



===================引 用 文 章===================
我剛去它的網站上看了一下,我想你可能下載的是install程式。我從來沒用那來安裝…

我都是下載source code 然後照我之前講的二個step來搞定。
即解壓縮,然後先安裝xxxR 的bpk部份,再安裝xxxD 的bpk,就ok了!

也許你可以試看看 (我過我好奇的是,由exe檔來安裝理論上應該裝好就可以用了,應該什麼都不用調整,不然exe安裝程式搞什麼@@,但沒那樣裝過,還真不知會有什麼情形)
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-08-25 23:18:25 IP:219.84.xxx.xxx 未訂閱

要支援Unicode的話必須把所有AnsiString的地方都那用WideString..

另外如果你是在BCB的IDE裡指定日文名稱的話..

BCB6的IDE是不支援Unicode的

chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-08-26 01:41:51 IP:211.76.xxx.xxx 訂閱
我檢查了一下,應該是有把 AnsiString 的地方都改用 WideString 了,不過似乎還是有點小問題。

我現在想要把一份 XML 檔轉成 Tree,用 TntTreeView 表現,我用 IXMLDocument 載入 XML 檔。
該 XML 檔是 UTF-8 編碼,內容包含了繁簡中英日文等等。

不知是否方便給我一份 sample code,讓我比對看看我是哪裡沒考慮到呢 ?

===================引 用 文 章===================

要支援Unicode的話必須把所有AnsiString的地方都那用WideString..

另外如果你是在BCB的IDE裡指定日文名稱的話..

BCB6的IDE是不支援Unicode的

------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2006-08-26 01:51:39 IP:61.229.xxx.xxx 未訂閱

補一下pwipwi的話… 因為IDE的介界裡是不支援Unicode的,所以你肯定是不能用貼的或是用輸入法輸入。但你可以在runtime時給定unicode的二進位值。我用例子說明比較快:

加入一個TntLabel,和一個button,然後…

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TntLabel1->Caption = L"\x9676\x5586\x5803"; //陶喆堃
}

run一下你就了解。至於那unicode的編號我有一隻自己寫的程式,你若有需要我可以寄給你。
我喜歡字元編碼的研究,也算有些小專精了,若有什麼相關的問題,再post上來吧。

蕭沖 qs.xiao@gmail.com
===================引 用 文 章===================

要支援Unicode的話必須把所有AnsiString的地方都那用WideString..

另外如果你是在BCB的IDE裡指定日文名稱的話..

BCB6的IDE是不支援Unicode的

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2006-08-26 03:11:51 IP:211.76.xxx.xxx 訂閱
阿 ~ 我終於發現是哪裡出問題了。
因為我是拿舊的程式的來改,舊程式裡頭有個給 AnsiString 用的 StringReplace 函式。
主要就是這裡的轉換出了問題,難怪會有一堆問號。

我想請問,有給 WideString 用的 StringReplace 嗎? 沒有的話,要怎麼把 WideString 裡的特定字串取代為另一個字串呢 ?

===================引 用 文 章===================

補一下pwipwi的話… 因為IDE的介界裡是不支援Unicode的,所以你肯定是不能用貼的或是用輸入法輸入。但你可以在runtime時給定unicode的二進位值。我用例子說明比較快:

加入一個TntLabel,和一個button,然後…

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TntLabel1->Caption = L"\x9676\x5586\x5803"; //陶喆堃
}

run一下你就了解。至於那unicode的編號我有一隻自己寫的程式,你若有需要我可以寄給你。
我喜歡字元編碼的研究,也算有些小專精了,若有什麼相關的問題,再post上來吧。

蕭沖 qs.xiao@gmail.com

------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
coldwind1234
一般會員


發表:3
回覆:25
積分:20
註冊:2006-08-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2006-08-26 08:01:16 IP:220.133.xxx.xxx 未訂閱

WideString 字串的取代,我想可能要麻煩一點了吧

你可以使用 Pos, SubString 這些指令來替代取代的功能


===================引 用 文 章===================
阿 ~ 我終於發現是哪裡出問題了。
因為我是拿舊的程式的來改,舊程式裡頭有個給 AnsiString 用的 StringReplace 函式。
主要就是這裡的轉換出了問題,難怪會有一堆問號。

我想請問,有給 WideString 用的 StringReplace 嗎? 沒有的話,要怎麼把 WideString 裡的特定字串取代為另一個字串呢 ?

chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2006-08-26 13:48:27 IP:211.76.xxx.xxx 訂閱
沒有別的辦法嗎 ?
StringReplace 可以下 ReplaceAll 的參數,方便一次取代所有匹配的字串。
用 Pos 跟 SubString 來完成,應該會花上不少功夫吧
===================引 用 文 章===================

WideString 字串的取代,我想可能要麻煩一點了吧

你可以使用 Pos, SubString 這些指令來替代取代的功能

------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#13 引用回覆 回覆 發表時間:2006-08-26 15:50:56 IP:61.229.xxx.xxx 未訂閱
附上自製的WideString Replace Function 給你用,也可以自行修改!

WideString __fastcall WideStringReplace(const WideString S, const WideString OldPattern
, const WideString NewPattern, TReplaceFlags Flags)
{
/* 作者: 蕭沖 Xiao Chong
** Email : qs.xiao@gmail.com
** To-Do : implement rfIgnoreCase
*/

int pos = 0;
int old_pattern_len = 0;
WideString result(S);


if (0==(pos = result.Pos(OldPattern))) //no found
return result;

old_pattern_len = OldPattern.Length();

if (!Flags.Contains(rfReplaceAll))
{
result.Delete(pos,old_pattern_len);
result.Insert(NewPattern,pos);
return result;
}
else
{
while (0 != (pos = result.Pos(OldPattern)))
{
result.Delete(pos,old_pattern_len);
result.Insert(NewPattern,pos);
}
return result;
}

}

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#14 引用回覆 回覆 發表時間:2006-08-26 15:59:41 IP:61.229.xxx.xxx 未訂閱

抱歉,急著先把功能完成,所以沒考慮到效能,貼完後自己看了一下代碼,覺得效能差了,改了一下:

WideString __fastcall WideStringReplace(const WideString S, const WideString OldPattern
, const WideString NewPattern, TReplaceFlags Flags)
{
/* 作者: 蕭沖 Xiao Chong
** Email : qs.xiao@gmail.com
** To-Do : implement rfIgnoreCase
*/

int pos = 0;
int old_pattern_len = 0;
WideString result(S);


if (0==(pos = result.Pos(OldPattern))) //no found
return result;

old_pattern_len = OldPattern.Length();
result.Delete(pos,old_pattern_len);
result.Insert(NewPattern,pos);

if (Flags.Contains(rfReplaceAll))
{
while (0 != (pos = result.Pos(OldPattern)))
{
result.Delete(pos,old_pattern_len);
result.Insert(NewPattern,pos);
}
}

return result;

}

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#15 引用回覆 回覆 發表時間:2006-08-26 19:24:44 IP:211.76.xxx.xxx 訂閱
謝謝你,這程式碼有用。
我想請問一下 WideString result(S); 是怎麼來的呢 ?
我知道這樣子 result 會等於 S,可是為什麼 result 後面會有 ( ) 呢? 它是變數又不是函式 @@

另外我又想到一個問題,TTntMemo 在 SaveToFile 時要怎麼指定編碼呢?
像是 UTF-8, UTF-16 之類?

嘖嘖~用 Unicode 還真是挺麻煩的呢。可是這又是未來的趨勢,還是早點習慣比較好 :p
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#16 引用回覆 回覆 發表時間:2006-08-27 21:23:27 IP:59.105.xxx.xxx 未訂閱
編譯器會視刮號內的參數型態,來決定要呼叫哪個建構子
系統時間:2024-04-28 4:50:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!