Вверх ↑
Этот топик читают: Гость
Ответов: 1341
Рейтинг: 31
#1: 2018-01-24 09:07:19 ЛС | профиль | цитата
Как сгенерировать дерево и поиск по имени элемента дерева?

есть папка корневая и скажем поиск всех файлов в этой папке выдаст все пути до файлов, как из этого списка путей сделать дерево?
(хотел сделать навигацию по файлам движка, весят они много, подумал, создать дерево для навигации более целесообразно)
карма: 2

0
vip
#1.1контекстная реклама от партнеров
Ответов: 537
Рейтинг: 14
#2: 2018-01-24 09:35:21 ЛС | профиль | цитата
Так в справке к элементу TreeViewEx есть пример
карма: 4

0
Ответов: 2059
Рейтинг: 131
#3: 2018-01-24 14:14:31 ЛС | профиль | цитата
Rysik, http://forum.hiasm.com/getfile/38023


Add(MainForm,10038279,231,189)
{
Width=814
Height=543
}
Add(Button,11062379,385,196)
{
Left=10
Top=485
link(onClick,4287075:doSearch,[])
}
Add(Edit,395479,484,91)
{
Left=90
Top=485
Width=260
Text="Имя*"
}
Add(FileSearch,4287075,484,196)
{
link(onSearch,7681868:doAdd,[])
link(Ext,395479:Text,[])
link(Dir,8601004:Select,[(497,184)(464,184)(464,309)(419,309)])
}
Add(DriveBox,14089754,339,245)
{
Left=5
Top=5
Width=60
Height=21
Ctl3D=0
WinStyle=1
AutoSetDisk=0
Disk="c"
Point(doDisk)
Point(DefaultDisk)
link(onSelect,8601004:doSetDir,[])
}
Add(ShellBrowser,8601004,413,245)
{
Top=30
Width=392
Height=440
Font=[Tahoma,9,0,0,204]
DefaultDir="c:\"
Style=2
FileCollumWidth=200
SizeCollumWidth=80
ShowUpDir=0
AutoDblClicks=0
Point(onDblClick)
Point(onMouseDown)
Point(onMouseMove)
Point(doStyle)
Point(doShellUpdate)
Point(doShellSort)
Point(onChangeDir)
Point(doUpLevel)
}
Add(ListBox,7681868,624,196)
{
Left=401
Top=30
Width=394
Height=440
Font=[Tahoma,9,0,8388608,204]
Name="lista"
Hint=" "
HintManager=""
DataType=1
Point(doHint)
Point(String)
Point(onKeyDown)
Point(onDblClick)
Point(Value)
Point(Index)
Point(onMouseDown)
Point(onMouseMove)
Point(doSelect)
Point(MouseY)
Point(MouseX)
Point(PHandle)
Point(onMouseEnter)
Point(Width)
link(onClick,8601004:doSetfile,[(702,209)(702,233)(401,233)(401,258)])
}

P.S.
Поправил схему, в соответствии Т.З.

Редактировалось 2 раз(а), последний 2018-01-24 14:59:51
карма: 6

0
Ответов: 1925
Рейтинг: 172
#4: 2019-07-02 23:22:50 ЛС | профиль | цитата
Add(MainForm,2953706,182,336)
{
Width=462
Height=396
Position=1
link(onCreate,14180269:doTrim,[])
}
Add(TreeViewTrain,1574694,700,98)
{
Left=100
Top=15
Width=340
Height=335
Name="main"
Tooltips=0
IconsManager="icons"
ParentIDIndex=1
IDIndex=2
IconIndex=3
Point(NextID)
Point(doSort)
}
Add(TVT_AddNode,3105964,756,364)
{
TreeView="main"
}
Add(IconsManager,3602443,742,98)
{
Name="icons"
Icons=['Icon'=[ZIP7E04000078DABD937B48537114C78F6E199AF9482D8BC90A29C4C424094C1045928AC0FE28A48761059A66096AA551B699926986493E5037220ACCF5507C0546F8CAE90ACB6C09CE67BE73BEEE36371FDB3D9D6989A6FDD11F757E7CEEEFDC73EFF7C739E79E0B6042CBC606E8BA1DC2B9009B01C085A0104516E346F3E3C2BF314F4F0BB0B4B427CF9CE0FC9556203035CB283BEF282C2886E06B69E0772C045CF67A81ADAD133DB524B80B25FCC92412CED617F2CCE8AF8C21A07162DEB3A28BE13FAAEFDE98FCB4064285B970383812DC7DFCC1C1C919C0D67A557EA4E795748A62DB18F6721FE2D91EC4906E164F2AE631B055ADF7ADEB9B767DFE61D0E1C14B198409F281EFEAB1221F4135D7A5B2FF59906C0C1395068C1CC5155C34F21D3174488F7EF5FD5A381E96482A8B5F72CE7DA9F9BE3743A5FE75E398363A8B57D58857D6205685183130C7EECE297A0F5B786E4B3964565A1DA81DAD0A906A51D0ABC1143DA2600D6ECD23264C205E6AED56C1C11351A4345BD03F96D91D952A1B825A0D18DCC260F6840E73A7E7B060DE80052C62362266110FC9BF378958A89E61F7A4E65581B5F5E25065C91C433E8D7FBC40BD3BD3ADC7608516CF293418D6CE60729F0ACBE60C584EDA52424C7A9901F166A35C09DE874E1BCB37CD6FE2457732F2B8DF6A8D51B1D4331DC67D633063448362E5348A07D5FA5A46375B3C3235B7333E3D1F609315889AF9F13D4C47129D2B601731FA77A8E6DBB427E8598C9BD1638C7A163D4A1A14DEA28AF053EF7AA29DB2CB8FD0E0AE0389DC32AC65449239AB6753487B976A4D1F5569A25A07EAAEF74E360987D55D89635AA5704AA7752BAAA90607BE232052EF716906DC5FB7FB447C1E7E75A36B4C9AD437D91658D19CC38D4CDDB6415CE7B0A3F08BB357659B97EFDB8E403B51CD7E00DFD57F219DC729929A435EB5BDE993269EF19BC27F32C45D9042802FB19EE0FCC46419B00CBA17D27B49A4316A7F00CA09BE39]]
}
Add(FileSearch,12492049,308,350)
{
Include=2
Point(ShortName)
link(onSearch,9833970:doEvent1,[])
}
Add(MT_AddData,11486575,693,364)
{
Count=4
InputMT=0
link(onAdd,3105964:doAddNode,[])
link(Data2,15499251:Value,[])
link(Data3,12573346:Value,[])
link(Data4,3639813:Value,[])
}
Add(Memory,15499251,700,196)
{
@Hint=#15:Родительский ID|
Point(Data)
}
Add(Memory,3639813,714,315)
{
Default=Integer(0)
}
Add(Hub,9833970,357,350)
{
OutCount=3
link(onEvent1,1552572:doPart,[(395,356)(395,202)])
link(onEvent2,4855408:doHashsum,[(511,363)(511,258)])
link(onEvent3,9027815:doPart,[])
}
Add(FilePartElm,9027815,637,364)
{
link(onPart,11486575:doAdd,[])
}
Add(Hashsum,4855408,651,252)
{
link(onResult,12573346:doValue,[])
}
Add(FilePartElm,1552572,420,196)
{
Mode=0
link(onPart,9350738:doTrim,[])
}
Add(Memory,12573346,707,252)
{
@Hint=#7:Свой ID|
}
Add(Trim,9350738,469,196)
{
Char="\"
Point(Result)
link(onTrim,9158734:doCompare,[])
}
Add(Hashsum,14669358,567,203)
{
link(onResult,14868998:doWork3,[(669,209)])
link(Data,9350738:Result,[(573,189)(509,189)(509,239)(475,239)])
}
Add(If_else,9158734,518,196)
{
link(onTrue,502694:doData,[])
link(onFalse,14669358:doHashsum,[])
link(Op2,5256784:Var,[])
}
Add(DoData,502694,616,196)
{
Data=Integer(-1)
link(onEventData,14868998:doWork2,[])
}
Add(HubEx,14868998,665,196)
{
link(onEvent,15499251:doValue,[])
}
Add(Trim,14180269,259,350)
{
Char="\"
Point(Result)
link(onTrim,12492049:doSearch,[])
link(Text,6612884:Value,[])
}
Add(LineBreak,13537200,259,392)
{
Type=1
link(Data,14180269:Result,[])
Primary=[5256784,266,-224]
}
Add(Memory,6612884,259,287)
{
Default=String(C:\Program Files\HiAsm_AltBuild\compiler)
}
Запоздало, но такой вопрос часто возникает у новичков
ps. У FileSearch Include=All, т.к. выдача папок тоже обязательна - без них не сформируется дерево.

Ну а иконки уж сами стряпайте, здесь только одна.

pps. Корневая папка задаётся в Memory.

Редактировалось 1 раз(а), последний 2019-07-02 23:37:53
карма: 9
0
Ответов: 1925
Рейтинг: 172
#5: 2019-07-03 09:06:01 ЛС | профиль | цитата
А вот улучшенный вариант: загрузка не всего сразу, а только при клике на элемент. Это и ускоряет работу программы, и позволяет учесть изменения в структуре папок (обновляет содержимое и открытии/закрытии, выделении и F5).
Add(MainForm,16263530,182,539)
{
Width=462
Height=396
Position=1
link(onCreate,9046446:doWork2,[])
}
Add(TreeViewTrain,1574694,98,224)
{
Left=10
Top=15
Width=435
Height=335
Name="main"
Tooltips=0
IconsManager="icons"
ParentIDIndex=1
IDIndex=2
IconIndex=3
Point(onExpand)
Point(onKeyDown)
link(onClick,15040495:doWork1,[(144,230)])
link(onExpand,15040495:doWork2,[])
link(onKeyDown,9460023:doCase,[(146,244)(146,293)])
}
Add(TVT_AddNode,3105964,889,567)
{
TreeView="main"
}
Add(IconsManager,3602443,1001,105)
{
Name="icons"
Icons=['Icon'=[ZIP7E04000078DABD937B48537114C78F6E199AF9482D8BC90A29C4C424094C1045928AC0FE28A48761059A66096AA551B699926986493E5037220ACCF5507C0546F8CAE90ACB6C09CE67BE73BEEE36371FDB3D9D6989A6FDD11F757E7CEEEFDC73EFF7C739E79E0B6042CBC606E8BA1DC2B9009B01C085A0104516E346F3E3C2BF314F4F0BB0B4B427CF9CE0FC9556203035CB283BEF282C2886E06B69E0772C045CF67A81ADAD133DB524B80B25FCC92412CED617F2CCE8AF8C21A07162DEB3A28BE13FAAEFDE98FCB4064285B970383812DC7DFCC1C1C919C0D67A557EA4E795748A62DB18F6721FE2D91EC4906E164F2AE631B055ADF7ADEB9B767DFE61D0E1C14B198409F281EFEAB1221F4135D7A5B2FF59906C0C1395068C1CC5155C34F21D3174488F7EF5FD5A381E96482A8B5F72CE7DA9F9BE3743A5FE75E398363A8B57D58857D6205685183130C7EECE297A0F5B786E4B3964565A1DA81DAD0A906A51D0ABC1143DA2600D6ECD23264C205E6AED56C1C11351A4345BD03F96D91D952A1B825A0D18DCC260F6840E73A7E7B060DE80052C62362266110FC9BF378958A89E61F7A4E65581B5F5E25065C91C433E8D7FBC40BD3BD3ADC7608516CF293418D6CE60729F0ACBE60C584EDA52424C7A9901F166A35C09DE874E1BCB37CD6FE2457732F2B8DF6A8D51B1D4331DC67D633063448362E5348A07D5FA5A46375B3C3235B7333E3D1F609315889AF9F13D4C47129D2B601731FA77A8E6DBB427E8598C9BD1638C7A163D4A1A14DEA28AF053EF7AA29DB2CB8FD0E0AE0389DC32AC65449239AB6753487B976A4D1F5569A25A07EAAEF74E360987D55D89635AA5704AA7752BAAA90607BE232052EF716906DC5FB7FB447C1E7E75A36B4C9AD437D91658D19CC38D4CDDB6415CE7B0A3F08BB357659B97EFDB8E403B51CD7E00DFD57F219DC729929A435EB5BDE993269EF19BC27F32C45D9042802FB19EE0FCC46419B00CBA17D27B49A4316A7F00CA09BE39]]
}
Add(FileSearch,12492049,357,553)
{
SubDir=1
Include=1
Point(ShortName)
link(onSearch,14363562:doEvent1,[])
}
Add(MT_AddData,11486575,826,567)
{
Count=4
InputMT=0
link(onAdd,3105964:doAddNode,[])
link(Data2,15499251:Value,[])
link(Data3,12573346:Value,[])
link(Data4,3639813:Value,[])
}
Add(Memory,15499251,833,399)
{
@Hint=#15:Родительский ID|
Point(Data)
}
Add(Memory,3639813,847,518)
{
Default=Integer(0)
}
Add(Hub,9833970,490,553)
{
InCount=2
OutCount=3
link(onEvent1,1552572:doPart,[(528,559)(528,405)])
link(onEvent2,4855408:doHashsum,[(644,566)(644,461)])
link(onEvent3,9027815:doPart,[])
}
Add(FilePartElm,9027815,770,567)
{
link(onPart,11486575:doAdd,[])
}
Add(Hashsum,4855408,784,455)
{
link(onResult,12573346:doValue,[])
}
Add(FilePartElm,1552572,553,399)
{
Mode=0
link(onPart,9350738:doTrim,[])
}
Add(Memory,12573346,840,455)
{
@Hint=#7:Свой ID|
}
Add(Trim,9350738,602,399)
{
Char="\"
Point(Result)
link(onTrim,9158734:doCompare,[])
}
Add(Hashsum,14669358,700,406)
{
link(onResult,14868998:doWork3,[(802,412)])
link(Data,9350738:Result,[(706,392)(642,392)(642,442)(608,442)])
}
Add(If_else,9158734,651,399)
{
link(onTrue,502694:doData,[])
link(onFalse,14669358:doHashsum,[])
link(Op2,5256784:Var,[])
}
Add(DoData,502694,749,399)
{
Data=Integer(-1)
link(onEventData,14868998:doWork2,[])
}
Add(HubEx,14868998,798,399)
{
link(onEvent,15499251:doValue,[])
}
Add(Trim,14180269,259,553)
{
Char="\"
Point(Result)
link(onTrim,7308788:doWork2,[])
link(Text,6612884:Value,[])
}
Add(LineBreak,12142447,259,616)
{
Caption="root"
Type=1
link(Data,14732983:Var2,[])
Primary=[5256784,399,-245]
}
Add(Memory,6612884,259,504)
{
Default=String(C:\Program Files\HiAsm_AltBuild\)
}
Add(TVT_DeleteNode,542587,518,266)
{
TreeView="main"
}
Add(TVT_EnumNodes,2952280,371,231)
{
TreeView="main"
link(onEnum,9118862:doAdd,[])
link(onStop,2465178:doEnum,[(422,244)(422,272)])
}
Add(MT_MultiData,15034034,168,231)
{
@Hint=#11:ID элемента|
From=2
Count=1
link(onData1,6231225:doEvent1,[])
}
Add(Hub,14363562,406,553)
{
link(onEvent1,9833970:doEvent1,[])
link(onEvent2,8488391:doSearch,[])
}
Add(FileSearch,8488391,441,560)
{
SubDir=1
Include=1
Point(ShortName)
link(onSearch,9833970:doEvent2,[])
}
Add(MT_MTArray,9233126,455,154)
{
}
Add(MT_MTArrayRW,9118862,455,217)
{
link(Array,10419884:Var2,[])
}
Add(MT_MTArrayEnum,2465178,441,266)
{
link(onItem,542587:doDeleteNode,[])
link(onEndEnum,13709641:In,[])
link(Array,10419884:Var1,[(447,201)])
}
Add(GetDataEx,10419884,455,196)
{
link(Data,9233126:Array,[])
}
Add(LineBreak,5444213,413,154)
{
link(Out,9233126:doClear,[])
Primary=[13709641,70,119]
}
Add(TVT_ItemPath,13780438,245,238)
{
TreeView="main"
link(onItemPath,1039441:doString,[])
}
Add(Hub,6231225,217,231)
{
link(onEvent1,2952280:doEnum,[])
link(onEvent2,13780438:doItemPath,[])
}
Add(FormatStr,1039441,294,238)
{
Mask="%1\%2"
link(onFString,7308788:doWork1,[(340,244)])
link(Str1,1614426:Var,[])
}
Add(LineBreak,3839392,273,609)
{
Caption="root"
Type=1
link(Data,14732983:Var3,[(279,600)])
Primary=[1614426,21,-399]
}
Add(HubEx,7308788,336,553)
{
link(onEvent,12492049:doSearch,[])
}
Add(GetDataEx,14732983,259,595)
{
link(Data,14180269:Result,[])
}
Add(HubEx,15040495,140,231)
{
link(onEvent,15034034:doSeparateMT,[])
}
Add(Case,9460023,161,287)
{
Value=Integer(116)
link(onTrue,15945482:doEvent1,[])
}
Add(Hub,15945482,210,294)
{
link(onEvent1,14567546:In,[])
link(onEvent2,9046446:doWork1,[(235,307)])
}
Add(LineBreak,14505295,56,224)
{
link(Out,1574694:doClear,[])
Primary=[14567546,189,70]
}
Add(HubEx,9046446,231,553)
{
link(onEvent,14180269:doTrim,[])
}

Редактировалось 1 раз(а), последний 2019-07-03 09:11:12
карма: 9
0
5
Сообщение
...
Прикрепленные файлы
(файлы не залиты)