六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

通過鼠標(biāo)右擊選擇TListBox中的選項(xiàng)

[摘要]有時(shí),我們要在ListBox的彈出式菜單中通過ItemIndex顯示項(xiàng)目的有關(guān)信息。但是,在項(xiàng)目上右擊鼠標(biāo)時(shí),ItemIndex不會(huì)象左擊那樣被改變。這篇文章將通過例子來告訴你如何實(shí)現(xiàn)此功能。假設(shè)你有一個(gè)ListBox,填充有稱作Widgets的類:type TWidget = class(Tob...
有時(shí),我們要在ListBox的彈出式菜單中通過ItemIndex顯示項(xiàng)目的有關(guān)信息。但是,在項(xiàng)目上右擊鼠標(biāo)時(shí),ItemIndex不會(huì)象左擊那樣被改變。這篇文章將通過例子來告訴你如何實(shí)現(xiàn)此功能。
假設(shè)你有一個(gè)ListBox,填充有稱作Widgets的類:

type TWidget = class(Tobject)
WidgetName : string;
WidgetStatus : boolean;
End;

Widgets : array [0..10] of TWidget

每一項(xiàng)WidgetName在ListBox中顯示出來。

你想要通過一個(gè)彈出式菜單來改變每一個(gè)Widget的狀態(tài),其中彈出式菜單與ListBox的OnPopUp事件關(guān)聯(lián)。如果狀態(tài)是活動(dòng)的,設(shè)置“Active”;如果不是活動(dòng)的,不設(shè)置“Active”。單擊“Active”來改變狀態(tài)。

問題是:鼠標(biāo)左鍵單擊ListBox會(huì)選擇一Widget,但用右鍵單擊(并顯示彈出菜單)時(shí)不會(huì)選擇。如果鼠標(biāo)不在已選項(xiàng)上,彈出菜單顯示的將不是鼠標(biāo)所在Widget的狀態(tài),而是已選Widget的狀態(tài)。

幸運(yùn)的是,ListBox的OnMouseDown比彈出式菜單的OnPopUp先被觸發(fā)。這樣,我們就能在彈出式菜單顯示之前用OnMouseDown事件設(shè)置ItemIndex。

TlistBox有一個(gè)方法:ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
如果能在Pos座標(biāo)處找到ListBox的一項(xiàng),這一方法將返回這一項(xiàng)的Index。如果沒有找到任何項(xiàng),且Existing值設(shè)為True,ItemAtPos將返回值-1,如果Existing值設(shè)為False,ItemAtPos將返回ListBox最后一項(xiàng)的Index值加1。

用這個(gè)方法結(jié)合OnMouseDown事件就解決了我們的問題:

OnMouseDown代碼:

procedure TForm1.WidgetListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
MousePos : TPoint;
OverItemIndex : integer;

begin
MousePos.x := X;
MousePos.y := Y;

if Button = mbRight then
begin
OverItemIndex := WidgetList.ItemAtPos(MousePos,False);
WidgetList.ItemIndex:=OverItemIndex;
end;
end;


OnPopUp代碼:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
Index : integer;
begin
Index := WidgetList.ItemIndex;
PopUpMenuItemActive.Checked := Widgets[Index].WidgetStatus;
end;


彈出式菜單項(xiàng)"Active"的OnClick代碼:
procedure TForm1.PopUpMenuItemActiveClick(Sender: TObject);
var
Index : integer;
begin
Index := WidgetList.ItemIndex;
Widgets[Index].WidgetStatus := not Widgets[Index].WidgetStatus;
PopUpMenuItemActive.Checked:=not PopUpMenuItemActive.Checked;
end; 


主站蜘蛛池模板: 亚洲一区免费在线 | 图片区 日韩 欧美 亚洲 | 视频在线观看40分钟免费 | 日本韩国在线视频 | 色播亚洲 | 最近更新免费中文字幕大全 | 四虎免费在线视频 | 日本一道高清 | 色屁屁影院免费观看入口 | 在线国产一区二区 | 四虎在线影视在线影库 | 日产精品卡二卡三卡四卡乱码视频 | 人人婷婷色综合五月第四人色阁 | 四虎影视免费永久在线观看 | 日韩福利影视 | 一本久道久久综合 | 亚洲欧美日本在线观看 | 一级做a爰全过程免费视频毛片 | 亚洲风情网 | 日本高清视频在线www色下载 | 婷婷激情五月综合 | 色资源站| 日韩a视频在线观看 | 亚洲成a人片在线观 | 欧美丝袜办公室精品 | 中文字幕亚洲一区 | 亚洲一二三在线 | 青娱乐自拍视频 | 亚洲精品视频免费观看 | 日韩欧美在线观看一区 | 色天使色婷婷丁香久久综合 | 天天草夜夜骑 | 欧美一级片a | 亚洲国产成a人v在线 | 午夜性影院爽爽爽爽爽爽 | 亚洲 欧美 91 | 伊人久久大线蕉香港三级 | 日本一本高清 | 泰剧不期而爱第三季免费全集观看 | 在线五月婷婷 | 日韩精品中文字幕一区三区 |