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

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

проблема с TShellTreeView [D7, 95/98, 2000]


Trible ©   (2007-02-17 13:43:00) 

Привет всем, использую TShellTreeView для отображения структуры файлов/папок на диске, назначаю для него PopupMenu - контекстное меню, которое должно выскакивать при щелчке правой кнопкой на элементе дерева. Проблема вот в чем: если ПРАВОЙ кнопкой щелкнуть на каком-нибудь элементе, элемент выделится, отобразится контексное меню, но потом выделение сразу перейдет на ранее выбранный элемент (или корневой)! Если же щелкнуть ЛЕВОЙ кнопкой на нужном элементе, потом вызвать контекстное меню правой - все нормально. Как можно сделать, чтобы при ПРАВОМ щелчке выделение не "уходило" с элемента?


Trible   (2007-02-20 16:07:00) [1]

Спасибо, RASkov, [3] помогло.


RASkov   (2007-02-18 19:35:00) [2]

> [0] Trible   (17.02.07 13:43)

Т.е. лучше так

procedure TForm.ShellTreeView1MouseUp();
var t: TTreeNode;
begin
 if Button=mbRight then begin
  t:=ShellTreeView1.GetNodeAt(X,Y);
  if t<>nil then t.Selected:=True;
 end;
end;


RASkov   (2007-02-18 19:33:00) [3]

> [1] TRUNK ©   (18.02.07 19:12)

Оно по умолчанию так включено - непомогает в данном случае [0].

> [0] Trible   (17.02.07 13:43)

Попробуй так:

procedure TForm.ShellTreeView1MouseUp();
begin
 if Button=mbRight then
  ShellTreeView1.GetNodeAt(X,Y).Selected:=True;
end;


TRUNK   (2007-02-18 19:12:00) [4]

TShellTreeView.RightClickSelect := true;


Наверх

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