線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1123
推到 Plurk!
推到 Facebook!

如何在StringGrid的CELL實現EDIT的功能

缺席
Kriss
一般會員


發表:1
回覆:0
積分:0
註冊:2011-10-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-10-06 17:36:06 IP:60.248.xxx.xxx 訂閱
是這樣的
實作了一個StringGrid,想要在cell裡放值,預設是0
執行實可以對cell的值做修改。
但是當我點選cell時,原本的值就會看不見了
0
0
0
0



0
| <<游標點第2個時
0
0

============

希望可以做到點一下cell可以變成
0
0|
0
0


不知道有什麼方法可以做成這個樣子呢?

olozil
一般會員


發表:0
回覆:5
積分:6
註冊:2008-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-10-07 14:02:53 IP:114.33.xxx.xxx 未訂閱
StringGrid元件上放一個Edit元件模擬成cell

在StringGrid的Click事件取得所在cell

[code cpp]
int nCol, nRow;
TPoint MousePoint;
TRect rct;

//取得滑鼠位置
MousePoint = StringGrid_Single->ScreenToClient(Mouse->CursorPos);
//取得滑鼠位置的Cell
StringGrid_Single->MouseToCell(MousePoint.x, MousePoint.y, nCol, nRow);
//顯示編輯項
Edit_Single->Show();
this->ActiveControl = Edit_Single;
//取得Cell資訊
rct = StringGrid_Single->CellRect(nCol, nRow);
//調整Edit顯示
MousePoint.x = rct.Left;
MousePoint.y = rct.Top;
MapWindowPoints(StringGrid_Single->Handle, StringGrid_Single->Parent->Handle, (POINT *)&MousePoint, 1);
this->ActiveControl->SetBounds(MousePoint.x-1, MousePoint.y-1, rct.Width() 2, rct.Height() 2);
//取得內容
Edit_Single->Text = StringGrid_Single->Cells[nCol][nRow];
[/code]

此外, Edit的AutoSize屬性設為false

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