我想爲TFileListBox創建一個新的事件。我想知道用戶何時選擇不同的項目。如何實現TFileListBox的OnSelectionChanged事件?
實現它會在用戶按下這樣的鼠標按鈕來調用該事件的最好辦法:
procedure TMyFileList.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
VAR PrevItem: Integer;
begin
PrevItem:= ItemIndex; <---------- Problem here
inherited;
if (Count> 0)
AND (PrevItem<> ItemIndex)
AND Assigned(FOnSelChaged)
then FOnSelChaged(Self, PrevItem);
end;
所以,我們說的拳頭項目(的ItemIndex = 0)已經被選定。 只要我按下鼠標按鈕選擇第二項,我就進入了MouseDown過程。但是這裏的ItemIndex已經是1而不是0. 爲什麼?
Delphi的哪個版本? – Dampsquid 2012-02-24 21:27:32
看起來您對選擇更改的位置不正確。顯然,選擇的變化較早。找到那個地方。我可以幫忙,但我不知道TFileList是什麼,所以我無法閱讀它的源代碼。 – 2012-02-24 21:30:37
對不起。我的確在談論tFileListBox。該代碼在Delphi 7/XE下的行爲相同。 – Ampere 2012-02-24 21:59:04