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

有一好沒兩好!? INI實現多國語言只能成功一次?

缺席
ac12zz
一般會員


發表:2
回覆:2
積分:0
註冊:2006-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-19 13:53:26 IP:220.130.xxx.xxx 訂閱
請教各位先進
小弟參考dllee兄的範例編寫多國語言
有繁、簡、英三個 INI檔,並在頁面加入下拉式選單來更改使用的語系
一切照著範例來,也有宣告INIFiles.hpp了
為何只有在第一次formshow時成功
之後在 ComboBox的 OnChange 事件中呼叫下面的副程式
卻是怎麼呼叫怎麼失敗,readingstring始終是傳出預設值而非INI檔內的資料
請各位先進救救命~!
感恩!!


--------------------------------------------------------------------------------

程式碼如下:
void __stdcall TInitial::ChangeLanguage(void)
{
//***********HMI****************************
TIniFile *ini;
AnsiString asHMITemp = (iLanguage == 0)? "LangChineseT.ini":((iLanguage == 1)? "LangChineseS.ini":"LangEnglish.ini");
ini = new TIniFile(ExtractFilePath(Application->ExeName) "Data\\" asHMITemp);
for(int i=0 ; iComponentCount ; i )
{
if(String(Initial->Components[i]->ClassName()) == "TLabel" )
{
((TLabel *)Initial->Components[i])->Caption =
ini->ReadString(Initial->Caption, Initial->Components[i]->Name ".Caption", ((TLabel *)Initial->Components[i])->Caption);
}
if(String(Initial->Components[i]->ClassName()) == "TToolButton")
{
((TToolButton *)Initial->Components[i])->Hint =
ini->ReadString(Initial->Caption, Initial->Components[i]->Name ".Hint", ((TToolButton *)Initial->Components[i])->Hint);
}
if(String(Initial->Components[i]->ClassName()) == "TMenuItem")
{
((TMenuItem *)Initial->Components[i])->Caption =
ini->ReadString(Initial->Caption, Initial->Components[i]->Name ".Caption", ((TMenuItem *)Initial->Components[i])->Caption);
}
if(String(Initial->Components[i]->ClassName()) == "TButton")
{
((TButton *)Initial->Components[i])->Caption =
ini->ReadString(Initial->Caption, Initial->Components[i]->Name ".Caption", ((TButton *)Initial->Components[i])->Caption);
}
}
delete ini;
ini = NULL;
//***********End of HMI*********************
}


--------------------------------------------------------------------------------
INI 檔格式如下:
[Dicing Saw]

btnReset.Caption=錯誤已排除
Edit1.Text=水氣警報
Label4.Caption=各軸啟動中請稍候....
ToolButton1.Hint=工件資料
ToolButton2.Hint=刀具資料
F1.Caption=檔案(&F)
D1.Caption=操作參數(&D)
B1.Caption=預切資料(&B)
YY1.Caption=Y 軸量測(&Y)
V1.Caption=機台顯示(&V)
IOI1.Caption=I/O狀態(&I)
Z1.Caption=參數狀態(&J)
N5.Caption=生產統計(&P)
H3.Caption=說明(&H)
ac12zz
一般會員


發表:2
回覆:2
積分:0
註冊:2006-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-20 11:33:27 IP:220.130.xxx.xxx 訂閱
 小弟自回賺分數
因為我是以每個 form 的 caption 做成 INI 的 section
使用 Reading( Initial->Caption, … 來讀值時
第一次可以成功,但第二次我監看到的 Initial->Caption 是 " MainForm -[MainKey] "
因為多了後面那串,所以才會找不到 Section


PS. 感謝版主幫小弟歸類主題
抱歉給您添麻煩

系統時間:2024-05-03 16:23:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!