Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

TreeView. Нужно, чтобы по DblClick узел не разворачивался...   Найти похожие ветки 

 
blast ©   (2004-10-31 01:31) [0]

Доброго времени суток, МАСТЕРА ДЕЛЬФИ :).

Вопросик такой: Есть дерево. Хочется сделать, чтобы по DblClick выполнялись действия и не происходило разворачивание\сворачивание узла у которого есть наследники.


 
_def[eND]er   (2004-10-31 01:39) [1]

procedure TForn1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
 var AllowExpansion: Boolean);
begin
 AllowExpansion := False;
end;

А в OnDblClick просто вставляй нужный код.


 
blast ©   (2004-10-31 02:10) [2]

_def[eND]er.

Нужно еще чтобы дерево раскрывалось если не было DblClick...


 
_def[eND]er   (2004-10-31 02:19) [3]

А по какому событию оно должно раскрываться?

А вообще так: TTreeNode.Expand


 
blast ©   (2004-10-31 02:35) [4]

Если Allow := False, то TreeView1.Expand(false); НЕ РАСКРЫВАЕТ УЗЕЛ...

Хорошо, как отловить нажатие на плюсик?


 
Defunct ©   (2004-10-31 02:46) [5]

blast ©   (31.10.04 02:35) [4]

может быть вам подойдет такое решение:

procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
 If TreeView1.Selected.Expanded Then TreeView1.Selected.Collapse(False)
                                Else TreeView1.Selected.Expand(False);

 // здесь ваша обработка dbl-click
end;


 
_def[eND]er   (2004-10-31 02:52) [6]

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


var
 UserExpanding, UserCollapsing: Boolean;  //  Эти переменные должны быть глобальными

procedure TForn1.Create(Sender: TObject);
begin
 UserExpanding := False;
 UserCollapsing := False;
end;

procedure TForn1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
begin
 AllowExpansion := UserExpanding;
 UserExpanding := False;
end;

procedure TForn1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
var AllowCollapse: Boolean);
begin
 AllowCollapse := UserCollapsing;
 UserCollapsing := False;
end;

procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
 //  Твой код
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 UserExpanding := True;
 TTreeNode.Expand();
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 UserCollapsing := True;
 TTreeNode.Collapse();
end;



 
_def[eND]er   (2004-10-31 02:54) [7]

На месте TTreeNode впиши ветку, которую надо обработать, или же имя твоего TreeView, если требуется свернуть/развернуть все дерево


 
blast ©   (2004-11-05 22:34) [8]

Всем спасиба за участие, проблемку решил созданием потомка TreeView и отловом сообщения:

procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;

Оно происходит ДО!!! Expand, DblClick и Collapse.

Там все и разрещается-запрещается. Добавил свойство AllowExpandByDblClick и живу спокойно.

Еще раз спасиба, тему можно закрыть...

Вот такие вот дела, Blast ;)



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
4-1097474522
Goffman
2004-10-11 10:02
2004.11.21
Прямой доступ к флопику


1-1099907665
Kot Vaska
2004-11-08 12:54
2004.11.21
Загрузка тестового файла


11-1077803384
ALeXXXX
2004-02-26 16:49
2004.11.21
Немогу понять как добовлять items в TreeView?


14-1099429948
Andy BitOff
2004-11-03 00:12
2004.11.21
Интересно ваше мнение.


1-1099599852
Gero
2004-11-04 23:24
2004.11.21
TToolButton со стилем tbsDropDown и XP-темы