Вверх ↑
Этот топик читают: Гость
Ответов: 6
Рейтинг: 2
#1: 2008-11-26 23:04:32 ЛС | профиль | цитата
Хочу сделать что-то типа этого:



Использовать необходимо именно компонент TreeViewEx, который в HiAsm 4.0.172.
Помогите разобраться...
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#2: 2008-11-26 23:16:30 ЛС | профиль | цитата
mikef, пример посмотри -- TreeViewEx_As_DirView
карма: 22

1
Голосовали:mikef
Ответов: 6
Рейтинг: 2
#3: 2008-11-26 23:27:56 ЛС | профиль | цитата
То что нужно, спасибо!
карма: 0

0
Ответов: 542
Рейтинг: 12
#4: 2009-01-18 20:46:47 ЛС | профиль | цитата
поготие пожалуйста разобратся "метод научного тыка" предложенный в форуме не помогает
нужно по двум первым колонкам в memo построить двухуровневое дерево в TreeViewEx.
code_11466.txt
карма: 0

0
файлы: 1code_11466.txt [3.6KB] [160]
Ответов: 3851
Рейтинг: 159
#5: 2009-01-18 21:46:22 ЛС | профиль | цитата
afandi, я не понимаю, "6949" это нулевой, первый или второй уровень?
карма: 0
начавший
0
Ответов: 542
Рейтинг: 12
#6: 2009-01-18 23:06:32 ЛС | профиль | цитата
Это просто заголовки. колонки разделены сымволов ";"
Поместите в схему, это вариант что бы не путатся


Add(Memo,10385013,164,63)
{
Left=435
Top=15
Width=535
Height=520
Strings=#16:a1;b1;1. Конфеты|29:a2;b2;&Объединённые кондитеры|52:a3;b3;4 КГ АЛЕНКА КРЕМ-КАРАМЕЛЬ (конфеты) 4 кг /К.О/|47:a4;b4;4 КГ Аленка ПЛОМБИР (конфеты) 4 кг /К.О/|54:a5;b5;7 КГ Аленка Сгущёнка (конфеты) овальн 7 кг /К.О/|37:a6;b6;Абрикосовые (конфеты) 5 кг /РФ/|33:a7;b7;АЛЕНКА (конф) ПЭ 6 кг /К.О/|50:a8;b8;Аленка Крем-брюле (конфеты) купол 7 кг /К.О/|52:a9;b9;Аленка Крем-брюле (конфеты) купол 7,5 кг /К.О/|53:a10;b10;Аленка Крем-брюле (конфеты) овальн 7 КГ /К.О/|
}



------------ Дoбавленo:

Помогите пожалуйста сделать двух уровневое дерево первая колонка значени на первом уровне вторая колонка на втором уровне,
уже 4 часа мучаюсь ничего не получается!!!

Add(MainForm,2953706,21,105)
{
Width=1077
Height=678
}
Add(TreeViewEx,3737069,644,364)
{
Width=281
Height=644
Align=1
IconByIndex=0
Tooltips=0
TrackSelect=0
SingleExpand=0
AlwaysUseIcons=0
IconsState=[]
Icons=[]
Point(ItemChild)
Point(onExpand)
Point(onItemPath)
Point(Index)
Point(ItemAtPos)
Point(doAddIcon)
Point(doSelect)
Point(doItemBold)
Point(doItemHasChild)
Point(doItemPath)
Point(onMouseMove)
Point(onDblClick)
Point(doClearIcons)
Point(onKeyDown)
Point(doExpandToggle)
Point(Parent)
Point(ItemParent)
Point(Child)
link(onClick,12544311:doData,[(691,377)(691,517)])
}
Add(StrPart,4054446,322,168)
{
Char=";"
link(onSplit,16006976:doSplit,[])
link(onPart,1820255:doEvent1,[(362,181)(362,321)])
}
Add(StrPart,16006976,371,168)
{
Char=";"
link(onPart,1820255:doEvent2,[(415,181)(415,255)(366,255)(366,328)])
}
Add(Hub,1820255,378,315)
{
InCount=2
link(onEvent1,3737069:doAdd,[(527,321)(527,370)])
link(onEvent2,10749043:doWork1,[(417,328)(417,475)])
}
Add(StrPart,1247200,273,161)
{
Char="13"
link(onSplit,6171640:doEvent1,[(317,167)(317,155)(219,155)(219,167)])
link(onPart,4054446:doSplit,[])
}
Add(Hub,6171640,231,161)
{
InCount=2
OutCount=1
link(onEvent1,1247200:doSplit,[])
}
Add(Replace,8396042,164,154)
{
SubStr="10"
link(onReplace,6171640:doEvent2,[(214,160)(214,174)])
link(Str,10385013:Text,[])
}
Add(Memo,10385013,164,63)
{
Left=405
Top=5
Width=535
Height=150
Strings=#16:a1;b1;1. Конфеты|29:a2;b2;&Объединённые кондитеры|52:a3;b3;4 КГ АЛЕНКА КРЕМ-КАРАМЕЛЬ (конфеты) 4 кг /К.О/|47:a4;b4;4 КГ Аленка ПЛОМБИР (конфеты) 4 кг /К.О/|54:a5;b5;7 КГ Аленка Сгущёнка (конфеты) овальн 7 кг /К.О/|37:a6;b6;Абрикосовые (конфеты) 5 кг /РФ/|33:a7;b7;АЛЕНКА (конф) ПЭ 6 кг /К.О/|50:a8;b8;Аленка Крем-брюле (конфеты) купол 7 кг /К.О/|52:a9;b9;Аленка Крем-брюле (конфеты) купол 7,5 кг /К.О/|53:a10;b10;Аленка Крем-брюле (конфеты) овальн 7 КГ /К.О/|
}
Add(Button,88993,28,154)
{
Left=285
Top=5
Caption="Добавить"
link(onClick,7449139:doEvent,[])
}
Add(Label,4553571,763,217)
{
Left=305
Top=65
}
Add(DoData,12544311,700,511)
{
link(onEventData,4553571:doText,[(748,517)(748,223)])
link(Data,3737069:Index,[(706,481)(671,481)])
}
Add(Debug,7449139,112,154)
{
link(onEvent,8396042:doReplace,[])
}
Add(Message,5765155,805,497)
{
Caption="Номер выбранного узла"
}
Add(Button,16058931,77,371)
{
Left=285
Top=35
Caption="Удалить"
link(onClick,3737069:doClear,[])
}
Add(MultiElement,10749043,469,469)
{
link(onEvent1,1359757:doWork2,[])
link(Data1,3737069:Count,[(475,460)(650,460)])
}
BEGIN_SDK
Add(EditMulti,15057108,21,21)
{
EventCount=2
WorkCount=1
DataCount=1
VarCount=1
Width=734
Height=326
link(Var1,16006515:Value,[(27,207)(524,207)])
link(doWork1,13705947:doData,[(31,27)(31,48)])
}
Add(Memory,16006515,518,42)
{
Default=Integer(0)
link(onData,7286384:doEvent1,[])
}
Add(DoData,13705947,49,42)
{
link(onEventData,14172979:doOperation,[])
link(Data,1598996:Var2,[])
}
Add(Math,9747112,336,91)
{
OpType=1
Op2=2
ResultType=0
link(onResult,1254671:doWork3,[(466,97)])
link(Op1,1598996:Var1,[(342,84)(38,84)(38,30)])
}
Add(Math,6496546,196,42)
{
OpType=8
Op2=2
ResultType=0
link(onResult,9936961:doCompare,[])
}
Add(If_else,9936961,245,42)
{
Op2=Integer(0)
link(onTrue,15936269:doOperation,[])
link(onFalse,9747112:doOperation,[(293,55)(293,97)])
}
Add(DoData,2616267,259,133)
{
Data=Integer(-1)
}
Add(GetDataEx,1598996,42,21)
{
link(Data,15057108:Data1,[(55,23)(27,23)])
}
Add(Hub,7286384,581,42)
{
link(onEvent1,15057108:onEvent2,[(625,48)(625,34)])
link(onEvent2,15057108:onEvent1,[(625,55)(625,27)])
}
Add(Math,14172979,154,42)
{
Op2=1
ResultType=0
link(onResult,6496546:doOperation,[])
}
Add(HubEx,1254671,462,35)
{
link(onEvent,16006515:doValue,[])
}
Add(Math,15936269,364,42)
{
OpType=1
Op2=2
ResultType=0
link(onResult,1254671:doWork2,[])
}
END_SDK
Add(HubEx,1359757,518,462)
{
link(onEvent,3737069:doSelect,[(585,475)(585,412)])
}


------------ Дoбавленo:

Поличилось как я и хотел. Но я так и ничего не понял как это работает?

Add(MainForm,2953706,21,105)
{
Width=1077
Height=678
}
Add(TreeViewEx,3737069,644,364)
{
Width=281
Height=644
Align=1
IconByIndex=0
Tooltips=0
TrackSelect=0
SingleExpand=0
AlwaysUseIcons=0
IconsState=[]
Icons=[]
Point(ItemChild)
Point(onExpand)
Point(onItemPath)
Point(Index)
Point(ItemAtPos)
Point(doAddIcon)
Point(doSelect)
Point(doItemBold)
Point(doItemHasChild)
Point(doItemPath)
Point(onMouseMove)
Point(onDblClick)
Point(doClearIcons)
Point(onKeyDown)
Point(doExpandToggle)
Point(Parent)
Point(ItemParent)
Point(Child)
link(onClick,12544311:doData,[(691,377)(691,517)])
}
Add(StrPart,4054446,322,168)
{
Char=";"
link(onSplit,16006976:doSplit,[])
link(onPart,1820255:doEvent1,[(362,181)(362,321)])
}
Add(StrPart,16006976,371,168)
{
Char=";"
link(onPart,1820255:doEvent2,[(415,181)(415,255)(366,255)(366,328)])
}
Add(Hub,1820255,378,315)
{
InCount=2
link(onEvent1,3737069:doAdd,[(527,321)(527,370)])
link(onEvent2,10749043:doWork1,[(417,328)(417,475)])
}
Add(StrPart,1247200,273,161)
{
Char="13"
link(onSplit,6171640:doEvent1,[(317,167)(317,155)(219,155)(219,167)])
link(onPart,4054446:doSplit,[])
}
Add(Hub,6171640,231,161)
{
InCount=2
OutCount=1
link(onEvent1,1247200:doSplit,[])
}
Add(Replace,8396042,164,154)
{
SubStr="10"
link(onReplace,6171640:doEvent2,[(214,160)(214,174)])
link(Str,10385013:Text,[])
}
Add(Memo,10385013,164,63)
{
Left=405
Top=5
Width=535
Height=150
Strings=#16:a1;b1;1. Конфеты|29:a2;b2;&Объединённые кондитеры|52:a3;b3;4 КГ АЛЕНКА КРЕМ-КАРАМЕЛЬ (конфеты) 4 кг /К.О/|47:a4;b4;4 КГ Аленка ПЛОМБИР (конфеты) 4 кг /К.О/|54:a5;b5;7 КГ Аленка Сгущёнка (конфеты) овальн 7 кг /К.О/|37:a6;b6;Абрикосовые (конфеты) 5 кг /РФ/|33:a7;b7;АЛЕНКА (конф) ПЭ 6 кг /К.О/|50:a8;b8;Аленка Крем-брюле (конфеты) купол 7 кг /К.О/|52:a9;b9;Аленка Крем-брюле (конфеты) купол 7,5 кг /К.О/|53:a10;b10;Аленка Крем-брюле (конфеты) овальн 7 КГ /К.О/|
}
Add(Button,88993,28,154)
{
Left=285
Top=5
Caption="Добавить"
link(onClick,8396042:doReplace,[])
}
Add(Label,4553571,763,217)
{
Left=305
Top=65
}
Add(DoData,12544311,700,511)
{
link(Data,3737069:Index,[(706,481)(671,481)])
}
Add(Message,5765155,777,497)
{
Caption="Номер выбранного узла"
}
Add(Button,16058931,77,371)
{
Left=285
Top=35
Caption="Удалить"
link(onClick,3737069:doClear,[])
}
Add(MultiElement,10749043,469,469)
{
link(onEvent1,1359757:doWork2,[])
link(Data1,3737069:Count,[(475,460)(650,460)])
}
BEGIN_SDK
Add(EditMulti,15057108,21,21)
{
EventCount=2
WorkCount=1
DataCount=1
VarCount=1
Width=734
Height=326
link(Var1,16006515:Value,[(27,207)(524,207)])
link(doWork1,13705947:doData,[(31,27)(31,48)])
}
Add(Memory,16006515,518,42)
{
Default=Integer(0)
link(onData,7286384:doEvent1,[])
}
Add(DoData,13705947,49,42)
{
link(onEventData,6496546:doOperation,[])
link(Data,1598996:Var2,[])
}
Add(Math,9747112,350,91)
{
OpType=1
ResultType=0
link(onResult,1254671:doWork3,[(466,97)])
link(Op1,1598996:Var1,[(356,61)(38,61)(38,30)])
}
Add(Math,6496546,196,42)
{
OpType=8
Op2=2
ResultType=0
link(onResult,9936961:doCompare,[])
}
Add(If_else,9936961,245,42)
{
Op2=Integer(0)
link(onTrue,15936269:doOperation,[])
link(onFalse,9747112:doOperation,[(313,55)(313,97)])
}
Add(GetDataEx,1598996,42,21)
{
link(Data,15057108:Data1,[(55,23)(27,23)])
}
Add(Hub,7286384,581,42)
{
link(onEvent1,15057108:onEvent2,[(625,48)(625,34)])
link(onEvent2,15057108:onEvent1,[(625,55)(625,27)])
}
Add(HubEx,1254671,462,35)
{
link(onEvent,16006515:doValue,[])
}
Add(Math,15936269,364,42)
{
OpType=1
Op2=1
ResultType=0
link(onResult,1254671:doWork2,[])
}
END_SDK
Add(HubEx,1359757,518,462)
{
link(onEvent,3737069:doSelect,[(585,475)(585,412)])
}


карма: 0

0
Ответов: 3851
Рейтинг: 159
#7: 2009-01-18 23:16:21 ЛС | профиль | цитата
afandi, как-то давно делал двухуровневое дерево (contact-list) code_11470.txt правда ещё на обычном TreeView, можешь глянуть - вдруг пригодится..
карма: 0
начавший
1
файлы: 1code_11470.txt [5.5KB] [162]
Голосовали:afandi
Ответов: 542
Рейтинг: 12
#8: 2009-01-18 23:18:12 ЛС | профиль | цитата
Спасибо поюзаю
карма: 0

0
Ответов: 3851
Рейтинг: 159
#9: 2009-01-18 23:50:44 ЛС | профиль | цитата
уточнение: при добавлении элемента списка (content), нужно сначала выделить (мышкой) группу, в которую предполагается его добавить (при добавлении группы ничего выделять не требуется )..
------------ Дoбавленo:

вот ещё пример (менее экстремальный)
Add(TreeView,10768177,385,147)
{
Left=50
Top=80
Width=195
Height=140
Strings=#11:категория 1|1:(|11:категория 3|1:)|12:категория 2 |11:категория 3|
Icons=[]
Point(doSelect)
}
Add(ArrayEnum,7705896,504,224)
{
link(onItem,9887738:doCompare,[(553,230)(553,296)(110,296)(110,188)])
link(Array,11381220:Array,[])
}
Add(ComboBox,14741568,126,105)
{
Left=45
Top=15
Width=90
Height=21
Strings=#11:категория 1|12:категория 2 |11:категория 3|
}
Add(Edit,5880332,224,84)
{
Left=145
Top=15
Width=140
Text="наименование"
}
Add(Button,6882987,371,224)
{
Left=295
Top=15
Width=60
Caption="добавить"
link(onClick,7705896:doEnum,[])
}
Add(If_else,9887738,126,182)
{
link(onTrue,373127:doEvent1,[])
link(Op2,14741568:String,[])
}
Add(Hub,373127,175,182)
{
link(onEvent1,13482077:doData,[])
link(onEvent2,11654637:doData,[(215,195)(215,153)])
}
Add(DoData,13482077,266,182)
{
link(onEventData,1421434:doEvent1,[])
link(Data,7705896:Index,[(272,170)(307,170)(307,268)(517,268)])
}
Add(DoData,11654637,224,147)
{
link(onEventData,10768177:doAdd,[])
link(Data,5880332:Text,[])
}
Add(StrList,11381220,490,147)
{
Strings=#11:категория 1|0:|12:категория 2 |11:категория 3|
Point(doInsert)
link(Str,15255039:Value,[])
}
Add(Memory,15255039,490,98)
{
Default=String()
}
Add(Hub,1421434,329,182)
{
OutCount=3
link(onEvent1,10768177:doSelect,[])
link(onEvent2,10327893:doOperation,[])
link(onEvent3,7705896:doStop,[(422,202)(422,237)])
}
Add(Math,10327893,434,189)
{
Op2=1
ResultType=0
link(onResult,11381220:doInsert,[])
}

использования TreeView в двухуровневой задаче с возможностью совпадения названий категории и товара. При сохранении /загрузке TreeView, сохранять/загружать StrList обязательно..
PS: более правильный путь - освоить TreeViewTrain..
карма: 0
начавший
1
Голосовали:afandi
Ответов: 542
Рейтинг: 12
#10: 2009-01-19 00:56:33 ЛС | профиль | цитата
спасибо, мало по малу начинаю вникать.
карма: 0

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)