我試圖切換TCheckListBox
項目狀態,因此如果選中它,則取消選中它,反之亦然。這通常只在您點擊物理盒本身時纔會切換,但我希望它在用戶單擊項目行上的任意位置時切換。單擊CheckListBox項目以切換該項目的檢查狀態
下面的代碼可以工作,但是現在可以防止物品在物理框中單擊時可以切換(例如,如果當前未選中,那麼它們會在框中單擊,並保持未選中狀態)。
是否有可能在代碼中同時存在兩種行爲或錯誤?
procedure TMainFrm.CheckListBoxModulesMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
APoint: TPoint;
Index: integer;
begin
if (Button = mbLeft) then
begin
APoint.X := X;
APoint.Y := Y;
Index := CheckListBoxModules.ItemAtPos(APoint, True);
if(Index > -1) then
begin
CheckListBoxModules.Checked[Index] := not CheckListBoxModules.Checked[Index];
end;
end;
end;
類似於'如果y> 16然後開始...結束' – bummi 2014-09-19 22:41:08
嗯我想這是有效的。 X確實。 – ikathegreat 2014-09-19 22:52:27