Цитата:
Сообщение от Ryuji
2) Как в сделать навигацию по TreeViever, чтоб по нажатию на Button перекидывала на след запись, и наоборот..
?
|
Странно, явных средств для этой задачи не нашел в TreeView, поэтому предлогаю свой вариант.
У TreeView все элементы хранятся в одном массиве TreeView.Items, затруднений передвигаться на запись вроде нет, кроме одного, это как определить какой индекс элемента выбран в данный момент, как класс, так и сам Item такой информации не несут. поэтому набросал простую функцию определяющую положение Item-а..
Код:
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-го вопроса, если файлы называются так же как и элементы дерева (млм элементы дерева назвать так же как и имена файлов), то можно весь код, заменить одним:
Код:
WebBrowser1.Navigate(WideString(GetCurrentDir())+' /BOOK/'+
TreeView.Selected.Text+'.htm' );