Текущий архив: 2009.12.13;
Скачать: CL | DM;
ВнизTreeView MouseRightClick Найти похожие ветки
← →
Aleks (2009-10-20 16:30) [0]На форме есть тривьюв с кучей одноуровневых веток. Имеется контекст.меню на правой кнопке мыши чтобы удалять-добавлять ветки в тривьюв. Только вот нужно сначала кликать левой кнопкой мыши чтобы переместить фокус на нужную ветку,а только потом правую и так жать "Удалить",иначе удаляет не ту ветку :(
Код такой:
if TreeView1.Items.Count>0 then
begin
if TreeView1.Selected<>nil then
TreeView1.Items.Delete(TreeView1.Selected);
end;
Вопрос: как сделать чтобы фокус автоматически перемещелся на указанную при нажатиии правой клавиши мыши ветку? (Свойство TreeView RightClickSelect я установил в True, но это не помогло)
← →
Dennis I. Komarov © (2009-10-20 16:42) [1]Сперва присвоить фокус (Selected) там где надо, а потом уже удалять...
← →
Aleks (2009-10-20 17:33) [2]Каким способом присвоить? :/
← →
Dennis I. Komarov © (2009-10-20 17:46) [3]...Selected:=(тот нод который был под курсором Jerry при наступлении соответствующего события)
← →
clickmaker © (2009-10-20 17:47) [4]OnMouseDown
← →
Dennis I. Komarov © (2009-10-20 17:48) [5]Впрочем, можно удалять сразу нужный нод, а не "выбранный", но это уже как изволит автор GUI...
← →
Dennis I. Komarov © (2009-10-20 17:49) [6]
> clickmaker © (20.10.09 17:47) [4]
На первом скачке... ;)
← →
DVM © (2009-10-20 17:51) [7]
> Aleks (20.10.09 16:30)
procedure TfrmMain.tvCategoriesMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Node: TTreeNode;
begin
Node := (Sender as TTreeView).GetNodeAt(X,Y);
if Node <> nil then
if Button = mbRight then
SendMessage((Sender as TTreeView).Handle, TVM_SELECTITEM, TVGN_CARET, Longint(Node.ItemId));
end;
← →
Aleks (2009-10-21 11:12) [8]Спасибо большое за полезные советы!
Страницы: 1 вся ветка
Текущий архив: 2009.12.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.01 c