Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

VirtualTree + editors   Найти похожие ветки 

 
MadDig   (2004-10-28 11:59) [0]

Подскажите может кто сталкивался с такой проблемой, у меня после редактировании первой ноды высскакивает Access violation при чем если есть больше одной ноды все OK ошибка выскакивает только тогда когда завершаешь редактирование энтером.

привожу участок кода добавления ноды:

var
 data:NodeData;
 Node:PVirtualNode;
 Pdata:PGridData;
 s:String;
begin
  with vt do begin
    node:=AddChild(nil,Data);
    node.CheckType:=LevelToCheckType[RadioGroup1.ItemIndex];
    data:=GetNodeData(Node);
    Data.ImageIndex:=0;
    data.Text2:="Äàòà";
    Pdata:=GetNodeData(Node);
    Pdata.Value[0]:="";//inttostr(node.Index)+" "+inttostr(VT.GetNodeLevel(node));
    Pdata.ValueType[0]:=vtString;
    Pdata.ValueType[1]:=LevelToValueType[RadioGroup2.ItemIndex];
    Pdata.Value[1]:=DefEdit.text;
    if Pdata.ValueType[1] = vtPickString then begin
      Pdata.cItems:=DefMemo.Lines;
    end;
    FocusedNode:=node;
    Selected[node]:=true;
    Focused;
    EditNode(FocusedNode,0);
  end;
end;



 
MetalFan ©   (2004-10-28 12:08) [1]


> node.CheckType:=LevelToCheckType[RadioGroup1.ItemIndex];
>     data:=GetNodeData(Node);>     Data.ImageIndex:=0;
>     data.Text2:="Äàòà";
>     Pdata:=GetNodeData(Node);
>     Pdata.Value[0]:="";//inttostr(node.Index)+" "+inttostr(VT.GetNodeLevel(node));

меня интересует выделенный жирным код...
что то ооочень оно странно...


 
MadDig   (2004-10-28 12:19) [2]

Data это мой дополнительный тип
Pdata взято с Editors.pas
Ошибка явно не из-за этого визде все работает нормально кроме если нода одна, даже если она  одна и завершаешь редактирование не энтером а мышкой например (потеря фокуса эдитора для ноды) все тоже нормально


 
MadDig   (2004-10-28 12:24) [3]

только что убрал вобще Data теже проблемы


 
MetalFan ©   (2004-10-28 12:43) [4]

слишком мало информации...
мне вот чего не ясно:
GetNodeData
возвращает указатель на "связанную" с нодом память.
а ты сначала с ней работаешь, как с NodeData, а потом, как с PGridData...


 
MadDig   (2004-10-28 12:52) [5]

выкинул Data, таже проблема

var
 Node:PVirtualNode;
 Pdata:PGridData;
begin
  with vt do begin
    node:=AddChild(nil,nil);
    node.CheckType:=LevelToCheckType[RadioGroup1.ItemIndex];
    Pdata:=GetNodeData(Node);
    Pdata.Value[0]:="";//inttostr(node.Index)+" "+inttostr(VT.GetNodeLevel(node));
    Pdata.ValueType[0]:=vtString;
    Pdata.ValueType[1]:=LevelToValueType[RadioGroup2.ItemIndex];
    Pdata.Value[1]:=DefEdit.text;
    if Pdata.ValueType[1] = vtPickString then begin
      Pdata.cItems:=DefMemo.Lines;
    end;
    EditNode(node,0);
  end;


 
MadDig   (2004-10-28 12:58) [6]

полмоему понял
забыл еще о
VT.NodeDataSize := SizeOf(PGridData);
было
VT.NodeDataSize := SizeOf(NodeData)

хотя проблема решилась зато новые глюки пошли


 
MadDig   (2004-10-28 13:18) [7]

to MetalFan
у тебя есть аська?


 
MetalFan ©   (2004-10-28 13:49) [8]

да
117783910

кстати... а почему

> VT.NodeDataSize := SizeOf(PGridData);

SizeOf(указатель на ...) = 4 !!!



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1097655754
AlexG
2004-10-13 12:22
2004.11.14
Нужно прервать попытку соединения с БД


14-1098898230
Rusel
2004-10-27 21:30
2004.11.14
PaintBox


14-1098612844
blackweber
2004-10-24 14:14
2004.11.14
Лункуксоиды хелп!!!


3-1097483098
BanderLog
2004-10-11 12:24
2004.11.14
FB 1.5 Создания БД программно.


4-1096882304
Дмитрий Ботвин
2004-10-04 13:31
2004.11.14
Объём оперативки на сетевом компе