OLEDD ドラッグドロップ操作用メソッド集   AC2020VB5ヘルプ目次
このコントロール群のドラッグドロップ操作を、共通の操作で処理します。
このコントロール群から、他のコントロールへドラッグドロップする場合、
他のコントロールから、このコントロール群へドラッグドロップする場合、
あるいは、このコントロール群用に作成した、他のコントロールドラッグデーターが、
他のコントロールにドロップされる、つまり、他のコントロール同士のドラッグドロップでも、
このコントロール群にドロップされる可能性のあるドラッグデーターであれば、
必ずこの OLEDD コントロールのメソッド群で処理します。



OLEDD メソッド
ControlFontColorSet OLEDragDropDataRead OLEDragOverCheck OLEDragStartDataMake
OLEDragStrMake OLEDropIntoAxtXSetData OLEDropStr OLEDropStrRead
OLEFilesDragDropGet OLEFilesDragOverCheck OLEFilesDragStartSet OLEFontColorDragDropAutoSet
OLEFontColorDragOverAutoCheck OLEFontColorDragStartAutoSet

AC2020VB5PublicFunc.html

rOpCodeStr
ドラッグオーバー、ドラッグドロップ時に、チェック/取得する内容を、指定するキーコード。
 p = ファイル名
 t = ユーザー指定の文字列
 f = フォントデーター
 r = フォントの色
 b = フォントの背景色
 c = 色のデーター  ( Iroiro に自動設定できる )
 i = アイコンファイル名とアイコンインデックス

すべてのデーターをチェック/取得する場合は rOpCodeStr = "ptfrbci"
但し、 p ファイル名の指定は、ドラッグオーバーチェックでのみ有効です。



OLEDD メソッド



OLEDD
Function ControlFontColorSet(rOpCodeStr As String, wCont As Object, rFont As StdFont, rFontColor As Long, rBackColor As Long) As Boolean
コントロールに、フォント、文字色、背景色を設定します。
コントロールが RichTextBox であれば、セルデーターのプロパティを設定します。
rOpCodeStr に "?" が含まれていれば以下のデーターを処理します。全てのデーターを処理する場合は rOpCodeStr = "frb"
"f" = DragFont "r" = FontColor "b" = BackColor
OLEFontColorDragDropAutoSet  OLEDropStrRead  RichTextBoxSelFontColorGet


OLEDD
Function OLEDragDropDataRead(rOpCodeStr As String, Data As Object, Effect As Long, Optional wUserStr As String, Optional wDragFont As StdFont, Optional wFontColor As Long, Optional wBackColor As Long, Optional wDragColor As Long, Optional wIconFile As String, Optional wIconIndex As Long) As Boolean
OLE ドロップ時に、rDropStr にこのクラスのフォーマットのデーター文字列で、
フォント/カラー/アイコン のデーターが入っていれば、それぞれを返します。
rOpCodeStr に "?" が含まれていれば以下のデーターを読み出す。全てのデーターを読み出す場合は rOpCodeStr = "tfrbci"
"t" = UserStr "f" = DragFont "r" = FontColor "b" = BackColor "c" = DragColor "i" = IconFile, IconIndex
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
wDragFont にはフォント変数だけを指定します。フォントオブジェクト、コントロールのフォントは使用できません。
呼び出し先で、有効なフォントがあれば、Set wDragFont = New StdFiont が実行されて、新しいフォントオブジェクトが作成されます。

OLEDropStrRead  OLEFontColorDragDropAutoSet  OLEFilesDragDropGet  OLEDropStr


OLEDD
Function OLEDragOverCheck(rOpCodeStr As String, Data As Object, Effect As Long) As Boolean
OLE ドラッグオーバーに、rOpCodeStr で指定した、データーが入っていれば Effect = vbDropEffectCopy にして True を返します。
なければ Effect = vbDropEffectNone にして False を返します。
rOpCodeStr に "?" が含まれていれば以下のデーターをチェックする。全てのデーターをチェックする場合は rOpCodeStr = "ptfrbci"
"t" = UserStr "f" = DragFont "r" = FontColor "b" = BackColor "c" = DragColor "i" = IconFile, IconIndex
"p" = ファイルドラッグのチェック場合は DragOver のイベントだけに限定してチェックします。
ドラッグファイルのイベントの処理には OLEFilesDragStartSet  OLEFilesDragDropGet  OLEFilesDragOverCheck を使用できます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFontColorDragOverAutoCheck  OLEFilesDragOverCheck


OLEDD
Function OLEDragStartDataMake(Data As Object, AllowedEffects As Long, Optional rUserStr As String = "", Optional rDragFont As StdFont = Nothing, Optional rFontColor As Long = -1, Optional rBackColor As Long = -1, Optional rDragColor As Long = -1, Optional rIconFile As String, Optional rIconIndex As Long = -1) As Boolean
OLE ドラッグ開始時に、フォント/カラー/アイコン を全てまとめて、
このクラスのフォーマットのデーター文字列に変換して、
ユーザー指定の他のデーター rUserStr の後ろに追加して文字列を作り、Data As Object にいれて返します。
rUserStr には、他のコントロールへにドロップした場合に必要な文字列データーを、ユーザーが指定できます。
有効なドラッグデーターが設定された場合にば、AllowedEffects = vbDropEffectCopy が設定されます。
なければ AllowedEffects = vbDropEffectNone が設定されます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEDragStrMake  OLEFontColorDragStartAutoSet  OLEFilesDragStartSet


OLEDD
Function OLEDragStrMake(Optional rUserStr As String, Optional rDragFont As StdFont = Nothing, Optional rFontColor As Long = -1, Optional rBackColor As Long = -1, Optional rDragColor As Long = -1, Optional rIconFile As String, Optional rIconIndex As Long = -1) As String
OLE ドラッグ開始時に、フォント/カラー/アイコン を全てまとめて、
このクラスのフォーマットのデーター文字列に変換して、
ユーザー指定の他のデーター rUserStr の後ろに追加して返します。
rUserStr には、他のコントロールへにドロップした場合に必要な文字列データーを、ユーザーが指定できます。
引数
( rUserStr,  rDragFont,  rFontColor,  rBackColor,  rDragColor,  rIconFile,  rIconIndex )
は厳密に指定されていないので、データー型が合えば、
( String型,  Font型,     Long型,      Long型,      Long型,      String型,   Long型 )
任意のデーターを設定できます。
但し、その場合は、ドラッグドロップ時の処理は自動化できないので、
引数を渡した状況に合わせたカスタム処理が必要になります。

OLEDragStartDataMake  OLEFontColorDragStartAutoSet  OLEDropStrRead


OLEDD
Function OLEDropIntoAxtXSetData(rDropUkeActX As Object, rFlagUkeActX As String, rFont As StdFont, rForeColor As Long, rFilePathText As String, Optional X As Single = -1, Optional Y As Single = -1) As Boolean
外部のデーターで、フォント、色、ファイル名を AC2020VB5 のコントロールに設定します。
rDropUkeActX = 設定するコントロールの名前  Huluhulu / Iroiro / IroMozi / MotoIroMozi / Mozimise / Mozimoto / Mozimozi
rFlagUkeActX = 設定する複合コントロールの部品識別キー文字列  "Iroiro" / "Mozimoto" / "Mozimozi" / ""
rFont     = AC2020VB5 に設定するフォントを指定します。
rForeColor  = AC2020VB5 に設定する色を設定します。
rFilePathText = AC2020VB5 に設定するファイル/フォルダ名を設定します。
X As Single Y As Single には、 Iroiro / Mozimozi へのドロップ時に使用する、OleEventDragDrop() イベントの引数を指定します。
OLEDropIntoAxtXFromRichTextBox  RichTextBoxSelFontColorGet  ControlFontColorSetByRichTextBox  ControlFontColorSet


OLEDD
Function OLEDropStr(Data As Object) As String
OLE DragDrop 時に、Data As Object に、データー文字列が入っていれば、それを返します。
ファイル名が入っている場合は、"vbCFFiles" の文字列が返されます。
その場合は、OLEFilesDragDropGet メソッドでファイル名の配列を取得できます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEDragDropDataRead  OLEFontColorDragDropAutoSet  OLEDragOverCheck  OLEDragStrMake


OLEDD
Function OLEDropStrRead(rOpCodeStr As String, rDropStr As String, Optional wUserStr As String, Optional wDragFont As StdFont, Optional wFontColor As Long, Optional wBackColor As Long, Optional wDragColor As Long, Optional wIconFile As String, Optional wIconIndex As Long) As Boolean
OLE ドロップ時に、rDropStr にこのクラスのフォーマットのデーター文字列で、
フォント/カラー/アイコン のデーターが入っていれば、それぞれを返します。
rOpCodeStr に "?" が含まれていれば以下のデーター読み出す。全てのデーターを読み出す場合は rOpCodeStr = "tfrbci"
"t" = UserStr "f" = DragFont "r" = FontColor "b" = BackColor "c" = DragColor "i" = IconFile, IconIndex
wDragFont にはフォント変数だけを指定します。フォントオブジェクト、コントロールのフォントは使用できません。
呼び出し先で、有効なフォントがあれば、Set wDragFont = New StdFiont が実行されて、新しいフォントオブジェクトが作成されます。

OLEDropStr  OLEDragDropDataRead  OLEFontColorDragDropAutoSet


OLEDD
Function OLEFilesDragDropGet(Data As Object, Effect As Long, rDoSortTrue As Boolean, rFullPathTrue As Boolean, wFolders() As String, wFiles() As String) As Long
rCont の OLEDragDrop イベントで、wFiles() に、ファイルデーターを入れて、
フルパス名でソートして、UBound(wFolders()) + UBound(wFiles()) を返す。
rDoSortTrue   True = 配列をソートして返します。  False = 配列をソートしません。
rFullPathTrue  True = フルパス名を返します。    False = ファイルタイトルを返します。
有効なドラッグデーターが取得された場合にば、Effect = vbDropEffectCopy が設定されます。
なければEffect = vbDropEffectNone が設定されます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFilesDragStartSet  OLEFilesDragOverCheck  OLEDragOverCheck


OLEDD
Function OLEFilesDragOverCheck(Data As Object, Effect As Long) As Boolean
OLE ドラッグオーバー時に、ファイルデーターが入っていれば Effect = vbDropEffectCopy にして True を返します。
なければ Effect = vbDropEffectNone にして False を返します。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFilesDragStartSet  OLEFilesDragDropGet  OLEDragOverCheck


OLEDD
Function OLEFilesDragStartSet(Data As Object, AllowedEffects As Long, rFiles() As String) As Boolean
rCont の OLEDragStart イベントで、rFiles() のファイルデーターを設定する。
有効なドラッグデーターが取得された場合にば、Effect = vbDropEffectCopy が設定されます。
なければEffect = vbDropEffectNone が設定されます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFilesDragDropGet  OLEFilesDragOverCheck  OLEDragOverCheck


OLEDD
Function OLEFontColorDragDropAutoSet(rOpCodeStr As String, Data As Object, Effect As Long, wCont As Object, Optional wUserStr As String) As Boolean
wCont の DragDrop イベントで、Data As Object により .Font .ForeColor .BackColor を自動設定し、wUserStr を返す。
rCont が RichTextbox で DataRich が指定されれば、
.SelFontName .SelFontSize .SelBold .SelItalic .SelStrikeThru .SelUnderline .SelColor .BackColor  を自動設定する。
有効なドラッグデーターが取得された場合にば、Effect = vbDropEffectCopy が設定されます。
なければEffect = vbDropEffectNone が設定されます。
wCont = TextBox, RichTextBox, ListBox, ListView, TreeView ... etc
rOpCodeStr に "?" が含まれていれば以下のデーターを設定する。全てのデーターを設定する場合は rOpCodeStr = "frb"
"f" = DragFont "r" = FontColor "b" = BackColor
wUserStr には rOpCodeStr に "t" の指定がなくても、ドラッグ開始時に設定した、ユーザーのテキストが返されます。
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFontColorDragStartAutoSet  OLEFontColorDragOverAutoCheck  OLEDragOverCheck  OLEDragStartDataMake  OLEDragStrMake


OLEDD
Function OLEFontColorDragOverAutoCheck(rOpCodeStr As String, Data As Object, Effect As Long) As Boolean
OLE ドラッグオーバー時に、rOpCodeStr で指定した、データーが入っていれば Effect = vbDropEffectCopy にして True を返します。
なければ Effect = vbDropEffectNone にして False を返します。
rOpCodeStr に "?" が含まれていれば以下のデーターをチェックする。全てのデーターをチェックする場合は rOpCodeStr = "tfrbci"
"f" = DragFont "r" = FontColor "b" = BackColor
Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFontColorDragStartAutoSet  OLEFontColorDragDropAutoSet  OLEDragOverCheck  OLEDragStartDataMake  OLEDragStrMake


OLEDD
Function OLEFontColorDragStartAutoSet(Data As Object, AllowedEffects As Long, rCont As Object, Optional rUserStr As String = "", Optional rDragColor As Long = -1) As Boolean
rCont の OLEDragStart イベントで、.Font .ForeColor .BackColor により ドラッグデーターを自動設定する。
rCont が RichTextbox で DataRich が指定されれば、
.SelFontName .SelFontSize .SelBold .SelItalic .SelStrikeThru .SelUnderline .SelColor .BackColor により ドラッグデーターを自動設定する。
rUserStr が有効であれば、データーのトップに追加設定する。 rDragColor も -1 でなければ無条件で追加する。
有効なドラッグデーターが取得された場合にば、Effect = vbDropEffectCopy が設定されます。
なければ、Effect = vbDropEffectNone が設定されます。
rCont = TextBox, RichTextBox, ListBox, ListView, TreeView ... etc
rDragColor = これに設定した値は、Iroiro コントロールにドロップした場合には、そのコントロールに自動設定されます。
使用例
Private Sub ListView1_OLEStartDrag(Data As ComctlLib.DataObject, AllowedEffects As Long)
    Call OLEDD1.OLEFontColorDragStartAutoSet(Data, AllowedEffects, ListView1)
End Sub

Data As Object には OLE DragStart / OLE DragDrop / OLE DragOver イベントの Data As DataObject を渡します。
OLEFontColorDragDropAutoSet  OLEFontColorDragOverAutoCheck  OLEDragOverCheck  OLEDragStartDataMake  OLEDragStrMake