Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
ВнизВыделение в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c