如何获取鼠标点选的listview指定行列的值。 |
尚未結案
|
dragon100
一般會員 發表:20 回覆:11 積分:6 註冊:2004-06-29 發送簡訊給我 |
|
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
procedure TForm.ListViewDblClick(Sender: TObject); var ListItem: TListItem; begin // 你要的應該是底下這一行吧.. ListItem:=ListView.GetItemAt(Mouse_X,Mouse_Y); if Assigned(ListItem) and ListItem.Selected then begin if Assigned(ListItem.Data) then begin // 執行對應的動作... end; end; end; |
dragon100
一般會員 發表:20 回覆:11 積分:6 註冊:2004-06-29 發送簡訊給我 |
|
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
1. 一開始你就會把每個值的指標存在ListItem.Data中.
2. 定義二個Public變數Mouse_X, Mouse_Y, 在OnMouseMove時, 一直Update這個值。
3. 我的範例中, 是Double Click時觸發, 從你的例子中, 你要的值只是存放在ListItem.Caption. 那你只要ShowMessage(ListItem.Caption)就是那個值, 如果你的值是放在ListItem.Data, 則必須利用以下指令, Value:=Integer(ListItem.Data^); 取回對應的指標值, 而Value應該就是你要的結果。
|
dragon100
一般會員 發表:20 回覆:11 積分:6 註冊:2004-06-29 發送簡訊給我 |
|
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
不知道以下內容是不是能幫上你的忙..
[在FormCreate程式段] ListItem:=ListView.Items.Add; ListItem.Caption:='XXX'; // 把你要的資料依序放入Caption; [在MouseMove程式段] procedure TFM_Main.ListViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var ListItem: TListItem; Str: String; begin // 將目前的滑鼠位置記錄下來.. Mouse_X:=X; Mouse_Y:=Y; ListItem:=ListView.GetItemAt(Mouse_X,Mouse_Y); // 如果滑鼠移到小圖示上時, 改成Hand型的滑鼠游標。 if Assigned(ListItem) then begin ListView.Cursor:=crHandPoint; end else begin ListView.Cursor:=crDefault; end; end; [在Double Click的程式段] ListItem:=ListView.GetItemAt(Mouse_X,Mouse_Y); if Assigned(ListItem) and ListItem.Selected then begin // 依你的需求, 似乎只要識別Caption的值。 ShowMessage(ListItem.Caption); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |