![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ещё раз про TreeView [D7, WinXP]
DelphiNew © (2004-07-13 09:59:00)Подскажите как можно перейти к предыдущему элементу верхнего уровня?
DelphiNew (2004-07-13 11:10:00) [1]Спасибо
DelphiNew (2004-07-13 11:10:00) [2]Спасибо за помощь
Семен Сорокин (2004-07-13 10:12:00) [3]и куча методов:
getFirstChild
GetLastChild
GetNext
GetNextChild
getNextSibling
GetNextVisible
GetPrev
GetPrevChild
getPrevSibling
GetPrevVisible
подробнее см. в справке (F1)
Семен Сорокин (2004-07-13 10:10:00) [4]TTreeNode.Parent
а еще есть у него св-во Level
Ega23 (2004-07-13 10:09:00) [5]Мда, сейчас на код этот посмотрел...
Всё что тебе нужно, это
tvSets.Selected:=tvSets.Items[CurrentIndex-1];
или
tvSets.Selected:=tvSets.Items[CurrentIndex+1];
Ну, конечно, проверять, чтобы было 0<=Твой_Индекс<tvSets.Items.Count
Ega23 (2004-07-13 10:04:00) [6]Вот кусок из проета старого выдрал, может поможет.
Здесь tvSets:TTreeView.
function TFMain.FindNearest(const CurrentIndex:Integer; IsUp:Boolean):Integer;
begin
Result:=CurrentIndex;
if IsUp then
begin // движение по TreeView вверх
if (tvSets.Items[CurrentIndex].Text=tvNodeCaps[6]) or
(tvSets.Items[CurrentIndex].Text=tvNodeCaps[11]) then
tvSets.Selected:=tvSets.Items[CurrentIndex-1];
if (tvSets.Items[CurrentIndex].Text=tvNodeCaps[0]) then
tvSets.Selected:=tvSets.Items[DefaultNodeIndex];
end
else
begin // движение по TreeView ввниз
if (tvSets.Items[CurrentIndex].Text=tvNodeCaps[6]) or
(tvSets.Items[CurrentIndex].Text=tvNodeCaps[11]) then
tvSets.Selected:=tvSets.Items[CurrentIndex+1];
if (tvSets.Items[CurrentIndex].Text=tvNodeCaps[0]) then
tvSets.Selected:=tvSets.Items[DefaultNodeIndex];
end;
tvSets.OnClick(nil);
end;