Ошибка RunError(207) TVirtualTree+Linux

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ошибка RunError(207) TVirtualTree+Linux

Сообщение anzo » 30.07.2009 11:00:58

Возникла следующая проблема.
В проекте для отображения иерархической структуры используется компонент TVirtualTree.
При построении элементов дерева используется рекурсивная функция:
Код: Выделить всё
procedure TAddAccessPoliticForm.AddChild(PNode:PVirtualNode;ParentId:Integer;Items:TList);
var
  Node:PVirtualNode;
  GroupItem:PTreeItem;
  i:integer;
  Item:TContraGroupItem;
begin
  for i:=1 to Items.Count-1 do
    begin
      Item:=TContraGroupItem(Items[i]);

      if Item.Pid= ParentId then
        Begin
          //!!!Ошибка возникает здесь. При вставке нового потомка, причем это случается при построении дерева на 3-ем уровне.
          Node:=ContraTree.InsertNode(PNode,amAddChildLast);
          GroupItem:= ContraTree.GetNodeData(Node);
          if Assigned(GroupItem) then
            begin
              GroupItem^.Id:=Item.Id;
              GroupItem^.PId:=Item.Pid;
              GroupItem^.SId:=Item.Sid;
              GroupItem^.Tpe:=Item.Tpe;
              GroupItem^.Name:=Item.Name;
              GroupItem^.Checked:=Item.Checked;

              Node^.CheckType:=ctCheckBox;

              if GroupItem^.Checked then
                Node^.CheckState:=csCheckedNormal
              else
                Node^.CheckState:=csUncheckedNormal;

              if GroupItem^.Tpe in [COUNTERAGENT_GROUP,COUNTERAGENT] then
                AddChild(Node,GroupItem^.SID,Items);
            end;
          Node^.States:=Node^.States+[vsInitialized];
        end;
    end;
end;


При запуске программы собранной в linux+lazarus 0.9.27+fpc2.2.4 при построении дерева вылетает ошибка RunError 207.
При чем при работе в Windows все работает отлично.
Странность ошибки еще заключается в том, что она возникает в одном месте программы. То есть подобные процедуры используется еще в нескольких местах, но там все нормально, дерево рисуется.
В общем я в недоумении :(
anzo
новенький
 
Сообщения: 28
Зарегистрирован: 09.07.2009 10:53:46

Re: Ошибка RunError(207) TVirtualTree+Linux

Сообщение Attid » 30.07.2009 11:59:40

anzo писал(а):еще в нескольких местах, но там все нормально

может разное количество вложености ?

помнится какой-то компонет в гтк тоже у меня сыпался если много запихать. толи стринглист толи комбо, не помню уже.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Ошибка RunError(207) TVirtualTree+Linux

Сообщение anzo » 30.07.2009 13:17:18

В общем точно! Это из за-того что TVirtualTree был на одной закладке в TPageControl.
Попробовал убрать из закладки прямо на форму все прошло.
Но мне все равно хочется использовать интерфейс с закладками, он более удобный.
Собрать с qt4 ни как не получается. Не могу установить нужные пакеты в ubuntu :(
Что делать?
anzo
новенький
 
Сообщения: 28
Зарегистрирован: 09.07.2009 10:53:46

Re: Ошибка RunError(207) TVirtualTree+Linux

Сообщение Attid » 30.07.2009 22:16:18

anzo писал(а):Не могу установить нужные пакеты в ubuntu

какие ?

Добавлено спустя 3 минуты 23 секунды:
у какая бубунта
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

Рейтинг@Mail.ru