Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.033 c
3-1097545850
Black
2004-10-12 05:50
2004.11.14
Как записать в столбец базы ADO MS ACCESS значение checkBox?


14-1097733984
Skier
2004-10-14 10:06
2004.11.14
Отстал от жизни ! :) Помогите советом !


14-1098869043
Drakon
2004-10-27 13:24
2004.11.14
Запуск программ для Linux под Windows


1-1099126770
namiq
2004-10-30 12:59
2004.11.14
vid formi


9-1089984503
TeamMate
2004-07-16 17:28
2004.11.14
Стратегия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский