Page History
ドラッグ・アンド・ドロップ操作は、オブジェクトをある場所から別の場所に移動またはコピーするために使用されます。
ドラッグ・アンド・ドロップ操作は、マウスの左ボタンをクリックしてマウスでオブジェクトを選択すると開始します。それからマウスの左ボタンを押さえたままオブジェクトをドラッグし、最後にマウスの左ボタンを離してオブジェクトをドロップします。
ドラッグ・アンド・ドロップ操作は、4つのイベントで構成されます。
StartDrag
DragOver
DragDrop
EndDrag
ドラッグ・アンド・ドロップされるオブジェクトは、Payloadです。
LANSAコントロールで、ドラッグ・オーバーまたはドラッグ・アンド・ドロップ・イベント中に Windows Explorer からのファイル・パスを受け入れるようにするには、Sys_Appln で (例えば) 次のプロパティを有効にします。 #com_owner.Initialize.
#SYS_APPLN.AllowWindowsDragDrop := True
ファイルをドラッグすると、イベント・ハンドラーのPayloadパラメータに、タイプ #PRIM_APPL.IDragDropFilePaths のコンポーネント・インターフェースが含まれます。
このインターフェースは、2つのメソッドを公開します。
...
新しいフォームを作成し、ソースを次のコードで置き換えます。
* **************************************************** COMPONENT COMPONENT: STD_FORM** **************************************************
Function OptionsFunction Options(*DIRECT)Begin_Com Role(*EXTENDS #PRIM_FORM) Clientheight(374) Clientwidth(449) Dragstyle(Aggregated) Height(410) Left(513) Top(151) Width(465) Define_Com ClassCom Class(#PRIM_LTVW) NameName(#ListView) ColumnbuttonheightColumnbuttonheight(20) ComponentversionComponentversion(2) DisplaypositionDisplayposition(1) DragstyleDragstyle(Automatic) EnforceminimumsizeEnforceminimumsize(True) FullrowselectFullrowselect(True) HeightHeight(289) KeyboardpositioningKeyboardpositioning(SortColumn) LeftLeft(16) ParentParent(#COM_OWNER) ShowsortarrowShowsortarrow(True) TabpositionTabposition(1) TopTop(8) WidthWidth(420)Define_Com ClassCom Class(#PRIM_LVCL) NameName(#LVCL_1) CaptionCaption('Items') CaptiontypeCaptiontype(Caption) DisplaypositionDisplayposition(1) MinimumwidthMinimumwidth(10) ParentParent(#ListView) SourceSource(#STD_NUM) WidthWidth(10)Define_Com ClassCom Class(#PRIM_LVCL) NameName(#LVCL_2) CaptionCaption('File PathFile Path') CaptiontypeCaptiontype(Caption) DisplaypositionDisplayposition(2) MinimumwidthMinimumwidth(10) ParentParent(#ListView) SourceSource(#VF_INSDTA) WidthWidth(93)* Initialisation
Evtroutine HandlingEvtroutine Handling(#com_owner.Initialize)#SYS_APPLN.AllowWindowsDragDrop AllowWindowsDragDrop := TrueTrue
Set ComSet Com(#com_owner) CaptionCaption(*component_desc)Endroutine
Evtroutine HandlingEvtroutine Handling(#ListView.DragOver) OptionsOptions(*NOCLEARMESSAGES NOCLEARMESSAGES *NOCLEARERRORS) PayloadPayload(#draggedData) AcceptdropAcceptdrop(#acceptDrop) DragstateDragstate(#dragState)
If If (#dragState #dragState *NE ExitNE Exit)
If If (#draggedData #draggedData *Is #PRIMIs #PRIM_APPL.IDragDropFilePaths)#STD_NUM NUM := (#draggedData #draggedData *As #PRIMAs #PRIM_APPL.IDragDropFilePaths).FileCount#VF_INSDTA := '' Clr_List Named(#ListView) Add_Entry To_List(#ListView)
#acceptDrop #acceptDrop := TrueTrueEndifEndifEndroutine
Evtroutine Handling Evtroutine Handling(#ListView.DragDrop) OptionsOptions(*NOCLEARMESSAGES NOCLEARMESSAGES *NOCLEARERRORS) PayloadPayload(#draggedData)Clr_List Named(#ListView)
If If (#draggedData #draggedData *Is #PRIMIs #PRIM_APPL.IDragDropFilePaths)
Define FieldDefine Field(#NumFiles) ReffldReffld(#STD_NUM)
#NumFiles #NumFiles := (#draggedData #draggedData *As #PRIMAs #PRIM_APPL.IDragDropFilePaths).FileCount#STD_NUM := 1
Dowhile Cond Dowhile Cond(#STD_NUM <NUM <= #NumFiles#NumFiles)#VF_INSDTA INSDTA := (#draggedData #draggedData *As #PRIMAs #PRIM_APPL.IDragDropFilePaths).FilePath<#STD_NUM>Add_Entry ToEntry To_List(#ListView)#STD_NUM NUM += 11EndwhileEndifEndroutineEnd_Com
Windows Explorerを使用してファイルを選択します。ファイルをListViewの上にドラッグし、選択したファイルの数が「Items」列に表示されるのを確認します。ファイルをListViewの上にドロップし、ファイル・パスが2列目に表示されるのを確認します。
| Warning |
|---|
警告: |
次のトピックも参照してください。

