Главная страница
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.058 c
1-1099827525
alexa
2004-11-07 14:38
2004.11.21
ScrollBar в RichEdit


14-1099488671
Руслана
2004-11-03 16:31
2004.11.21
Не знает ли кто компонет типа TrackBar только с линейкой


1-1099519559
BadProg
2004-11-04 01:05
2004.11.21
TClientSocket в Delphi 7


1-1099474155
dimbo
2004-11-03 12:29
2004.11.21
блокировка ctrl+alt+del


1-1099778557
Logun
2004-11-07 01:02
2004.11.21
Сжатие данных