Главная страница
    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.043 c
1-1098961192
SNV-Soft
2004-10-28 14:59
2004.11.14
Размытые края TLabel при печати формы...


14-1099034917
AlexG
2004-10-29 11:28
2004.11.14
А почему на форуме обсждаются бессмысленные темы?


1-1098876461
klerk
2004-10-27 15:27
2004.11.14
Повторное подключение к Excel


1-1099051007
Tolya
2004-10-29 15:56
2004.11.14
TDateTimePicker


8-1092298503
nasty
2004-08-12 12:15
2004.11.14
анимация в application.onidle





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