2007-06-13

[BCB] 文字編輯的物件裡,得知他的行列數

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);
}

轉載自:http://tinyurl.com/27733s

沒有留言: