Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TreeView MouseRightClick [D7, XP]


Aleks ©   (2009-10-20 16:30:00) 

На форме есть тривьюв с кучей одноуровневых веток. Имеется контекст.меню на правой кнопке мыши чтобы удалять-добавлять ветки в тривьюв. Только вот нужно сначала кликать левой кнопкой мыши чтобы переместить фокус на нужную ветку,а только потом правую и так жать "Удалить",иначе удаляет не ту ветку :(
Код такой:
if TreeView1.Items.Count>0 then
begin
if TreeView1.Selected<>nil then
   TreeView1.Items.Delete(TreeView1.Selected);
end;
Вопрос: как сделать чтобы фокус автоматически перемещелся на указанную при нажатиии правой клавиши мыши ветку? (Свойство TreeView RightClickSelect я установил в True, но это не помогло)


Aleks   (2009-10-21 11:12:00) [1]

Спасибо большое за полезные советы!


DVM   (2009-10-20 17:51:00) [2]


> 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;


Dennis I. Komarov   (2009-10-20 17:49:00) [3]


> clickmaker ©   (20.10.09 17:47) [4]

На первом скачке... ;)


Dennis I. Komarov   (2009-10-20 17:48:00) [4]

Впрочем, можно удалять сразу нужный нод, а не "выбранный", но это уже как изволит автор GUI...


clickmaker   (2009-10-20 17:47:00) [5]

OnMouseDown


Dennis I. Komarov   (2009-10-20 17:46:00) [6]

...Selected:=(тот нод который был под курсором Jerry при наступлении соответствующего события)


Aleks   (2009-10-20 17:33:00) [7]

Каким способом присвоить? :/


Dennis I. Komarov   (2009-10-20 16:42:00) [8]

Сперва присвоить фокус (Selected) там где надо, а потом уже удалять...


Наверх

Титульная страница Поиск, карта сайта Написать письмо