請問如何在文字編輯的物件裡,得知他的行列數 |
尚未結案
|
phoenix_csie
一般會員 發表:6 回覆:15 積分:4 註冊:2005-10-11 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
就我所知Memo跟RichEdit只能取得行,第幾"列"的話就得把該行的資料讀出來自行判斷了
一般Memo跟RichEdit很少有人會去判斷列的吧??
會用到列的話多半是項目式的字串如 "金額" "名稱" "地址"等等
而這類的東西通常都會用StringGrid或ListView來實做 至於加到Panel中的話,直接以
StatusBar->Panels->Items[0]->Text = 行數;
StatusBar->Panels->Items[1]->Text = 列數;
就行了 ====================================
懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
phoenix_csie 您好: Memo 與 RichEdit 物件都繼承自 TCustomMemo,因此我們可以透過 TCustomMemo 的 CaretPos 屬性來獲得您想要的資訊,我將您要的動作寫成一個自定函式,這樣子比較方便使用,您參考看看吧:
// 於 .h 檔案: private: void __fastcall ShowEditPos(TObject *Sender); // 於 .cpp 檔案: void __fastcall TForm1::ShowEditPos(TObject *Sender) { int col = ((TCustomMemo*)Sender)->CaretPos.x 1; int line = ((TCustomMemo*)Sender)->CaretPos.y 1; StatusBar1->Panels->Items[0]->Text = "Line: " IntToStr(line); StatusBar1->Panels->Items[1]->Text = "Col: " IntToStr(col); } // Memo 物件使用範例 void __fastcall TForm1::Memo1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { ShowEditPos(Memo1); } // RichEdit 物件使用範例 void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { ShowEditPos(RichEdit1); }7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/10/26 09:44:25 |
phoenix_csie
一般會員 發表:6 回覆:15 積分:4 註冊:2005-10-11 發送簡訊給我 |
引言: // Memo 物件使用範例 void __fastcall TForm1::Memo1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { ShowEditPos(Memo1); } // RichEdit 物件使用範例謝謝你的程式範例 不過我想請問以上的2個部分不用加入.h檔裡頭嗎? 如果我單純的加入到void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { ShowEditPos(RichEdit1); } void __fastcall TForm1::RichEdit1Change(TObject *Sender) { ShowEditPos(RichEdit1); }則只會一直顯示Line:1 col:1 發表人 - phoenix_csie 於 2005/10/26 20:58:18 發表人 - phoenix_csie 於 2005/10/26 21:00:00 |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
phoenix_csie 您好: 很抱歉,我誤認您會透過點擊 Object Inspector 視窗的事件表,來讓 BCB 自動產生 "OnKeyUp 事件" 處理程序的框架與宣告,因此僅將 "自定函式" 的宣告特別列出來。 不清楚您的測試為何會無效?我剛才也對 OnChange 事件做了測試,結果是 OK 的,我不知道您的測試過程是如何的?因此我僅能用猜測的來提出可能狀況供您參考:
1. 請確認您瞭解了 OnChange 事件的作用,並且是依據它的觸發時機來做的測試。 2. 請確定一下您的設定與實際操作都是在 RichEdit1 這個元件上面。
雖然我在前一篇是以 OnKeyUp 事件來作為呼叫自定函式的範例,但是這並不代表著您 "僅能" 使用該事件來呼叫,自定函式已經寫好了,您可以依據您的實際需求來運用它。 7 天天敲鍵盤 v 時時按滑鼠 8
|
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
|
phoenix_csie
一般會員 發表:6 回覆:15 積分:4 註冊:2005-10-11 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
phoenix_csie
一般會員 發表:6 回覆:15 積分:4 註冊:2005-10-11 發送簡訊給我 |
|
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
|
phoenix_csie
一般會員 發表:6 回覆:15 積分:4 註冊:2005-10-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |