powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кривое отображение корневых узлов в TVirtualStringTree
4 сообщений из 4, страница 1 из 1
Кривое отображение корневых узлов в TVirtualStringTree
    #39848701
Sh2kerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Подскажите что я делаю не так, какое свойство не правильно настроил. Почему "-" для сворачивания дочерних узлов отображается в последнем столбце? В других формах тоже используется VT, но тот код писал не я. Не могу разобраться в чём у меня отличается.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
procedure TfmAttachFiles.ReloadData(ChoosingNode: PVirtualNode = nil);
var
  i, n: Integer;
  AddingObject, filesBefore, filesAfter: tsFileInfo;
  AddingNode, filesBeforeRegister, filesAfterRegister, vtNode: PVirtualNode;
  FileInfoArray: tsArray;
begin

  vtFiles.Clear;
  
  FileInfoArray := WS.OmanService.TSMission_GetFileInfoArray(MissionID,
    WS.ArrayRequest); //Получаем данные с сервера
  n := 0;
  
  try
    vtFiles.BeginUpdate;

    filesBefore := tsFileInfo.Create;
    filesBefore.name_ := 'Файлы загруженные до регистрации';
    filesBefore.ftype := 'before';
    filesBeforeRegister := vtAddChild(vtFiles, nil, filesBefore);

    filesAfter := tsFileInfo.Create;
    filesAfter.name_ := 'Файл загруженные после регистрации';
    filesAfter.ftype := 'after';
    filesAfterRegister := vtAddChild(vtFiles, nil, filesAfter);

    for i := 0 to Length(FileInfoArray.items) - 1 do
    begin
      AddingObject := tsFileInfo(FileInfoArray.items[i]);

      if ((AddingObject.ftype = 'attach') then
      begin
        if Mission.endDate.AsDateTime >= AddingObject.dtr.AsDateTime then
          AddingNode := vtAddChild(vtFiles, filesBeforeRegister, AddingObject)
        else if Mission.endDate.AsDateTime < AddingObject.dtr.AsDateTime then
          AddingNode := vtAddChild(vtFiles, filesAfterRegister, AddingObject);

        inc(n);
      end;
    end;

    vtFiles.EndUpdate;
end;

//Обработчик события OnGetText

procedure TfmAttachFiles.vtFilesGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
var
  FI: tsFileInfo;
begin
  FI := tsFileInfo(vtGetNodeDataObj(vtFiles, Node));
  if not(Assigned(FI)) then
  begin
    CellText := '-';
    Exit;
  end;
  if vtFiles.GetNodeLevel(Node) = 0 then
  begin
    if Column = 0 then
    begin
      CellText := FI.name_;
    end
    else
      CellText := '';
  end
  else
  begin
    case Column of
      0:
        CellText := FI.name_;
      1:
        CellText := FormatFileSize(FI.size);
      2:
        CellText := FormatDateTime('dd.mm.yyyy hh:nn', FI.dtr.AsDateTime);
      3:
        CellText := Trim(FI.loaderName);
      4:
        begin
          if FileIsChanged(FI) then
          begin
            CellText := 'Сохранить изменения';
            lblFileIsChanged.Visible := True;
            lblSave.Visible := True;
          end
          else
          begin
            CellText := '';
            lblFileIsChanged.Visible := False;
            lblSave.Visible := False;
          end;
        end;
    end;
  end;

end;
...
Рейтинг: 0 / 0
Кривое отображение корневых узлов в TVirtualStringTree
    #39848710
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sh2kerr,

посмотри (в дизайнтайме) у столбцов значение Position's.
А у самого дерева - значение MainColumn.
...
Рейтинг: 0 / 0
Кривое отображение корневых узлов в TVirtualStringTree
    #39848712
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sh2kerr,

Проверь порядок объявления столбцов. Удобно посмотреть в форме "View as Text".
...
Рейтинг: 0 / 0
Кривое отображение корневых узлов в TVirtualStringTree
    #39848726
Sh2kerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё, помогло MainColumn. Заголовки столбцов заполняются во время выполнения, не обратил на это внимание. Теперь не видно линий связывающих узлы, но думаю с этим разберусь. Спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кривое отображение корневых узлов в TVirtualStringTree
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]