Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 14:13   #1
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию TTreeView - событие onClick - проверить на чем был клик

Здравствуйте.
В компонент TTreeView подгружается дерево папок с диска(не суть важно откуда).
При клике на папку отображается информация о папке в TMemo в виде текста.
Нужно, чтобы код в обработчике события onclick отрабатывал только тогда, когда клик происходит по папке, а не на пустом месте TTreeView или крестике для раскрытия списка.
Код:
procedure TForm1.FoldersClick(Sender: TObject);
begin
if Folders.Selected <> nil then
  begin
    {... нужно чтобы этот код не исполнялся при клике на пустом месте или крестике для раскрытия списка ...}
  end;
end;
Подскажете, как правильно организовать проверку? В Sender всегда TTreeView.
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 23.07.2012, 15:36   #2
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Ловить OnMouseDown вместо OnClick?
Код:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  SelNode : TTreeNode;
begin
  SelNode := (Sender as TTreeView).GetNodeAt(X, Y);
  if (SelNode <> nil) and (SelNode.DisplayRect(true).Contains(Point(X, Y))) then
  begin
    // ...
  end;
end;
volvo877 вне форума Ответить с цитированием
Старый 23.07.2012, 15:41   #3
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Нет, пожалуй, не OnMouseDown, а OnChange.
Клик, кликом, а только OnChange даст полную уверенность, что при переходе с одного элемента на другой и клавиатурой (не только мышкой), наша процедура отработает.
Прик вне форума Ответить с цитированием
Старый 23.07.2012, 16:18   #4
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Событие OnChange подошло, спасибо.
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие Onclick (непостоянное) medved6216 Общие вопросы Delphi 5 15.03.2012 12:03
У динамически созданной формы есть событие OnClick, но само событие не происходит Hunter_bog Компоненты Delphi 25 23.01.2012 23:50
TTreeView и динамическое создание TTreeNode Dogmat C++ Builder 0 27.06.2011 17:27
Undeclared identifier: 'TTreeView'('ttreenode') boshki Помощь студентам 9 12.05.2011 18:27
TreeView событие OnClick Alana Компоненты Delphi 2 18.11.2010 14:50