Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с TreeView

7.9K
10 января 2007 года
user13
66 / / 07.11.2006
Выбрав какой не будь итем, как иму зделать какое либо действие
8
10 января 2007 года
mfender
3.5K / / 15.06.2005
Гм... У TreeView есть уже свои события. Их предостаточно, чтобы справляться со всеми нуждами. Непосредственно у TTreeNode событий нет. Но можно написать наследышей от TTreeView и TTreeNode. Так можно обозначить события непосредственно в нодах.

А какие действия нужно сделать?
7.9K
10 января 2007 года
user13
66 / / 07.11.2006
Да любое... вот например

+123
|-------
|--- Событи при двайном клике
|-------

Мне просто нада знать как это происходит
8
10 января 2007 года
mfender
3.5K / / 15.06.2005
А F1 уже не помогает?

 
Код:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
  Node: TTreeNode;
begin
  Node := TTreeView(Sender).Selected;
  showmessage(Node.Text);
end;
302
11 января 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: mfender
А F1 уже не помогает?


Этот код может подвести, если пользователь сделал двойной клик на пустом месте. Могу предложить такой вариант.

Код:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
  Node: TTreeNode;
  pt: TPoint;
begin
  pt := TreeView1.ScreenToClient( Mouse.CursorPos );
  Node := TreeView1.GetNodeAt( pt.X, pt.Y );
  if Node <> Nil then
  begin
    ShowMessage( Node.Text );
  end;
end;
8
11 января 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Sagittarius
Этот код может подвести, если пользователь сделал двойной клик на пустом месте.


Нет, не подведёт. Сработает всё-равно. Т.к. какой-нибудь нод выделен всегда.

302
12 января 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: mfender
Нет, не подведёт. Сработает всё-равно. Т.к. какой-нибудь нод выделен всегда.


А если нодов нет вообще?

Даже если какой-то нод выделен, то это будет некорректный нод. Вот что я имел в виду.

8
12 января 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Sagittarius
А если нодов нет вообще?

Даже если какой-то нод выделен, то это будет некорректный нод. Вот что я имел в виду.


Всё верно. Твой способ - правильный. Но автор хотел увидеть, как вообще отреагировать на события (на OnDblClick в частности).

7.9K
12 января 2007 года
user13
66 / / 07.11.2006
Всем спасибо что помогли :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог