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

Вниз

Выделение в TreeView   Найти похожие ветки 

 
Димыч ©   (2007-01-25 10:51) [0]

Не пойму как сделать следующее: Не обходимо при клике по элементу Treeview его иконка изменялась с первой на вторую (это я реализовал легко), а вот как сделать так чтобы при повторном клике по томуже элементы его иконка вернулась вы исходное состояние я незнаю.

Вот так произвожу изменение с 1 иконки на 2ую:
procedure TForm10.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if node.StateIndex =3 then node.StateIndex:=2 else node.StateIndex :=3;
end;

при повторном клике того же элемента данное событие естественно не срабатывает, так как узнать что был произведен клик по уже выделеному элементу?


 
Elen ©   (2007-01-25 10:55) [1]


> Димыч

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

procedure TForm10.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if node.StateIndex =3 then begin node.StateIndex:=2; Exit end;
if node.StateIndex =2 then node.StateIndex :=3;
end;


 
stone ©   (2007-01-25 10:55) [2]

Странный ты какой-то. Говоришь про клики (OnClick), а обрабатываешь OnChange


 
Димыч ©   (2007-01-25 11:00) [3]

Elen, так то же неполучается :(

Stone, обрабатываю я только Onchange (ты прав), да только он не срабатывает при повтормон выделении элемента (в связи с чем у меня не происходит изменение иконки). Интуитивно я догадываюсь что тут нужно задействовать еще одно событие типа Onclick (только как в Onclik"е узнать по какому элементу кликнули)


 
Elen ©   (2007-01-25 11:01) [4]


> только как в Onclik"е узнать по какому элементу кликнули

TreeView1.Selected.
Точно OnClick обрабатывай.


 
stone ©   (2007-01-25 11:03) [5]


>  да только он не срабатывает при повтормон выделении элемента

Потому что ничего не меняется

> только как в Onclik"е узнать по какому элементу кликнули

Selected
только не забудь проверять его на nil


 
TRUNK ©   (2007-01-25 11:08) [6]

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

procedure TForm10.TreeView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
if (TreeView1.Selected.StateIndex = 3) then
 TreeView1.Selected.StateIndex := 2
else
 if (TreeView1.Selected.StateIndex = 2) then
   TreeView1.Selected.StateIndex := 3;
end;


 
Димыч ©   (2007-01-25 11:17) [7]

Всем спасибо, все работает! :)

Elen ты как всегда пришла первая на помощь, отдельное спасибо


 
Elen ©   (2007-01-25 11:30) [8]


> Димыч

И как всегда не обратила внимание на то что ты обрабатываеш OnChange.
Stone лучше поблагодари.



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

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

Наверх




Память: 0.48 MB
Время: 0.063 c
2-1169405647
Decoy
2007-01-21 21:54
2007.02.11
Помогите написать клиент


15-1169451377
Rule
2007-01-22 10:36
2007.02.11
Вот наконец и я созрел сделать свой личный сайт :-)


1-1166438371
DelphiLexx
2006-12-18 13:39
2007.02.11
Как запретить рисовать окантовку, в DBGridEh


15-1169285631
*Стажер*
2007-01-20 12:33
2007.02.11
Версии программы


11-1147784447
chum
2006-05-16 17:00
2007.02.11
работа с кнопками в заголовках mdvXLGrid