線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:7954
推到 Plurk!
推到 Facebook!
[<<] [1] [2] [>>]

如何使用 TntWare 的 TntForm

答題得分者是:andychang1690
chtai
高階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-11 20:07:22 IP:140.138.xxx.xxx 訂閱
TntWare Unicode Controls 是一套讓 Delphi/BCB 支援 Unicode 的第三方套件
http://www.tntware.com/delphicontrols/unicode/

我的問題是,在開啟 BCB 之後,它不是都會自動建立一個新的 Application 專案嗎?
可是這個專案裡頭的 Form 是 BCB 自己的 TForm,我要怎麼把這個 TForm 拿掉,改用 TntWare 的 TntForm?
或是我要怎麼新增一個 TntForm 勒?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-11 20:34:55 IP:220.228.xxx.xxx 訂閱
這個我已經有反應給TntWare了,據說下一版會有
包含新增TntFormLX時use到TntForms這個bug

你先開起一個新的Project,然後再開新檔,到裡面找TntForm,新增後再移掉原本的TForm就可以了
TApplication仍然要繼續用,因為TTntApplication只是TntForm的helper來wrap Application
要移掉TForm,從Project Manager裡面移掉可以了
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
chtai
高階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-11 21:25:19 IP:140.138.xxx.xxx 訂閱
抱歉,我不明白要怎麼移掉原本的 TForm。
能麻煩你一步一步地教我要怎麼弄嗎?

===================引 用 文 章===================
你先開起一個新的Project,然後再開新檔,到裡面找TntForm,新增後再移掉原本的TForm就可以了
TApplication仍然要繼續用,因為TTntApplication只是TntForm的helper來wrap Application
要移掉TForm,從Project Manager裡面移掉可以了
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-14 02:41:01 IP:203.67.xxx.xxx 訂閱
找一下你的Project Manager有在哪吧..BCB跟Delphi應該都是一樣的東西
自己研究一下BCB怎麼編排整個Project,你就會知道怎麼把整個Form1移掉..
要我一步一步講我還真不知道怎麼開始怎麼結束,買本書應該會比較快
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-14 23:14:39 IP:221.169.xxx.xxx 訂閱
 我對這問題很有興趣,我使用TntWare開啟的確是Delphi的TTntForm?!
我的作法是自己寫一個程式產生TTntForm.cpp,TTntForm.h ,TTntForm.dfm來使用
請問TntWare可以於BCB產生TTntForm?
我的版本是Version: 2.2.8
===================引 用 文 章===================
這個我已經有反應給TntWare了,據說下一版會有
包含新增TntFormLX時use到TntForms這個bug

你先開起一個新的Project,然後再開新檔,到裡面找TntForm,新增後再移掉原本的TForm就可以了
TApplication仍然要繼續用,因為TTntApplication只是TntForm的helper來wrap Application
要移掉TForm,從Project Manager裡面移掉可以了
------
Andy Chang
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-14 23:31:34 IP:203.67.xxx.xxx 訂閱
我沒有查我的版號是多少..
但是我有裝LX Control,不管是LX Control還是Unicode Control都不能直接產生一個新的Project包含TTntForm
我是沒有另外控制IDE去產生,就是手動的先加上TTntForm再移掉TForm讓TTntForm變成MainForm而已

所以我是連同LX Control的Bug回報順便跟作者提議是否新增一個TntProject來用,
作者是說下一版會加,但實際狀況怎樣後來我沒有追
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-01-14 23:43:49 IP:221.169.xxx.xxx 訂閱
 感謝回答:
看來我還是維持我目前的方式,起碼沒有問題!

===================引 用 文 章===================
我沒有查我的版號是多少..但是我有裝LX Control,不管是LX Control還是Unicode Control都不能直接產生一個新的Project包含TTntForm
我是沒有另外控制IDE去產生,就是手動的先加上TTntForm再移掉TForm讓TTntForm變成MainForm而已

所以我是連同LX Control的Bug回報順便跟作者提議是否新增一個TntProject來用,
作者是說下一版會加,但實際狀況怎樣後來我沒有追
------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-01-15 00:40:30 IP:211.76.xxx.xxx 訂閱
我知道怎麼把 Form 移掉,可是我不知道怎麼把 TntForm 加入阿 

再不然哪位直接給個範例,讓我看看 Form1.cpp, Form1.h, Project1.cpp, Project1.h 是怎麼寫的也行。
麻煩各位了。
===================引 用 文 章===================
找一下你的Project Manager有在哪吧..BCB跟Delphi應該都是一樣的東西
自己研究一下BCB怎麼編排整個Project,你就會知道怎麼把整個Form1移掉..
要我一步一步講我還真不知道怎麼開始怎麼結束,買本書應該會比較快
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
chtai
高階會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-01-15 00:42:03 IP:211.76.xxx.xxx 訂閱
對對對,我遇到的問題就是這樣。
在 BCB 底下要建立 TntForm 卻是開啟 Delphi 版本的。

能請你告訴我這些檔案的內容,分別該怎麼寫嗎?
謝謝
===================引 用 文 章===================
我對這問題很有興趣,我使用TntWare開啟的確是Delphi的TTntForm?!
我的作法是自己寫一個程式產生TTntForm.cpp,TTntForm.h,TTntForm.dfm來使用
請問TntWare可以於BCB產生TTntForm?
我的版本是Version: 2.2.8


------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-01-15 00:51:35 IP:203.67.xxx.xxx 訂閱
在BCB底下New -> TntForm 會產生Delphi程式碼?
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-01-15 01:18:16 IP:221.169.xxx.xxx 訂閱
只限BCB6使用:
新增一專案
兩個Edit: Name為CppName 及 FormName
兩個Label:Caption為.cpp名稱不含副檔名 及 Form名稱
一個SaveDialog
一個Button
.h
private: // User declarations
int FormList;
int UnitList;
.cpp
void __fastcall TTntForm1::TntFormCreate(TObject *Sender)
{
FormList=1;
UnitList=1;
FormName->Text="TntForm" IntToStr(FormList);
CppName->Text="TntUnit" IntToStr(UnitList);
CaptionName->Text=CppName->Text;
}
//---------------------------------------------------------------------------
void __fastcall TTntForm1::TntButton1Click(TObject *Sender)
{
SaveDialog1->FileName=".\\" CppName->Text ".cpp";
if (SaveDialog1->Execute()) {
if(FileExists(SaveDialog1->FileName))//如果檔案已存在,則刪除
if (::MessageBoxW(NULL,WideString("檔案已存在\n是否覆蓋?").c_bstr(),WideString("檔案已存在").c_bstr(),MB_OKCANCEL) == IDOK)
DeleteFile(SaveDialog1->FileName);
else
return;
AnsiString fExt,fName,fPath;
fExt=ExtractFileExt(SaveDialog1->FileName);
fName=ChangeFileExt(ExtractFileName(SaveDialog1->FileName),"");
fPath=ExtractFilePath(SaveDialog1->FileName);
TStringList* MyList = new TStringList();
// Save .cpp
MyList->Clear();
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("/******************************************************************");
MyList->Add("** 檔案名: " fName ".cpp");
MyList->Add("** Copyright (c) 2005-" Now().FormatString("yyyy"));
MyList->Add("** 創建人:");
MyList->Add("** 日 期: ");
MyList->Add("** 修改人:");
MyList->Add("** 日 期: ");
MyList->Add("** 描 述: ");
MyList->Add("** ");
MyList->Add("** 版 本: ");
MyList->Add("******************************************************************/ ");
MyList->Add("");
MyList->Add("#include ");
MyList->Add("");
MyList->Add("#include \"" fName ".h\"");
MyList->Add("");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("#pragma package(smart_init)");
MyList->Add("#pragma resource \"*.dfm\"");
MyList->Add("T" FormName->Text " *" FormName->Text ";");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("__fastcall T" FormName->Text "::T" FormName->Text "(TComponent* Owner)");
MyList->Add(" : TTntForm(Owner)");
MyList->Add("{");
MyList->Add("}");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("");
MyList->SaveToFile(SaveDialog1->FileName);
//.h
MyList->Clear();
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("");
MyList->Add("#ifndef " fName "H");
MyList->Add("#define " fName "H");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("#include ");
MyList->Add("#include ");
MyList->Add("#include ");
MyList->Add("#include <Forms.hpp>");
MyList->Add("#include ");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("/*----------------------------------------------------------*/ ");
MyList->Add("/* 因為TntForms不能使用於BCB故人工自行產生 */ ");
MyList->Add("/*----------------------------------------------------------*/ ");
MyList->Add("class T" FormName->Text " : public TTntForm");
MyList->Add("{");
MyList->Add("__published: // IDE-managed Components");
MyList->Add("private: // User declarations");
MyList->Add("public: // User declarations");
MyList->Add(" __fastcall T" FormName->Text "(TComponent* Owner);");
MyList->Add("");
MyList->Add("};");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("extern PACKAGE T" FormName->Text " *" FormName->Text ";");
MyList->Add("//---------------------------------------------------------------------------");
MyList->Add("#endif");
MyList->Add("");
MyList->SaveToFile(fPath fName ".h");
// .dfm
MyList->Clear();
MyList->Add("object " FormName->Text ": T" FormName->Text);
MyList->Add(" Left = 192");
MyList->Add(" Top = 114");
MyList->Add(" Width = 696");
MyList->Add(" Height = 480");
MyList->Add(" Caption = '" FormName->Text "'");
MyList->Add(" Color = clBtnFace");
MyList->Add(" Font.Charset = ANSI_CHARSET");
MyList->Add(" Font.Color = clWindowText");
MyList->Add(" Font.Height = -12");
MyList->Add(" Font.Name = 'Tahoma'");
MyList->Add(" Font.Style = []");
MyList->Add(" OldCreateOrder = False");
MyList->Add(" PixelsPerInch = 96");
MyList->Add(" TextHeight = 14");
MyList->Add("end");
MyList->Add("");
MyList->SaveToFile(fPath fName ".dfm");
delete MyList;
FormList =1;
UnitList =1;
FormName->Text="TntForm" IntToStr(FormList);
CppName->Text="TntUnit" IntToStr(UnitList);
CaptionName->Text=CppName->Text;
}
}


===================引 用 文 章===================
對對對,我遇到的問題就是這樣。
在 BCB 底下要建立 TntForm 卻是開啟 Delphi 版本的。

能請你告訴我這些檔案的內容,分別該怎麼寫嗎?
謝謝



------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-01-15 13:16:29 IP:211.76.xxx.xxx 訂閱
是阿,產生的 .cpp 檔裡頭是 Delphi code,.h 檔裡頭就很正常。
===================引 用 文 章===================
在BCB底下New -> TntForm 會產生Delphi程式碼?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
chtai
高階會員


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-01-15 13:18:35 IP:211.76.xxx.xxx 訂閱
感謝 andychang1690我會找時間試看看 :)
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#14 引用回覆 回覆 發表時間:2007-01-15 13:33:07 IP:220.130.xxx.xxx 訂閱
這應該是bug,回報給TntWare吧..我不知道有怎麼勁爆的Bug..XD
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
chtai
高階會員


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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2007-01-15 15:47:09 IP:211.76.xxx.xxx 訂閱
發現了幾個問題:
1. 看了看你的 code,是不是應該要有三個 Edit,第三個叫 CaptionName 呢?
2. 自動建立 .h 的程式碼裡頭, #include 後面的字消失了,請問是 #include 哪些東西呢?

===================引 用 文 章===================
只限BCB6使用:
新增一專案
兩個Edit: Name為CppName 及 FormName

------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#16 引用回覆 回覆 發表時間:2007-01-15 22:38:49 IP:221.169.xxx.xxx 訂閱
新增一專案
兩個Edit: Name為CppName 及 FormName
兩個Label:Caption為.cpp名稱不含副檔名 及 Form名稱
一個SaveDialog
一個Button
Edit1->Name="CppName"; 對應Caption為Label1->Caption=".cpp名稱不含副檔名";
Edit2->Name="FormName"; 對應Caption為Label2->Caption="Form名稱";
<>為全型請自行改之。
MyList->Add("#include <Classes.hpp>");
MyList->Add("#include <Controls.hpp>");
MyList->Add("#include <StdCtrls.hpp>");
MyList->Add("#include <Forms.hpp>");
MyList->Add("#include <TntForms.hpp>");
CaptionName->Text=CppName->Text; // 沒用拿掉它一共有兩個
------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#17 引用回覆 回覆 發表時間:2007-01-16 00:01:29 IP:211.76.xxx.xxx 訂閱
謝謝你。

經測試,只需要留下 TntForms.hpp 即可,在 TntForms.hpp 裡頭就有呼叫到 Forms.hpp 了。
至於其他的 .hpp 會在有必要時自動加上 (例如放上一個 button 時)。

不知你是怎麼使用自動產生的 TntForm 檔案的呢?
我是新建一個 Project,然後去 Project Manager 把原本的 Form1 移除,再加入 TntUnit1.cpp
可是我這個辦法在 Project Options 裡頭,無法把 TntForm 設為 Main form,不知是怎麼一回事。
不知是否有其他更好的辦法呢 ?
===================引 用 文 章===================
<>為全型請自行改之。
MyList->Add("#include <Classes.hpp>");
MyList->Add("#include <Controls.hpp>");
MyList->Add("#include <StdCtrls.hpp>");
MyList->Add("#include <Forms.hpp>");
MyList->Add("#include <TntForms.hpp>");


------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#18 引用回覆 回覆 發表時間:2007-01-16 00:06:55 IP:211.74.xxx.xxx 訂閱
你是在問我嗎?我有點不太懂你想問的問題耶?
如果你從開新檔那邊就會發生產生Delphi的Code..那就是bug..
那應該就是沒輒了..XD

不過我記得沒錯的話,TntForm好像跟TForm幾乎沒差到什麼Name有關的,除了ClassName叫TTntForm
倒是Edit有多一個PasswordW
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
chtai
高階會員


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

發送簡訊給我
#19 引用回覆 回覆 發表時間:2007-01-16 00:20:27 IP:211.76.xxx.xxx 訂閱
喔,不是的,我指的是 andychang1690 提供的方法。
我用他的方法建立 TntUnit1.h 跟 TntUnit1.cpp 之後,不知要怎麼加到 Project 裡頭並讓它成為 Main form.

我現在的做法是建立一個新 project,將 BCB 自動產生的 Form1 移除,然後加入 TntUnit1.cpp,如此一來就會有一個 TntForm1
可是問題來了,我無法在 Project Option 裡將 TntForm1 設為 Main form。
我不知該怎麼解決才好。

===================引 用 文 章===================
你是在問我嗎?我有點不太懂你想問的問題耶?
如果你從開新檔那邊就會發生產生Delphi的Code..那就是bug..
那應該就是沒輒了..XD

不過我記得沒錯的話,TntForm好像跟TForm幾乎沒差到什麼Name有關的,除了ClassName叫TTntForm
倒是Edit有多一個PasswordW
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#20 引用回覆 回覆 發表時間:2007-01-16 00:28:00 IP:211.74.xxx.xxx 訂閱
對TApplication來說,第一個產生的Form就是MainForm
所以你只要在Project Manager裡面將它設為第個一執行的form就可以了
再不然就從你的hpp file裡面加入Application->CreateForm(yourForm, "TTntForm");也可以
//BCB應該是這樣吧?好久沒碰了耶XD
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#21 引用回覆 回覆 發表時間:2007-01-16 02:35:02 IP:221.169.xxx.xxx 訂閱
有點奇怪?!我也是採用你類似的方式,新建一個 Project
直接將Unit1.cpp按右鍵Close Page,存檔只有Project.
再將TntForm加進來就OK了!不論是一般的程式或是MDI程式
皆沒有問題!

P.S.玩Unicode的程式真不好玩,為了參考大陸的程式(BCB和Delphi)
寫了一個繁簡翻譯,Form的轉換(BCB和Delphi)不論版本皆適用
自己寫一個讀取UniCode的INI檔Function,多國語言切換,是指只要你系統
有支援語系就可顯示的切換!報表採用Free的Print Preview Suite,
又回到Clipper時代自己寫報表方式!
訊息用MessageBoxW,TextOutW取代TextOut,DrawTextW取代DrawText
大量的WidString取代AnsiString一些String的Function要改變,DataBase查詢方式要改變,
等等太多的不一樣........................................
真希望BCB能提供一個完整的UniCode方案

===================引 用 文 章===================
謝謝你。

經測試,只需要留下 TntForms.hpp 即可,在 TntForms.hpp 裡頭就有呼叫到 Forms.hpp 了。
至於其他的 .hpp 會在有必要時自動加上 (例如放上一個 button 時)。

不知你是怎麼使用自動產生的 TntForm 檔案的呢?
我是新建一個 Project,然後去 Project Manager 把原本的 Form1 移除,再加入 TntUnit1.cpp
可是我這個辦法在 Project Options 裡頭,無法把 TntForm 設為 Main form,不知是怎麼一回事。
不知是否有其他更好的辦法呢
------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#22 引用回覆 回覆 發表時間:2007-01-16 07:58:11 IP:211.76.xxx.xxx 訂閱
回 andychang1690:
我也搞不懂為什麼,我再把我的順序講清楚一點好了。
  1. 用你那程式產生 TntUnit1.cpp 等等檔案並存在 temp 資料夾
  2. BCB 新建一個 Project
  3. 用【Project】→【Remove file from Project】把 Unit1.cpp 移除
  4. 用【Project】→【Add to Project】將 TntUnit1.cpp 加入
  5. 這時【Project】→【Options】→〔Forms〕分頁,裡頭的 Main form: 下拉選單是空無一物
  6. 用【File】→【New】→【Form】建立一個 Form1 之後,Main form: 下拉選單就只有這個 Form1 可以選
真搞不懂是哪裡出了問題阿 ~"~
PS: 我用 BCB6 SP4,WinXP SP2

===================引 用 文 章===================
有點奇怪?!我也是採用你類似的方式,新建一個 Project
直接將Unit1.cpp按右鍵Close Page,存檔只有Project.
再將TntForm加進來就OK了!不論是一般的程式或是MDI程式
皆沒有問題!

------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#23 引用回覆 回覆 發表時間:2007-01-16 16:05:07 IP:221.169.xxx.xxx 訂閱
chtai:我也是BCB6 SP4,WinXP SP2,也按你的方式
  1. 用你那程式產生 TntUnit1.cpp 等等檔案並存在資料夾
  2. BCB 新建一個 Project
  3. 用【Project】→【Remove file from Project】把 Unit1.cpp 移除
  4. 用【Project】→【Add to Project】將 TntUnit1.cpp 加入
  5. 這時【Project】→【Options】→〔Forms〕分頁,裡頭的 Main form: 下拉選單是TntForm
完全可以執行,不知道你那個還節出了問題.如果可以你方便將你的測試程式Post上來研究?

===================引 用 文 章===================
andychang1690:
我也搞不懂為什麼,我再把我的順序講清楚一點好了。
  1. 用你那程式產生 TntUnit1.cpp 等等檔案並存在 temp 資料夾
  2. BCB 新建一個 Project
  3. 用【Project】→【Remove file from Project】把 Unit1.cpp 移除
  4. 用【Project】→【Add to Project】將 TntUnit1.cpp 加入
  5. 這時【Project】→【Options】→〔Forms〕分頁,裡頭的 Main form: 下拉選單是空無一物
  6. 用【File】→【New】→【Form】建立一個 Form1 之後,Main form: 下拉選單就只有這個 Form1 可以選
真搞不懂是哪裡出了問題阿 ~"~
PS: 我用 BCB6 SP4,WinXP SP2

===================引 用 文 章===================
有點奇怪?!我也是採用你類似的方式,新建一個 Project
直接將Unit1.cpp按右鍵Close Page,存檔只有Project.
再將TntForm加進來就OK了!不論是一般的程式或是MDI程式
皆沒有問題!

------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#24 引用回覆 回覆 發表時間:2007-01-16 18:09:01 IP:140.138.xxx.xxx 訂閱
這是我的程式碼,請各位幫我看看。
載入 Project 之後,TntForm 不會自動顯示出來,進去 Project Options 也無法將它設為 Main form

http://nelson.csie.us/TntFormTest.7z

===================引 用 文 章===================
chtai:我也是BCB6 SP4,WinXP SP2,也按你的方式
  1. 用你那程式產生 TntUnit1.cpp 等等檔案並存在資料夾
  2. BCB 新建一個 Project
  3. 用【Project】→【Remove file from Project】把 Unit1.cpp 移除
  4. 用【Project】→【Add to Project】將 TntUnit1.cpp 加入
  5. 這時【Project】→【Options】→〔Forms〕分頁,裡頭的 Main form: 下拉選單是TntForm
完全可以執行,不知道你那個還節出了問題.如果可以你方便將你的測試程式Post上來研究?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#25 引用回覆 回覆 發表時間:2007-01-16 21:29:03 IP:221.169.xxx.xxx 訂閱
chtai:我想我知道你要問的問題了!
開啟Project1.bpr找到
<FILELIST>
<FILE FILENAME="TntUnit1.cpp" FORMNAME="TntForm1" UNITNAME="TntUnit1" CONTAINERID="CCompiler" DESIGNCLASS="TTntForm" LOCALCOMMAND=""/>
其中DESIGNCLASS="TTntForm"將TTntForm拿掉成為
DESIGNCLASS="",你再開啟看看是否是你需要的模式。
<>為全型
PS.原有的方式不會影響程式
------
Andy Chang
chtai
高階會員


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

發送簡訊給我
#26 引用回覆 回覆 發表時間:2007-01-16 23:41:21 IP:211.76.xxx.xxx 訂閱
沒錯,的確照你的做法就解決問題了。
請問你或是其他人知道這個屬性是幹嘛的嗎? 為什麼拿掉就沒事了呢?
有什麼好辦法讓它以後不再產生嗎? 還是每次都得手動勒?

===================引 用 文 章===================
chtai:我想我知道你要問的問題了!
開啟Project1.bpr找到
<FILELIST>
<FILE FILENAME="TntUnit1.cpp" FORMNAME="TntForm1" UNITNAME="TntUnit1" CONTAINERID="CCompiler" DESIGNCLASS="TTntForm" LOCALCOMMAND=""/>
其中DESIGNCLASS="TTntForm"將TTntForm拿掉成為
DESIGNCLASS="",你再開啟看看是否是你需要的模式。
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#27 引用回覆 回覆 發表時間:2007-01-17 00:04:49 IP:221.169.xxx.xxx 訂閱
chtai:你的問題我無法回答,或許你可以另開主題詢問,應該有BCB->IDE的高手會解答
這類問題!不好意思
------
Andy Chang
cartor
一般會員


發表:0
回覆:7
積分:1
註冊:2005-04-07

發送簡訊給我
#28 引用回覆 回覆 發表時間:2007-01-31 11:29:17 IP:220.130.xxx.xxx 訂閱
TnTWare最近又更新了(好像1/24更新),
這個問題之前已經在TntWare的論壇上被提出了,
我不知道新版的有沒有解決不能使用TntForm的問題,
不過我是用2.2.8的版本,
我的作法比較笨一點, 而且有危險性,
就是直接去修改source code,
把某一行mark掉, 在加一行新的就可以new一個新的Form(unicode),
礙於不知道這樣是不是有額外的風險, 我怕誤導其他人,
不過去追一下程式碼應該就知道了,
我是修改"TntForms_Design.pas"這個檔案,
不知道是不是有高手能幫忙看一下?
還是有人試過新版的, 能提供一下這問題解決了沒?

chtai
高階會員


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

發送簡訊給我
#29 引用回覆 回覆 發表時間:2007-01-31 21:09:41 IP:140.138.xxx.xxx 訂閱
我試過最新的 2.3.0 版,這個問題還是在。
不知道你是怎麼解決的呢?
能不能分享給大家知道呢?

===================引 用 文 章===================
TnTWare最近又更新了(好像1/24更新),
這個問題之前已經在TntWare的論壇上被提出了,
我不知道新版的有沒有解決不能使用TntForm的問題,
不過我是用2.2.8的版本,
我的作法比較笨一點, 而且有危險性,
就是直接去修改source code,
把某一行mark掉, 在加一行新的就可以new一個新的Form(unicode),
礙於不知道這樣是不是有額外的風險, 我怕誤導其他人,
不過去追一下程式碼應該就知道了,
我是修改"TntForms_Design.pas"這個檔案,
不知道是不是有高手能幫忙看一下?
還是有人試過新版的, 能提供一下這問題解決了沒?


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


發表:0
回覆:7
積分:1
註冊:2005-04-07

發送簡訊給我
#30 引用回覆 回覆 發表時間:2007-02-01 10:11:39 IP:220.130.xxx.xxx 訂閱
我是使用2.2.8, 目前尚未更新至2.3.0,
在"TntForms_Design.pas"中的第243行可以看到一個function,
叫做"TTntNewFormCreator.NewImplSource",
然後function裡有一個return,
請將下列程式碼mark起來,
Result := TTntSourceFile.Create(Format(cSource, [ModuleIdent, FormIdent,
AncestorIdent, FormIdent, FormIdent]));
然後再補上一行"Result := nil;",
就可以在BCB中用新增的方式,
新增一個Form(unicode)至專案中,
不過仍然有幾個缺點,

第一點就是產生的TntForm的header檔,
不會自動加上"#include ",
這個要自己加, 要不然TntForm的函式就不能用了.

第二點就是一樣在[Project]->[Options]->[Forms]裡,
一樣無法在main form裡看到任何TntForm型態的form name,
這點我不知道會不會有什麼影響.

我目前使用大致正常,
不過我覺得這個方式並不是最好的方式,
如果這個是解法, 那怎麼作者會沒發現?
這個方式應該有他的問題存在吧,
不知道是否有其他高高手可以幫在看一下?

我也是個新手, 這樣處理過後, 只是比較方便使用TntForm,
並沒有徹底的解決原本TntForm所有的問題.

如有錯誤請大家幫忙指正.

===================引 用 文 章===================
我試過最新的 2.3.0 版,這個問題還是在。
不知道你是怎麼解決的呢?
能不能分享給大家知道呢?

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

TnTWare最近又更新了(好像1/24更新),
這個問題之前已經在TntWare的論壇上被提出了,
我不知道新版的有沒有解決不能使用TntForm的問題,
不過我是用2.2.8的版本,
我的作法比較笨一點, 而且有危險性,
就是直接去修改source code,
把某一行mark掉, 在加一行新的就可以new一個新的Form(unicode),
礙於不知道這樣是不是有額外的風險, 我怕誤導其他人,
不過去追一下程式碼應該就知道了,
我是修改"TntForms_Design.pas"這個檔案,
不知道是不是有高手能幫忙看一下?

還是有人試過新版的, 能提供一下這問題解決了沒?


dennieschang
一般會員


發表:2
回覆:24
積分:15
註冊:2002-03-13

發送簡訊給我
#31 引用回覆 回覆 發表時間:2007-05-07 19:49:36 IP:210.241.xxx.xxx 訂閱
如果是使用 Delphi,  請手動直接把您的 Form 宣告從

TForm1 = class(TForm)
... (略)
end;

改成:
TForm1 = class(TTntForm)
... (略)
end;

如果是 BCB/ Turbo C , 請把
該 Form 的 .h 檔裡面的宣告

class TForm1 : public TForm
{
...(略)
}

改成:
class TForm1 : public TtntForm
{
...(略)
}
即可.

TntWare 裡面或許還有少數的小 Bug, 但它的確是我用過, 改過蠻不錯的
元件之一. 我也改了 TntHeaderControl, 也跟作者說過我改的地方了, 但
我忘了有沒有應作者要求回傳就是了.....

畢竟 TntWare 不比 Indy, 開始營利了, 我就不分享給他們了...
希望回文對大家有幫助.

Best Regard.
Dennies Chang.

Delphi/Kylix Indy 網路程式設計一書作者.

------
Indy - Delphi, BCB, Kylix最好用的網路元件組. 小弟也是Indy Core Team的成員之一, 平常會在
http://www.sanbrandstudio.com/
http://delphi.ktop.com.tw/
以及Delphi深度論壇出沒.
編輯記錄
dennieschang 重新編輯於 2007-05-07 19:50:55, 註解 無‧
[<<] [1] [2] [>>]
系統時間:2024-04-19 10:16:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!