Форум по программированию Delphi Sources

 


   Сайт  
   Исходники  
   Компоненты  
   Статьи  
   FAQ  
   Поиск по исходникам  
   Футболки  

Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.08.2017, 14:35
AntiMag1991 AntiMag1991 вне форума
Прохожий
 
Регистрация: 27.12.2012
Сообщения: 12
Репутация: 10
Злость VirtualStringTree в первые с ним работаю

Проблемы с выводом в компонент VirtualStringTree1(VST1) выводит подстроки во второй строке когда надо выводить в первой.
И как можно сделать цыкл до конца массива типа.
То есть (если массив не буду указывать)
Код:
for I:=1 to Worker: array [1 .. 2] of PWorker;

Вообще есть ли какие нить поправки пожелания. так как курю мануал но мало его понимаю. (Я помню что слышал что в этом компоненте единая интекс система тое сть подстроки продолжают интекс а не создается новый)

Код:
unit VST;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VirtualTrees;

type
  TDataName = record
    Name: string;
    DIndex: integer;
  end;

type
  TPool = record
    NamePool: string;
    NameCoin: string;
  end;

type
  TWorker = record
    NameWorker: string;
  end;


  PPool = ^TPool;
  PWorker = ^TWorker;
  PDataName = ^TDataName;

type
  TForm_VST = class(TForm)
    VST1: TVirtualStringTree;
    procedure FormCreate(Sender: TObject);
    procedure VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
  private
    Data: array [1 .. 2] of PDataName;
    Worker: array [1 .. 2] of PWorker;
    // Node: PVirtualNode;
    DataPool: array of PPool;
    IndexNodeRoot: integer;
    IndexNodeChild: integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_VST: TForm_VST;

implementation

{$R *.dfm}

uses mainform;

procedure TForm_VST.FormCreate(Sender: TObject);
Var
  I, II: integer;
  RootNode, ChildNode: PVirtualNode;
begin
  IndexNodeRoot := 0;
  IndexNodeChild := 0;
  // ------------ Выделяем память для объектов;----------------------------
  VST1.NodeDataSize := SizeOf(PDataName);
  VST1.NodeDataSize := SizeOf(PWorker);
  // -----------------------------------------------------------------------
  for I := 1 to 2 do
  begin
    RootNode := VST1.AddChild(VST1.RootNode);
    if not (vsInitialized in RootNode.States) then
   VST1.ReinitNode(RootNode, False);
    Data[i] := VST1.GetNodeData(RootNode);
  end;
  for I := 1 to 2 do
  begin
    if I = 1 then
    begin
      Data[i].Name := 'Text lvl 1.1';
      Data[i].DIndex := 0;
      for II := 1 to 5 do
      begin
        ChildNode := VST1.AddChild(RootNode);
        if not(vsInitialized in ChildNode.States) then
          VST1.ReinitNode(ChildNode, False);
        Worker[II] := VST1.GetNodeData(ChildNode);
        Worker[II].NameWorker := 'Text lvl 2.1 ';
        IndexNodeChild := IndexNodeChild + 1;
      end;
    end;
    if I = 2 then
    begin
      Data[i].Name := 'Text lvl 1.2';
      Data[i].DIndex := 1;
    end;
    IndexNodeRoot := IndexNodeRoot + 1;
  end;
end;

procedure TForm_VST.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
  I, II: integer;
begin

  for I := 1 to (IndexNodeRoot+IndexNodeChild) do
  begin
    Column := I;
    Data[i] := Sender.GetNodeData(Node);
    CellText := Data[i].Name;
    Worker[i] := Sender.GetNodeData(Node);
    CellText := Worker[i].NameWorker;
  end;

end;

end.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2017

ВКонтакте   Facebook   Twitter