![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не раскрывается TreeView [D7, WinXP]
DelphiNew © (2004-07-09 17:17:00)Делаю поиск по Дереву нужно чтобы когда нашёлся нужный элемент раскрывался путь к нему. делаю так:
procedure TFormMain.Button1Click(Sender: TObject);
var
Noddy, Noddy1: TTreeNode;
Searching: Boolean;
SearchTarget: string;
begin
SearchTarget:=FormMain.Edit1.Text;
Noddy := Tree.Items[0];
Searching := true;
while (Searching) and (Noddy <> nil) do
begin
if Noddy.text = SearchTarget then
begin
Searching := False;
Tree.Selected := Noddy;
Tree.SetFocus;
end
else
begin
Noddy := Noddy.GetNext
end;
end;
end;
элемент то он находит но ветка не раскрывается. Как можно исправить сие недорозумение
DelphiNew (2004-07-09 17:49:00) [1]Изменил свойство HideSelection в False всё равно не разворачивает. Причёт такая фигня если например вручную развернуть нужную ветку и потом свернуть то начинает работать, регистры совпадают на 100%
wild_arg (2004-07-09 17:39:00) [2]Может он у тебя просто не находит нужную ветку? Может ты ищешь не существующую ветку? Ну там регистры букв не совпадают или еще что
wild_arg (2004-07-09 17:37:00) [3]Не могет быть. Только что накидал форму. Все открывается и выделяется. Сделай у TreeView1 свойство HideSelection = False;
Приведу код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
TreeView1: TTreeView;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
for i:=0 to TreeView1.Items.Count-1 do
if TreeView1.Items[i].Text = Edit1.Text then begin
TreeView1.Items[i].Selected := True;
Break;
end;
end;
end.
DelphiNew (2004-07-09 17:32:00) [4]Попробовал..... результат тот же т.е ветка не раскрывается
wild_arg (2004-07-09 17:23:00) [5]
for i:=0 to TreeView1.Items.Count-1 do
if TreeView1.Items[i].Text = Edit1.Text then begin
TreeView1.Items[i].Selected := True;
Break;
end;