|
' ******************************************************
' 初期設定
' ******************************************************
Private Sub Form_Load()
' *************************************************
' フォームを画面中央に
' *************************************************
Call lbCenterWindow(Me)
' *************************************************
' 初期値設定
' *************************************************
nDrag = 0
nWidthTreeView = 3000
' *************************************************
' ルートのディレクトリツリー作成
' *************************************************
Call AddChildNode(Me.trvサーバ, Null)
' *************************************************
' ローカルカレントの表示
' *************************************************
Module2.LoadListView Me
End Sub
' ******************************************************
' サイズ調整
' ******************************************************
Private Sub Form_Resize()
Dim rc As RECT
' *************************************************
' 最小化時はなにもしない
' *************************************************
If Me.WindowState = vbMinimized Then
Exit Sub
End If
' *************************************************
' ウインドウ内のサイズ取得
' *************************************************
GetClientRect Me.hwnd, rc
' *************************************************
' FTP ツリービュー
' *************************************************
With Me.trvサーバ
.Left = 0
.Top = 0
.Width = nWidthTreeView
.Height = Me.ScaleY(rc.Bottom, vbPixels, vbTwips)
End With
Call ArrangeSize(Me)
Exit Sub
End Sub
' ************************************
' ドライブ変更
' ************************************
Private Sub drvローカル_Change()
ChDrive (Me.drvローカル.Drive)
Module2.LoadListView Me
End Sub
' ************************************
' ディレクトリ変更
' ************************************
Private Sub lstローカル_DblClick()
Dim strTarget As String
strTarget = Me.lstローカル.SelectedItem.Text
If Me.lstローカル.SelectedItem.SmallIcon = Image_Up Then
ChDir "..\"
Module2.LoadListView Me
End If
If Me.lstローカル.SelectedItem.SmallIcon = Image_Closed Then
ChDir strTarget
Module2.LoadListView Me
End If
End Sub
' ******************************************************
' ツリーへのドラッグドロップ
' ******************************************************
Private Sub trvサーバ_DragDrop(Source As Control, x As Single, y As Single)
Module2.DragDropAction Me, x, Source, Me.trvサーバ
End Sub
' ******************************************************
' リストへのドラッグドロップ
' ******************************************************
Private Sub lstローカル_DragDrop(Source As Control, x As Single, y As Single)
Module2.DragDropAction Me, x, Source, Me.lstローカル
End Sub
' ******************************************************
' フォームーへのドラッグドロップ
' ******************************************************
Private Sub Form_DragDrop(Source As Control, x As Single, y As Single)
Module2.DragDropAction Me, x, Source, Me
End Sub
' ******************************************************
' ツリーへのドラッグ中の選択処理の解除
' ******************************************************
Private Sub trvサーバ_Click()
Set trvサーバ.DropHighlight = Nothing
End Sub
' ******************************************************
' ツリーへのドラッグ中の処理
' ******************************************************
Private Sub trvサーバ_DragOver(Source As Control, x As Single, y As Single, State As Integer)
If trvサーバ.HitTest(x, y) Is Nothing Then
Exit Sub
End If
If trvサーバ.HitTest(x, y).Image = Image_Leaf Then
Exit Sub
End If
trvサーバ.HitTest(x, y).Selected = True
Set trvサーバ.DropHighlight = trvサーバ.HitTest(x, y)
End Sub
' ******************************************************
' ローカルファイルリストのドラッグ中の処理
' ******************************************************
Private Sub lstローカル_DragOver(Source As Control, x As Single, y As Single, State As Integer)
Dim i As Integer
For i = 1 To Me.lstローカル.ListItems.Count
If ListSelect(i) = 1 Then
Me.lstローカル.ListItems(i).Selected = True
End If
Next
End Sub
' ******************************************************
' ノードの展開
' ******************************************************
Private Sub trvサーバ_DblClick()
Dim nodフォルダ As Node
Dim i As Integer
' 選択されたノードオブジェクトを取得
Set nodフォルダ = trvサーバ.SelectedItem
Select Case nodフォルダ.Image
Case Image_Closed ' 閉じたノード
If nodフォルダ.Children = 0 Then ' 子ノードが無い場合
Call Module1.lbFTPEnum( _
Replace(nodフォルダ.FullPath, "\", "/"), _
"*.*", _
Form1.grd一覧 _
)
' 子ノードを展開
Call AddChildNode(Me.trvサーバ, nodフォルダ.Index)
' 実際に1つ以上のデータがある場合
If nodフォルダ.Children <> 0 Then
' ノードを開く
Call OpenNode(nodフォルダ)
End If
End If
End Select
End Sub
' ******************************************************
' 境界変更バードラッグ開始
' ******************************************************
Private Sub drgBar_MouseMove( _
Button As Integer, _
Shift As Integer, _
x As Single, _
y As Single _
)
If Button = vbLeftButton Then
nDrag = DRAG_BAR
With Me.drgBar
.Height = .Height * 3
.Top = (.Height / 3) * -1
.Drag vbBeginDrag
End With
End If
End Sub
' ******************************************************
' ツリービューのファイルをドラッグ開始
' ******************************************************
Private Sub trvサーバ_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim nodフォルダ As Node
If Button = vbLeftButton Then
If Me.trvサーバ.HitTest(x, y) Is Nothing Then
Exit Sub
Else
' ドラッグ中のノードを強制的に選択状態にする
Me.trvサーバ.HitTest(x, y).Selected = True
End If
Set nodフォルダ = trvサーバ.SelectedItem
' ドラッグ中のノードが「ファイル」の場合のみドラッグを開始する
If nodフォルダ.Image = Image_Leaf Then
nDrag = DRAG_FTPFILE
With Me.trvサーバ
.Drag vbBeginDrag
End With
End If
End If
End Sub
' ******************************************************
' リストービューのファイルをドラッグ開始
' ******************************************************
Private Sub lstローカル_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
If Button = vbLeftButton Then
If lstローカル.SelectedItem.SmallIcon = Image_Leaf Then
nDrag = DRAG_LOCALFILE
ReDim ListSelect(Me.lstローカル.ListItems.Count)
For i = 1 To Me.lstローカル.ListItems.Count
ListSelect(i) = 0
If Me.lstローカル.ListItems(i).Selected Then
If Me.lstローカル.ListItems(i).SmallIcon = Image_Leaf Then
ListSelect(i) = 1
Else
Me.lstローカル.ListItems(i).Selected = False
End If
End If
Next
With lstローカル
.Drag vbBeginDrag
End With
End If
End If
End Sub
' ******************************************************
' 終了
' ******************************************************
Private Sub 終了_Click()
Form1.cmd解除.Enabled = False
Call Module1.lbFTPDisconnect
Form1.cmd接続.Enabled = True
End
End Sub
| |