寫多語系程式,更換DBGrid 的顯示ColumnTitle 問題 |
缺席
|
weiliching
初階會員 發表:53 回覆:78 積分:31 註冊:2003-12-27 發送簡訊給我 |
我應了一個副程式,用來改變DBGrid 的Title顯示, 目的是要做多語系的Title
目前拿先將程式改的比較簡單點 用'M_Column1' 改成M_Test 顯示 目前 DBGrid1 是對映DataSource1 到AdoQuery1 上, var M_Component:TComponent; K,i,j:Integer; begin M_Component := Application.Components[i].FindComponent('DBGrid1'); if (M_Component is TDBGrid) then Begin for j := 0 to -1 TDBGrid(M_Component).FieldCount do begin if TDBGrid(M_Component).Fields[j].FieldName= 'M_Column1' then begin TDBGrid(M_Component).Columns[j].Title.Caption := 'M_Test'; Break; end;// end; // for j := 0 to -1 DBGrid1.FieldCount do end; // if (M_Component is TDBGrid) then Begin 發生的問題 1. 假如我的AdoQuery1 是沒有open , 他就會 TDBGrid(M_Component).FieldCount = 0 將無法執行更換 DBGrid1的Column[j].Title.Caption ='M_Test' 2. 假如我的 取到的AdoQuery1 去資料庫取得的Table 欄位並沒有M_Column1 欄位, 那就會產生亂碼的錯誤. 請問這兩個問題要如何解決? 是否可以不要用TDBGrid(M_Component).FieldCount 與TDBGrid(M_Component).Fields[j].FieldName 因為我發現這兩個都會連扯到AdoQuery 元件, 能否自己去抓自己的DBGrid 就能得到目前我要的資料 副檔是完整的副程式碼, 請個位大大幫忙解惑一下! 謝謝! 203131119 補充說明一下, 我在編譯時, 已經在 DBGrid 裡先用"欄位編輯器" 編輯了 欄位, 我是希望能直接抓我已經編輯好的欄位就可以了, 不需要扯到AdoQuery 元件, 目前我為了防止錯誤產生,就一定要先把AdoQuery 在轉換Title 先open 起來,副程式才能運作, 且抓到的Table 欄位一定要跟欄位編輯器一樣.否則就一定出錯..跳出 編輯記錄
weiliching 重新編輯於 2013-11-18 16:40:23, 註解 無‧
weiliching 重新編輯於 2013-11-19 08:55:41, 註解 無‧ weiliching 重新編輯於 2013-11-19 08:58:11, 註解 無‧ |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |