Цитата:
Сообщение от Ryuji
2) Как в сделать навигацию по TreeViever, чтоб по нажатию на Button перекидывала на след запись, и наоборот..
?
|
Странно, явных средств для этой задачи не нашел в TreeView, поэтому предлогаю свой вариант.
У TreeView все элементы хранятся в одном массиве TreeView.Items, затруднений передвигаться на запись вроде нет, кроме одного, это как определить какой индекс элемента выбран в данный момент, как класс, так и сам Item такой информации не несут. поэтому набросал простую функцию определяющую положение Item-а..
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | procedure TForm1 . FormCreate(Sender: TObject);
begin
TreeView1 . HideSelection:= false ;
TreeView1 . Selected:=TreeView1 . TopItem;
end ;
function TForm1 . GetNodeIndex( const aNode:TTreeNode): Integer ;
begin
for Result:= 0 to TreeView1 . Items . Count - 1 do
if TreeView1 . Items . Item[Result] = TreeView1 . Selected then exit;
Result:= 0 ;
end ;
procedure TForm1 . ButtonNextClick(Sender: TObject);
var
N: Integer ;
begin
N:=GetNodeIndex(TreeView1 . Selected);
if N < TreeView1 . Items . Count- 1 then
TreeView1 . Selected:=TreeView1 . Items . Item[N+ 1 ];
end ;
procedure TForm1 . ButtonLastClick(Sender: TObject);
var
N: Integer ;
begin
N:=GetNodeIndex(TreeView1 . Selected);
if N < TreeView1 . Items . Count- 1 then
TreeView1 . Selected:=TreeView1 . Items . Item[N- 1 ];
end ;
|
По поводу 3-го вопроса, если файлы называются так же как и элементы дерева (млм элементы дерева назвать так же как и имена файлов), то можно весь код, заменить одним:
Код:
1 2 | WebBrowser1 . Navigate( WideString (GetCurrentDir())+ ' /BOOK/' +
TreeView . Selected . Text+ '.htm' );
|