Главная страница
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.046 c
8-1092503031
Batoon
2004-08-14 21:03
2004.11.21
Помогите определиться


14-1099537717
Думкин
2004-11-04 06:08
2004.11.21
С днем рождения! 4 ноября


1-1100091682
Артем К.
2004-11-10 16:01
2004.11.21
Как перекомпилировать стандартные борландские packages?


1-1100156932
Dmitriy O.
2004-11-11 10:08
2004.11.21
Как отобразить данные из БД не так как они там записанны ?


4-1097344970
dimon_programmer
2004-10-09 22:02
2004.11.21
Как электрикой правильно выставить значение на LPT