Главная страница
    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.036 c
4-1096885733
drew
2004-10-04 14:28
2004.11.14
Удаление значения ключа из реестра


14-1098871416
Чапер
2004-10-27 14:03
2004.11.14
Компоненты


6-1094571193
Klopan
2004-09-07 19:33
2004.11.14
Порт


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


1-1099031337
Kniaz
2004-10-29 10: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
Английский Французский Немецкий Итальянский Португальский Русский Испанский