Тема: VirtualStringTree
Показать сообщение отдельно
  #1  
Старый 16.08.2017, 14:23
AntiMag1991 AntiMag1991 вне форума
Прохожий
 
Регистрация: 27.12.2012
Сообщения: 14
Репутация: 10
Вопрос VirtualStringTree

Помогите понять этот компонент!

пример моей программы я не пойму как сделать вывод name2
Код где производится вывод как я понял VST1GetText,но как правильней сделать не знаю.
Если есть у кого нить примеры, покидайте мне их пожалуйста! Уже где то месяц пытаюсь понять этот компонент.
Код:
Tdata = record
    name1:Srting[255];
    name2:String[255];
    chislo1:integer;
    chislo2:integer

Код:
procedure TForm_VST.FormCreate(Sender: TObject);
var
  RootNode, ChildNode: PVirtualNode;
  I, J: integer;
begin
  VST1.NodeDataSize := SizeOf(TNodeBilder);
  for I := 0 to 1 do
  begin
    RootNode := VST1.AddChild(nil);
    if I = 0 then
    begin
      TData := VST1.GetNodeData(RootNode);
      TData.name1:= 'Гравная строка 1';
      for J := 1 to 5 do
      begin
        ChildNode := VST1.AddChild(RootNode);
        TData := VST1.GetNodeData(ChildNode);
        TData.name2:= 'пулл' + inttostr(J);
        TData.chislo2:=  J;
      end;
    end;
    if I = 1 then
    begin
      TData := VST1.GetNodeData(RootNode);
      TData.name1:= 'Гравная строка 2';
    end;
  end;
end;

Код:
procedure TForm_VST.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
  I, J: integer;
begin
  TData := Sender.GetNodeData(Node);

  case Column of
    - 1, 0:
      begin
        if Assigned(TData) then
          CellText := TData.name1   
        else
          CellText := TData.name2;
      end;
    1:
      begin
        if Assigned(TData) then
          CellText := TData.chislo2;
      end;
  end;
end;
Ответить с цитированием