Вверх ↑
Этот топик читают: Гость
Ответов: 139
Рейтинг: 4
#16: 2009-01-20 16:51:48 ЛС | профиль | цитата
Подскажите, пожалуйста, как сделать что б список файлов отображался с иконками, что-то никак не разберусь
code_11501.txt
карма: 0

0
файлы: 1code_11501.txt [2.4KB] [142]
Разработчик
Ответов: 26304
Рейтинг: 2146
#17: 2009-01-20 17:05:21 ЛС | профиль | цитата
pav, для файлов вот так


Add(MainForm,2953706,217,182)
{
}
Add(FileSearch,6491069,210,315)
{
SubDir=1
FullName=1
link(onSearch,15211063:doEvent1,[])
link(Dir,9752896:Disk,[])
}
Add(StringTableMT,11035221,546,259)
{
Left=10
Top=40
Width=285
Height=210
Columns=#7:Имя=200|
AssignedIList=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(doMT_InsertIcon)
Point(CountIcons)
Point(EndIdxIcons)
}
Add(DriveBox,9752896,217,224)
{
Left=10
Top=10
Width=285
Height=21
Ctl3D=0
Point(Disk)
link(onSelect,15409844:doEvent1,[])
}
Add(Hub,15409844,315,224)
{
link(onEvent1,11035221:doClear,[(390,230)(390,272)])
link(onEvent2,6491069:doSearch,[(355,237)(355,279)(198,279)(198,321)])
}
Add(FileAttributes,547772,350,343)
{
Point(doGetFileIcon)
Point(onGetFileIcon)
link(onGetFileIcon,7757013:doAdd,[])
}
Add(Hub,15211063,301,315)
{
link(onEvent1,547772:doGetFileIcon,[(333,321)(333,370)])
link(onEvent2,4004396:doString,[(375,328)(375,265)])
}
Add(MT_Add,7757013,427,350)
{
InputMT=1
link(onAdd,11035221:doMT_InsertIcon,[(503,356)(503,307)])
link(Data,11035221:CountIcons,[(433,337)(566,337)])
}
Add(FormatStr,4004396,434,259)
{
Mask="%1;%2"
link(onFString,11035221:doAdd,[])
link(Str1,11035221:EndIdxIcons,[(440,247)(506,247)(506,344)(573,344)])
}

карма: 22

0
Ответов: 139
Рейтинг: 4
#18: 2009-01-20 20:35:25 ЛС | профиль | цитата
почему-то иконки не отображаются
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#19: 2009-01-20 21:27:23 ЛС | профиль | цитата
Вот, точно работает и вместе с папками



Add(MainForm,4020569,77,371)
{
link(onCreate,4563613:doData,[])
}
Add(StringTableMT,11035221,378,301)
{
Left=10
Top=40
Width=285
Height=210
Columns=#7:Имя=200|
AssignedIList=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(CountIcons)
Point(EndIdxIcons)
Point(doClearIcons)
Point(doMT_InsertIcon)
}
Add(DriveBox,9752896,133,308)
{
Left=10
Top=10
Width=285
Height=21
Ctl3D=0
Point(Disk)
link(onSelect,15409844:doEvent1,[])
}
Add(Hub,15409844,182,308)
{
OutCount=3
link(onEvent1,11035221:doClear,[])
link(onEvent2,11035221:doClearIcons,[(326,321)(326,349)])
link(onEvent3,9539597:doWork1,[(221,328)])
}
Add(MultiElementEx,5044051,245,385)
{
@Hint=#20:DirsEnum & FilesEnum|
link(AddIcon,11035221:doMT_InsertIcon,[(327,391)(327,356)])
link(Add,11035221:doAdd,[(318,398)(318,307)])
link(IconID,11035221:EndIdxIcons,[(251,373)(405,373)])
link(CountIcon,11035221:CountIcons,[(258,373)(398,373)])
}
BEGIN_SDK
Add(EditMultiEx,419251,21,21)
{
WorkCount=#9:StartScan|
EventCount=#7:AddIcon|3:Add|
DataCount=#6:IconID|9:CountIcon|
Width=615
Height=172
link(StartScan,14212249:doEvent1,[(42,27)(42,69)])
}
Add(Hub,14212249,63,63)
{
OutCount=3
link(onEvent1,4422196:doClear,[(112,69)(112,83)])
link(onEvent2,1303342:doValue,[])
link(onEvent3,15919893:doSearch,[(107,83)(107,125)])
}
Add(FileSearch,2495974,175,70)
{
SubDir=1
Include=1
link(onSearch,15548175:doWork2,[])
}
Add(FilePart,6620814,350,133)
{
NameWOExt=1
link(onName,10394312:doString,[])
}
Add(FileAttributes,5650910,350,63)
{
Point(doGetFileIcon)
Point(onGetFileIcon)
link(onGetFileIcon,5469774:doCase,[])
}
Add(HubEx,15548175,217,63)
{
link(onEvent,4422196:doAdd,[])
}
Add(ArrayEnum,13184658,252,126)
{
PColor(Array,16711935)
link(onItem,3378621:doEvent1,[])
link(Array,4422196:Array,[])
}
Add(FileSearch,15919893,119,119)
{
SubDir=1
link(onSearch,15548175:doWork3,[(221,125)])
link(onEndSearch,13184658:doEnum,[])
link(Dir,1303342:Value,[])
}
Add(Hub,3378621,294,126)
{
OutCount=3
link(onEvent1,5650910:doGetFileIcon,[(338,132)(338,90)])
link(onEvent2,6620814:doPart,[])
}
Add(StrList,4422196,238,70)
{
}
Add(Memory,1303342,126,70)
{
link(onData,2495974:doSearch,[])
}
Add(Case,5469774,413,70)
{
link(onNextCase,1007376:doWork2,[])
link(onTrue,14068554:doData,[(461,83)(461,97)])
}
Add(Icon,13308325,476,42)
{
Icon=[ZIP7E03000078DA63606004420101062029C190C1CCC020C6C0C0A001C44021060506883808383033E0001F3F7EBCF6FCF975BCE0EEDDBB70F51F4E2D4B2304A64D9B86AC7E665A1A7E0404C8EAFFBF3983059D99F9FFCC198869E8EA2F6EFC7F1C8CD64EB0AEF4929ABD4165D2DCFFFDD9FF1F6DC4AA3EA23ACC33DBD335C5618DA3266BCF1AAE1D4FB9AEFCE73EF109680256F57F6BA341A6ED9CFFC2CB42B1348F6BDD75A07A2002099E3983A97EDFF4D8FFD5C1FF0FADFB9619E0176929B0FC84C6E2598ABBCF01D563353F636BF8FB42B7FFCBBB801695879BF29604729D6CE27A3315977AA0BF78526FAB26AF92F4DFC620B45038CB996B770DD7B3E9405D58D5FFFBF7CFA8FBA548C3FFC4B5FFB9DC6F98C65B732E29E4BAD5CFF5661650B6B1B111533DD00AFEF2FF491BFF73457D3609AB03722108A21E08D0D5FFBF92BB698FDFE22F0E93AF02D9FF3E3E86472E50F1810307E0EA81F1F80F1B00AA04796DA6315031904B503DD05860D00315031330727A3E3373265604540F4CC6C88A0F30FEFF4F16660662F6FFFF010A9DBA61]
}
Add(DoData,14068554,476,91)
{
link(onEventData,1007376:doWork3,[(529,97)])
link(Data,13308325:Icon,[])
}
Add(FormatStr,10394312,399,140)
{
Mask="%1;%2"
link(onFString,419251:Add,[(609,146)(609,34)])
link(Str1,419251:IconID,[(405,52)(27,52)])
}
Add(MT_Add,7757013,553,70)
{
InputMT=1
link(onAdd,419251:AddIcon,[(600,76)(600,27)])
link(Data,419251:CountIcon,[(559,46)(34,46)])
}
Add(HubEx,1007376,525,63)
{
link(onEvent,7757013:doAdd,[])
}
END_SDK
Add(DoData,4563613,133,385)
{
link(onEventData,9539597:doWork2,[])
link(Data,9752896:Disk,[])
}
Add(HubEx,9539597,217,378)
{
link(onEvent,5044051:StartScan,[])
}

карма: 22

0
Ответов: 3655
Рейтинг: 69
#20: 2009-01-20 21:37:21 ЛС | профиль | цитата
nesco писал(а):
Вот, точно работает и вместе с папками

В публикаторе лежит ? sm
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#21: 2009-01-20 21:39:35 ЛС | профиль | цитата
Вячеслав писал(а):
В публикаторе лежит ?

Да это же прототип
карма: 22

0
Ответов: 139
Рейтинг: 4
#22: 2009-02-03 10:55:03 ЛС | профиль | цитата
спасибо!
------------ Дoбавленo:

nesco, добавил в схему вход в папки, но почему так медлено читаются каталоги, попробуйте, например, войти в system32?
В DriveBox не устанавливается диск по умолчанию.

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

Неправильно вставил код, вот этот смотреть

#sha
Add(MainForm,4020569,336,252)
{
Left=0
Top=0
Width=389
Height=489
Align=0
Color=-16777201
Font=[MS Sans Serif,8,0,0,1]
ParentFont=1
Visible=0
Enabled=0
Cursor=0
TabOrder=0
Ctl3D=1
Hint=""
HintManager="(empty)"
AlphaBlendValue=255
Caption="Form"
BorderStyle=2
WindowsState=0
Icon=[]
TaskBar=0
DragForm=1
KeyPreview=0
TransparentColor=16777215
Picture=[]
SavePosName=""
MouseCapture=1
ClientSize=1
Position=0
link(onCreate,4563613:doData,[])
}
Add(StringTableMT,11035221,630,182)
{
Left=10
Top=40
Width=285
Height=395
Align=0
Color=-16777211
Font=[MS Sans Serif,8,0,0,1]
ParentFont=1
Visible=0
Enabled=0
Cursor=0
TabOrder=0
Ctl3D=0
Hint=""
HintManager="(empty)"
ModeSp=0
SizeSp=4
ColorSp=-16777201
MinOwn=0
MinRest=0
DoubleBuffered=1
Columns=#7:Eiy=200|
StrDelimiter=";"
MT_ColDelimiter="_"
ColumnClick=0
AllMT_AddCol=0
ColumnWidth=80
MinColWidth=50
MaxColWidth=250
ClearAll=1
Redaction=1
FullSelect=1
SelectFind=0
ReplaceFind=1
Style=3
Flat=0
TabGrid=1
TabGridFrame=1
TableWBreak=1
SingleString=1
MultiSelect=1
CheckBoxes=1
Grid=1
Grid3D=1
StyleGrid3D=0
BumpText=1
Gradient=1
RowSelect=0
TrackSelect=1
InfoTip=0
HeaderDragDrop=1
AutoMakeVisible=0
ModeMakeVisible=0
MethodSort=0
TextAlign=0
EnableOnClick=0
ColorDelimiter="#"
ColorItems=1
IconColColor=-16777212
TextColor=-16777208
TextBkColor=-16777211
BkColor=-16777211
TranspColor=-16777201
GradientColor=-16777203
ShadowColor=-16777202
ImgSize=16
IconToBmp=1
ImgColumn=1
AssignedIList=0
ExtIconsCheck=1
IconsCheck=[]
MiscIcons=[]
Icons=[]
StringsStrLst=#
AutoTblStrLst=1
AppTxtStrLst=1
FileName=""
StrLstFName=""
IconFileName=""
IconsFileName=""
IListFileName=""
SaveColProp=1
SaveWidth=1
SaveImgIndex=1
SaveColor=1
SaveItemsColor=1
StaticColumn=1
Point(doMT_Add)
Point(CountIcons)
Point(EndIdxIcons)
Point(doClearIcons)
Point(doMT_InsertIcon)
Point(onDblClick)
link(onClick,5044051:doRead,[(674,188)(674,234)(485,234)(485,279)])
link(onDblClick,7032799:doEvent1,[])
}
Add(DriveBox,9752896,385,189)
{
Left=10
Top=10
Width=285
Height=21
Align=0
Color=-16777211
Font=[MS Sans Serif,8,0,0,1]
ParentFont=1
Visible=0
Enabled=0
Cursor=0
TabOrder=0
Ctl3D=0
Hint=""
HintManager="(empty)"
Disk="C:"
Point(Disk)
link(onSelect,15409844:doEvent1,[])
}
Add(Hub,15409844,434,189)
{
InCount=2
OutCount=3
link(onEvent1,2179086:doWork2,[])
link(onEvent2,11035221:doClearIcons,[(578,202)(578,230)])
link(onEvent3,9539597:doWork1,[(473,209)])
}
Add(MultiElementEx,5044051,497,266)
{
@Hint=#20:DirsEnum & FilesEnum|
Mode=0
link(AddIcon,11035221:doMT_InsertIcon,[(579,272)(579,237)])
link(Add,11035221:doAdd,[(570,279)(570,188)])
link(IconID,11035221:EndIdxIcons,[(503,259)(657,259)])
link(CountIcon,11035221:CountIcons,[(510,254)(650,254)])
}
BEGIN_SDK
Add(EditMultiEx,419251,21,21)
{
WorkCount=#9:StartScan|6:doRead|6:doData|
EventCount=#7:AddIcon|3:Add|
VarCount=#
DataCount=#6:IconID|9:CountIcon|
Width=615
Height=270
link(StartScan,14212249:doEvent1,[(42,27)(42,69)])
link(doRead,8551237:doRead,[(119,34)(119,209)])
link(doData,11122515:doData,[(115,41)(115,251)])
}
Add(Hub,14212249,63,63)
{
InCount=2
OutCount=3
link(onEvent1,4422196:doClear,[(112,69)(112,83)])
link(onEvent2,2495974:doSearch,[(128,76)(128,62)])
link(onEvent3,15919893:doSearch,[(107,83)(107,125)])
}
Add(FileSearch,2495974,161,56)
{
Ext="*"
Dir=""
SubDir=1
FullName=0
Include=1
link(onSearch,15548175:doWork2,[(205,62)(205,76)])
}
Add(FilePart,6620814,350,133)
{
ExtPoint=1
NameWOExt=1
link(onName,10394312:doString,[])
}
Add(FileAttributes,5650910,350,63)
{
FileName=""
Attr=0
TimeType=0
Format="D[W]-M-Y (h:m:s)"
OpenIcon=1
SmallIcon=0
Point(doGetFileIcon)
Point(onGetFileIcon)
link(onGetFileIcon,5469774:doCase,[])
}
Add(HubEx,15548175,217,63)
{
Angle=0
link(onEvent,4422196:doAdd,[])
}
Add(ArrayEnum,13184658,252,154)
{
Type=0
onBreakEnable=1
PColor(Array,16711935)
link(onItem,3378621:doEvent1,[(289,160)(289,132)])
link(Array,9770948:Var2,[])
}
Add(FileSearch,15919893,119,119)
{
Ext="*"
Dir=""
SubDir=1
FullName=0
Include=0
link(onSearch,15548175:doWork3,[(221,125)])
link(onEndSearch,13184658:doEnum,[(194,132)(194,160)])
}
Add(Hub,3378621,294,126)
{
InCount=1
OutCount=3
link(onEvent1,5650910:doGetFileIcon,[(338,132)(338,90)])
link(onEvent2,6620814:doPart,[])
}
Add(StrList,4422196,238,70)
{
FileName=""
Strings=#
}
Add(Memory,1303342,168,322)
{
Default=Null()
}
Add(Case,5469774,413,70)
{
Value=Null()
DataOnTrue=Null()
link(onNextCase,1007376:doWork2,[])
link(onTrue,14068554:doData,[(461,83)(461,97)])
}
Add(Icon,13308325,476,42)
{
Icon=[ZIP7E03000078DA63606004420101062029C190C1CCC020C6C0C0A001C44021060506883808383033E0001F3F7EBCF6FCF975BCE0EEDDBB70F51F4E2D4B2304A64D9B86AC7E665A1A7E0404C8EAFFBF3983059D99F9FFCC198869E8EA2F6EFC7F1C8CD64EB0AEF4929ABD4165D2DCFFFDD9FF1F6DC4AA3EA23ACC33DBD335C5618DA3266BCF1AAE1D4FB9AEFCE73EF109680256F57F6BA341A6ED9CFFC2CB42B1348F6BDD75A07A2002099E3983A97EDFF4D8FFD5C1FF0FADFB9619E0176929B0FC84C6E2598ABBCF01D563353F636BF8FB42B7FFCBBB801695879BF29604729D6CE27A3315977AA0BF78526FAB26AF92F4DFC620B45038CB996B770DD7B3E9405D58D5FFFBF7CFA8FBA548C3FFC4B5FFB9DC6F98C65B732E29E4BAD5CFF5661650B6B1B111533DD00AFEF2FF491BFF73457D3609AB03722108A21E08D0D5FFBF92BB698FDFE22F0E93AF02D9FF3E3E86472E50F1810307E0EA81F1F80F1B00AA04796DA6315031904B503DD05860D00315031330727A3E3373265604540F4CC6C88A0F30FEFF4F16660662F6FFFF010A9DBA61]
Transparent=16777215
}
Add(DoData,14068554,476,91)
{
Data=Null()
link(onEventData,1007376:doWork3,[(529,97)])
link(Data,13308325:Icon,[])
}
Add(FormatStr,10394312,399,140)
{
DataCount=2
Mask="%1;%2"
link(onFString,419251:Add,[(609,146)(609,34)])
link(Str1,419251:IconID,[(405,52)(27,52)])
}
Add(MT_Add,7757013,553,70)
{
Data=Null()
InputMT=1
link(onAdd,419251:AddIcon,[(600,76)(600,27)])
link(Data,419251:CountIcon,[(559,46)(34,46)])
}
Add(HubEx,1007376,525,63)
{
Angle=0
link(onEvent,7757013:doAdd,[])
}
Add(ArrayRW,8551237,196,203)
{
Index=Null()
link(Array,9770948:Var1,[(202,135)])
}
Add(GetDataEx,9770948,245,126)
{
Angle=0
link(Data,4422196:Array,[])
}
Add(DoData,11122515,196,245)
{
Data=Null()
link(onEventData,14212249:doEvent2,[(246,251)(246,167)(51,167)(51,76)])
link(Data,8551237:Item,[])
}
END_SDK
Add(DoData,4563613,385,266)
{
Data=Null()
link(onEventData,9539597:doWork2,[])
link(Data,9752896:Disk,[])
}
Add(HubEx,9539597,469,259)
{
Angle=0
link(onEvent,5044051:StartScan,[])
}
Add(Hub,7032799,735,189)
{
InCount=1
OutCount=2
link(onEvent1,2179086:doWork1,[(776,195)(776,168)(592,168)])
link(onEvent2,5044051:doData,[(776,202)(776,247)(480,247)(480,286)])
}
Add(HubEx,2179086,588,182)
{
Angle=0
link(onEvent,11035221:doClear,[])
}

карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#23: 2009-02-03 11:55:46 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-11 13:02:00
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#24: 2009-02-03 23:23:22 ЛС | профиль | цитата
pav, все ответы на твои вопросы я выложил отдельной схемой в публикаторе вот по этой ссылке:

File_Browser

Там есть, и назначение текущего диска, и ускоритель чтения файлов на базе встроенного StrLista, и возврат наверх, и, даже, пример применения слоев. Дерзай, разбирайся.
------------ Дoбавленo:

Совсем забыл сказать -- желательно обновить StringTableMT, там обнаружен баг с очисткой списка иконок

[svn]StringTableMT.pas[/svn]
карма: 22

0
Ответов: 139
Рейтинг: 4
#25: 2009-02-13 16:59:30 ЛС | профиль | цитата
Попробовал сделать аналог ShellBrowser на стандартных элементах, но возникли такие проблемы:
1. медлено читаюся папки, попробуйте войти в WinSystem32
2. не знаю как сделать сортировку файлов, было бы неплохо по дате и расширению
3. если очищать список иконок, то они затем больше не появляются, без этого все нормально

#sha
Add(ChildPanelEx,14315296,560,420)
{
link(onChangeDir,22573:doTrim,[(618,433)(618,419)])
link(onSelect,13082028:doText,[(626,440)(626,475)])
link(Index,9896130:Checked,[(566,398)(570,398)])
link(ExtCmp,7102792:Text,[(573,398)(629,398)])
}
BEGIN_SDK
Add(EditMultiEx,555281,21,56)
{
WorkCount=#8:doSetDir|11:doGetSelect|32:doShellUpdate=
карма: 0

0
Разработчик
Ответов: 26304
Рейтинг: 2146
#26: 2009-02-13 17:14:58 ЛС | профиль | цитата
pav, я что, зря пример привел, там все реализовано

1. Быстродействие чтения файлов при промежуточном списке увеличивается в разы.
2. Сортировка прекрасно делается по столбцам, если раздеелить поля имени, расширения и даты
3. У меня в примере прекрасно очищается список иконок и перечитывается снова.

А в послледних, схема выложена криво и не до конца.

карма: 22

0
Ответов: 139
Рейтинг: 4
#27: 2009-02-13 17:16:09 ЛС | профиль | цитата
вот код


Add(ChildPanelEx,14315296,595,476)
{
link(onChangeDir,22573:doTrim,[(653,489)(653,475)])
link(onSelect,13082028:doText,[(661,496)(661,531)])
link(Index,9896130:Checked,[(601,454)(605,454)])
link(ExtCmp,7102792:Text,[(608,454)(664,454)])
}
BEGIN_SDK
Add(EditMultiEx,555281,21,56)
{
WorkCount=#8:doSetDir|11:doGetSelect|32:doShellUpdate=
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#28: 2009-02-13 17:16:50 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-11 13:02:01
карма: 0

0
Ответов: 5227
Рейтинг: 587
#29: 2009-02-13 17:18:05 ЛС | профиль | цитата
верхний пост мой
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 139
Рейтинг: 4
#30: 2009-02-13 17:26:53 ЛС | профиль | цитата
я уже замучился вставлять, ставишь одно, а получается черте что, попробую позже

Add(MainForm,4020569,19,115)
{
Width=569
Height=624
link(onCreate,4563613:doData,[])
}
Add(ChildPanelEx,14315296,210,273)
{
link(onChangeDir,22573:doTrim,[(268,286)(268,272)])
link(onSelect,13082028:doText,[(276,293)(276,328)])
link(Index,9896130:Checked,[(216,251)(220,251)])
link(ExtCmp,7102792:Text,[(223,251)(279,251)])
}
BEGIN_SDK
Add(EditMultiEx,555281,21,56)
{
WorkCount=#8:doSetDir|11:doGetSelect|32:doShellUpdate=
карма: 0

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