Вверх ↑
Этот топик читают: Гость
Ответов: 17
Рейтинг: 0
#1: 2016-09-06 12:05:17 ЛС | профиль | цитата
Добрый день. Имеется компонент DropFile, Img_Loader и Image
код

Add(Edit,6343582,469,91)
{
Left=60
Top=205
Width=255
Height=45
}
Add(DropFile,5850189,203,98)
{
Point(doAccept)
link(onDropFile,8976562:doEvent1,[(275,104)(275,118)])
}
Add(Image,16018053,469,147)
{
Left=5
Width=365
Height=195
}
Add(Hub,8976562,315,112)
{
link(onEvent1,6343582:doText,[(399,118)(399,97)])
link(onEvent2,8442349:doLoad,[(351,125)(351,146)])
}
Add(Img_Loader,8442349,372,140)
{
link(onLoad,16018053:doLoad,[(436,146)(436,153)])
}


Подскажите пожалуйста как реализовать фильтр, который бы пропускал только картинки (*.jpg, *.png) и не пропускал сторонние фотматы (*.exe и прочие)?

Редактировалось 1 раз(а), последний 2016-09-06 12:05:32
карма: 0

0
Ответов: 8926
Рейтинг: 823
#2: 2016-09-06 12:33:42 ЛС | профиль | цитата
makcum15, есть StrMask:
схема


Add(MainForm,2953706,343,140)
{
}
Add(Edit,6343582,532,98)
{
Left=60
Top=205
Width=255
Height=45
}
Add(DropFile,5850189,343,84)
{
Point(doAccept)
link(onDropFile,11459225:doCompare,[])
}
Add(Image,16018053,588,147)
{
Left=5
Width=365
Height=195
}
Add(Hub,8976562,497,119)
{
link(onEvent1,6343582:doText,[(525,125)(525,104)])
link(onEvent2,8442349:doLoad,[(519,132)(519,153)])
}
Add(Img_Loader,8442349,533,147)
{
link(onLoad,16018053:doLoad,[])
}
Add(StrMask,11459225,392,84)
{
Mask="*.jpg"
link(onFalse,15930333:doCompare,[])
link(onTrue,1005736:doWork2,[(431,97)(431,125)])
}
Add(StrMask,15930333,441,84)
{
Mask="*.png"
link(onTrue,1005736:doWork1,[(487,97)])
}
Add(HubEx,1005736,483,119)
{
link(onEvent,8976562:doEvent1,[])
}
карма: 19

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#3: 2016-09-06 12:40:41 ЛС | профиль | цитата
Схема на любой список расширений


Add(MainForm,2953706,154,133)
{
}
Add(Edit,6343582,602,189)
{
Left=60
Top=205
Width=255
Height=45
}
Add(DropFile,5850189,154,175)
{
Point(doAccept)
link(onDropFile,14238849:doEvent1,[])
}
Add(Image,16018053,602,238)
{
Left=5
Width=365
Height=195
}
Add(Hub,8976562,490,189)
{
link(onEvent1,6343582:doText,[])
link(onEvent2,8442349:doLoad,[(526,202)(526,244)])
}
Add(Img_Loader,8442349,547,238)
{
link(onLoad,16018053:doLoad,[])
}
Add(StrList,1623077,329,91)
{
Strings=#3:png|3:jpg|3:bmp|3:tif|3:ico|3:gif|
Point(onGetIndex)
Point(doGetIndex)
link(onGetIndex,6509162:doCase,[])
}
Add(IndexToChanel,2395403,434,182)
{
Point(Index)
link(onEvent2,8976562:doEvent1,[])
link(Index,8830520:State,[])
}
Add(Hub,14238849,231,175)
{
link(onEvent1,15998837:doPart,[(256,181)(256,139)])
link(onEvent2,2395403:doEvent,[])
}
Add(FilePartElm,15998837,273,133)
{
Mode=4
link(onPart,1623077:doGetIndex,[])
}
Add(Case,6509162,378,98)
{
Value=Integer(-1)
link(onNextCase,8830520:doReset,[])
link(onTrue,8830520:doOn,[])
}
Add(Switch,8830520,434,91)
{
DataOn=Integer(0)
DataOff=Integer(1)
Default=0
Point(State)
Point(doOn)
}

карма: 22

0
Ответов: 17
Рейтинг: 0
#4: 2016-09-06 13:07:36 ЛС | профиль | цитата
Леонид, nesco, спасибо большое! интересные варианты.

--- Добавлено в 2016-09-06 13:12:54

Подскажите, заодно пожалуйста, как в диалоге "Открытие файла" (ODialog) сделать выбор нескольких расширений, а не только одного? или такое нельзя?

Редактировалось 2 раз(а), последний 2016-09-06 13:13:18
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#5: 2016-09-06 13:24:44 ЛС | профиль | цитата
makcum15 писал(а):
как в диалоге "Открытие файла" (ODialog) сделать выбор нескольких расширений, а не только одного? или такое нельзя?

Можно. Вот пример для графических файлов

Схема


Add(ODialog,6607378,182,77)
{
Filter="All Image Files|*.bmp;*.gif;*.ico;*wmf;*.emf;*.tif;*.png;*.jpg;*.jpeg|BMP (*.bmp)|*.bmp|JPG (*.jpg, *.jpeg)|*.jpg;*.jpeg|GIF (*.gif)|*.gif|TIFF (*.tif)|*.tif|PNG (*.png)|*.png|ICO (*.ico)|*.ico|EMF (*.emf)|*.emf|WMF (*.wmf)|*.wmf|All files (*.*)|*.*"
FileName=""
}

карма: 22

0
Ответов: 17
Рейтинг: 0
#6: 2016-09-06 13:52:13 ЛС | профиль | цитата
nesco, аааа. точка с зяпятой... вот оно почему не получалось.. спасибо за помощь!
карма: 0

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