| Koнтpoлы | - DropFile |
DropFile
Краткое описание
Компонент применяется в случае необходимости принятия сброшенных файлов на форму или другой компонент контейнер, а также для организации перетаскивания списка объектов файловой системы в другие программы.
Параметры
Методы
События
Данные
Примеры
Пример использования компонента DropFile
Пример использования компонента DropFile при перетаскивании
Пример приема файлов разными элементами (MainForm, ChildPanel)
#sha
Add(MainForm,2953706,21,70)
{
Caption="Пример использования DropFile"
}
Add(DropFile,10287908,105,70)
{
link(onDropFile,4519774:doText,[])
link(onEndDrop,11038621:doMessage,[(149,83)(149,125)])
}
Add(Label,4519774,161,70)
{
Left=5
Top=110
Width=377
Height=72
Caption="Перетащите мышкой любой файл на форму"
AutoSize=1
Alignment=2
}
Add(Message,11038621,161,119)
{
Caption="Файл брошен на форму"
link(Message,4519774:Caption,[])
}
Пример использования компонента DropFile при перетаскивании
#sha
Add(DropFile,6907332,441,42)
{
Point(onStartDrop)
link(onDropFile,2561894:doAdd,[])
link(List,2561894:Array,[(447,30)(489,30)(489,99)(524,99)])
link(onStartDrop,2561894:doClear,[(492,62)(492,55)])
}
Add(ListBox,2561894,504,42)
{
Left=10
Top=35
Width=400
Height=225
Point(onMouseDown)
Point(onMouseMove)
link(onMouseDown,8870329:doMouseDown,[])
link(onMouseMove,8870329:doMouseMove,[])
}
Add(Label,11902681,385,42)
{
Left=10
Top=10
Width=400
Caption="Make drop items to Form then select them and to do Drag & Drop to other place"
AutoSize=1
}
Add(MultiElementEx,8870329,567,56)
{
@Hint=#11:Drag begin?|
link(onDrag,6907332:doDrag,[(610,62)(610,109)(429,109)(429,48)])
}
BEGIN_SDK
Add(EditMultiEx,15504153,14,21)
{
WorkCount=#11:doMouseDown|11:doMouseMove|
EventCount=#6:onDrag|0:|
Width=713
Height=221
link(doMouseDown,6357608:doEvent,[(35,27)(35,69)])
link(doMouseMove,7290753:doEvent,[(21,34)(21,146)])
}
Add(Counter,7458136,483,147)
{
link(onNext,15558637:doEvent,[])
}
Add(IndexToChanel,7290753,245,140)
{
link(onEvent1,434983:doEvent,[])
}
Add(Hub,6236157,448,182)
{
link(onEvent1,7458136:doReset,[(472,188)(472,167)])
link(onEvent2,11267719:doEnable,[(583,195)(583,174)])
}
Add(IndexToChanel,15558637,539,147)
{
Count=3
Data=Integer(1)
link(onEvent3,11267719:doData,[])
}
Add(Hub,13389177,651,161)
{
link(onEvent1,11267719:doDisable,[(678,167)(678,202)(597,202)(597,181)])
link(onEvent2,15504153:onDrag,[(697,174)(697,27)])
}
Add(MultiElementEx,6893652,245,70)
{
@Hint=#20:Key Event Monitoring|
link(onLeftMouseUp,9008891:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,3652965,21,21)
{
WorkCount=#15:doKeyMonitoring|16:doStopMonitoring|
EventCount=#13:onLeftMouseUp|0:|
Height=137
link(doKeyMonitoring,9176872:doEvent1,[(35,27)(35,62)])
link(doStopMonitoring,1975648:doTimer,[(28,34)(28,111)])
}
Add(Timer,9104781,96,98)
{
Interval=100
Enable=1
Point(onStop)
link(onTimer,13969439:doFor,[])
link(onStop,12743003:##clear,[(144,111)(144,76)])
}
Add(IndexToChanel,15216937,264,56)
{
Point(Data)
link(onEvent1,3652965:onLeftMouseUp,[(309,62)(309,27)])
link(Data,13969439:Position,[(270,44)(253,44)(253,142)(165,142)])
}
Add(MultiElementEx,12743003,215,56)
{
Mode=1
link(onChange,15216937:doEvent,[])
}
BEGIN_SDK
Add(EditMultiEx,15933685,3,3)
{
WorkCount=#5:##add|8:##select|7:##clear|
EventCount=#8:onChange|
Width=237
Height=95
Point(##add)
Point(##select)
Point(##clear)
link(##select,9613345:doReadKey,[(30,16)(30,55)])
}
Add(Keyboard,9613345,77,49)
{
link(onReadKey,11411939:doData,[])
}
Add(ChangeMon,11411939,140,49)
{
Data=Integer(0)
link(onData,15933685:onChange,[(209,55)(209,9)])
}
END_SDK
Add(For,13969439,159,98)
{
Start=1
End=2
link(onEvent,12743003:##select,[(203,104)(203,69)])
}
Add(For,4004499,96,56)
{
Start=1
End=2
link(onEvent,12743003:##add,[])
}
Add(Hub,9176872,63,56)
{
link(onEvent1,4004499:doFor,[])
link(onEvent2,9104781:doTimer,[(87,69)(87,104)])
}
Add(Timer,1975648,49,105)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,9104781:doStop,[])
}
END_SDK
Add(Memory,371077,350,63)
{
Default=Integer(0)
}
Add(Hub,5266932,133,63)
{
link(onEvent1,4248660:doData,[])
link(onEvent2,6893652:doKeyMonitoring,[])
}
Add(DoData,4248660,182,63)
{
Data=Integer(1)
link(onEventData,371077:doValue,[])
}
Add(Hub,9008891,287,70)
{
OutCount=3
link(onEvent1,371077:doClear,[])
link(onEvent2,6893652:doStopMonitoring,[(312,83)(312,107)(233,107)(233,83)])
link(onEvent3,6236157:doEvent1,[(337,90)(337,188)])
}
Add(IndexToChanel,434983,350,140)
{
Point(Index)
link(onEvent2,9247594:doData,[])
link(Index,371077:Value,[])
}
Add(MultiElementEx,9247594,413,147)
{
@Hint=#19:Mouse Move Detector|
link(onData,7458136:doNext,[])
}
BEGIN_SDK
Add(EditMultiEx,6300706,21,21)
{
WorkCount=#6:doData|
EventCount=#6:onData|
Width=223
Height=165
link(doData,720799:doData,[(39,27)(39,139)])
}
Add(Math,1086274,98,91)
{
OpType=2
Op2=65536
ResultType=0
link(onResult,2538627:doOperation,[])
link(Op1,11987903:MouseX,[(104,83)(146,83)])
}
Add(MouseEvent,11987903,140,42)
{
}
Add(Math,2538627,140,91)
{
ResultType=0
link(onResult,6918143:doData,[(184,97)(184,80)(47,80)(47,97)])
link(Op2,11987903:MouseY,[])
}
Add(EventFromData,6918143,56,91)
{
link(onEvent,1086274:doOperation,[])
}
Add(ChangeMon,720799,56,133)
{
link(onData,6300706:onData,[(204,139)(204,27)])
link(Data,6918143:GetData,[])
}
END_SDK
Add(MultiElementEx,11267719,609,161)
{
@Hint=#4:Gate|
link(onTrue,13389177:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,15147993,3,3)
{
WorkCount=#6:doData|8:doEnable|9:doDisable|
EventCount=#6:onTrue|
Width=181
Height=116
link(doData,16016200:doEvent,[(49,9)(49,76)])
link(doEnable,2676259:doOn,[(39,16)(39,41)])
link(doDisable,2676259:doReset,[(29,23)(29,34)])
}
Add(IndexToChanel,16016200,70,70)
{
Point(Index)
link(onEvent2,15147993:onTrue,[(143,83)(143,9)])
link(Index,2676259:State,[])
}
Add(Switch,2676259,70,21)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
END_SDK
Add(IndexToChanel,6357608,70,63)
{
Point(Data)
link(onEvent1,5266932:doEvent1,[])
}
END_SDK
Пример приема файлов разными элементами (MainForm, ChildPanel)
#sha
Add(MainForm,4119116,91,112)
{
Caption="Пример использования DropFile"
}
Add(ChildPanel,544253,301,112)
{
}
BEGIN_SDK
Add(EditMulti,12459144,21,21)
{
}
Add(Panel,3400877,35,105)
{
Left=10
Top=125
Width=375
Height=140
}
Add(Memo,12595055,168,105)
{
Left=10
Top=10
Width=355
Height=120
}
Add(DropFile,935197,98,105)
{
link(onDropFile,12595055:doAdd,[])
}
END_SDK
Add(Memo,12184007,231,112)
{
Left=15
Top=10
Width=365
Height=100
}
Add(DropFile,15813227,161,112)
{
link(onDropFile,12184007:doAdd,[])
}
Замечания
Если элемент разместить на форме, то сбрасывать файлы можно в любом её месте(о чем свидетельствует изменяющийся значек курсора), в то время как установка компонента внутрь элемента контейнера приведет к тому, что файлы будут успешно приняты программой только при сбросе их в область этого контейнера(под контейнером понимается Panel, GroupBox и прочие).
Поскольку операция приема файлов является внутренним событием компонента, то для выполнения некоторых начальных действий(если таковые необходимы) можно использовать скрытое по-умолчанию событие onStartDrop.
Очевидно, что компонент не может использоваться в проектах без формы или не в визуальных контейнерах.
Обновление элемента: [svn]DropFile.pas[/svn]
Поскольку операция приема файлов является внутренним событием компонента, то для выполнения некоторых начальных действий(если таковые необходимы) можно использовать скрытое по-умолчанию событие onStartDrop.
Очевидно, что компонент не может использоваться в проектах без формы или не в визуальных контейнерах.
Обновление элемента: [svn]DropFile.pas[/svn]
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)