Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 17:59   #1
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Сообщений: 172
По умолчанию Virtual TreeView

Есть на форме компонент типа TVirtualStringTree. Я его заполнил 11 строками со значениями. Вопрос вот в чем.
Как мне узнать какая строка сейчас выделена и какое значение у нее?
Шипулин А. В.
Шульц вне форума Ответить с цитированием
Старый 24.10.2009, 05:16   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Например так.
Код:
type
  TNodeData = record
    st: WideString;
  end;

.............

procedure TForm1.Button1Click(Sender: TObject);
var
  Data: PNodeData;
begin
  Data := Tree1.GetNodeData(Tree1.FocusedNode);
  ShowMessage(Data^.st);
end;
Баламут вне форума Ответить с цитированием
Старый 24.10.2009, 15:22   #3
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Сообщений: 172
По умолчанию

Я нашел другой способ:
Код:
procedure TProgForm.VTModuleChange(Sender: TBaseVirtualTree;
  Node: PVirtualNode);
begin
ModuleEdit.Text:=VTModule.Text[Node,0];
end;
Ведь нет различий?
И еще вопрос, как пройтись по всему дереву, в нем нет родителей или детей, запись за записью, и считать с них информации?
Шипулин А. В.
Шульц вне форума Ответить с цитированием
Старый 25.10.2009, 09:48   #4
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Можно так:
Код:
type
  PNodeData = ^TNodeData;
  TNodeData = record
    st: WideString;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 Data: PNodeData;
 NewNode : PVirtualNode;
begin
  NewNode := VT.RootNode.FirstChild;
  repeat
   Data := VT.GetNodeData(NewNode);
   if Assigned(Data) then
    ShowMessage(Data^.st); //Выводим информацию
   NewNode := NewNode.NextSibling;
  until  NewNode = nil;
end;
P.S. И вообще - покажи как ты записываеш в TVirtualStringTree данные, тогда будет проще помочь

Последний раз редактировалось lexaltd; 25.10.2009 в 09:53.
lexaltd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Virtual Treeview проблемы с мышкой xansolo100 Общие вопросы Delphi 1 07.09.2009 01:49
Virtual Treeview iLya84a Компоненты Delphi 3 01.08.2008 12:49
Virtual Shell Tools Mitron Компоненты Delphi 0 16.02.2008 20:21
Virtual machines Elm0 Свободное общение 0 03.02.2008 21:06
Virtual Bus RoadTrain Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 17.09.2007 01:48