Главная страница
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.055 c
1-1099400578
Strimer
2004-11-02 16:02
2004.11.14
Возможно ли разместить вертикальный текст на кнопке?


1-1098875302
Pentium133
2004-10-27 15:08
2004.11.14
TListBox...


1-1099416443
denis24
2004-11-02 20:27
2004.11.14
пернос итемов и listbox в мемо


1-1099365865
Sash
2004-11-02 06:24
2004.11.14
excel


14-1098989238
Димон
2004-10-28 22:47
2004.11.14
Моргает тварь