请教:怎么知道 listview 每个格子的位置(横坐标和竖坐标) |
|
npsgsys
一般會員 ![]() ![]() 發表:12 回覆:0 積分:2 註冊:2007-03-02 發送簡訊給我 |
请教:
我在窗体上加了个 listview 控件, 并且新建了 3个 columns , 还添加了几行 我想知道每个格子的坐标 (横坐标是不是可以通过 columns 的宽度来得到,是吗?) 竖坐标 怎么得到呢? 谢谢!
------
帮助别人的同时自己会得到更大的快乐——因为我们都是delphi的爱好者!! ![]() |
jasbeing
一般會員 ![]() ![]() 發表:6 回覆:19 積分:5 註冊:2002-08-09 發送簡訊給我 |
|
jasper_dale
初階會員 ![]() ![]() 發表:2 回覆:48 積分:35 註冊:2005-09-19 發送簡訊給我 |
提供兩個範例給您參考!希望對你有幫助~
第一個:藉由Columns取得X座標。 <textarea name="code" class="delphi" rows="10" cols="60">procedure TfrmDemo.lstDemoDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var vColumn3_L, vColumn3_R, vColumn5_L, vColumn5_R: Integer; begin Accept := False; vColumn3_L := lstDemo.Column[0].Width lstDemo.Column[1].Width lstDemo.Column[2].Width; vColumn3_R := vColumn3_L lstDemo.Column[3].Width; vColumn5_L := vColumn3_R lstDemo.Column[4].Width; vColumn5_R := vColumn5_L lstDemo.Column[5].Width; // if (Source is TListView) then begin if (TListView(Source) = lstDemoSource) then begin if (X >= vColumn3_L) and (X <= vColumn3_R) then Accept := True else if (X >= vColumn5_L) and (X <= vColumn5_R) then Accept := True; end; end; end; </textarea><br /> 第二個範例:藉由 OnSelectItem 取得一筆 Record 座標 <textarea name="code" class="delphi" rows="10" cols="60">procedure TfrmScripts.lstDemoSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); var vPoint: TPoint; begin if Selected then begin vPoint.X := Item.Position.X; vPoint.Y := Item.Position.Y; vPoint := lstDemo.ClientToScreen(vPoint); PopupMenu1.Popup(vPoint.X, vPoint.Y); end; end;</textarea><br /> 希望對你有幫助~
------
{"name":{["賈氏柏"]}} |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |