エキスプローラもどきの作成 (1)

  プロジェクト作成



1) 標準 EXE を選択
2) Project1 のプロパティで、プロジェクト名を 「EPM」 とする
3) Form1 のオブジェクト名を 「frmMain」とする
4) さらに Caption を「EPM」に変更

ここでとりあえず「保存」



  メニューバーを作る



1) ツールから「メニューエディタ」を選択
2) キャプションに ファイル と入力
3) 名前に FILE と入力
4) 次の行のなにも無いところを選択する
5) キャプションに 終了 と入力
6) 名前に END と入力
7) 右向き矢印をクリック
8) メニューエディタを閉じる

フォーム上のメニューバーから「終了」をクリックして以下のように記述する

  
Private Sub END_Click()

    End

End Sub
  




  外観

1) frmMain の WindowState プロパティを「最大化」にする
2) frmMain の BackColor プロパティを 「&H00FFFFFF&」にする



  コンポーネント追加

1) プロジェクトのコンポーネントを選択
2) Microsoft Windows Common Controls 6.0 をチェック

3) DriveListBox コントロールを frmMain に貼り付け
4) オブジェクト名を「DRV」とする
5) Left と Top プロパティを共に 0 にする

6) ImageList コントロールを frmMain に貼り付け
7) オブジェクト名を「IMG」とする
8) IMGのの上で右クリックしてプロパティを表示
9) イメージタプでピクチャを挿入(close,open)

10) TreeView コントロールを frmMain に貼り付け
11) オブジェクト名を「TV」とする
12) Left プロパティのみ 0 にする
13) TV の上で右クリックしてプロパティを表示
14) イメージリストで、「IMG」を選択

15) DirListBox コントロールを frmMain に貼り付け
16) オブジェクト名を「DIR」とする
17) Visible プロパティを False にする




  コントロールのサイズ調整

  
Private Sub Form_Load()

    TV.Top = DRV.Height
    TV.Width = DRV.Width

End Sub

Private Sub Form_Resize()

    If WindowState <> 1 Then
        TV.Height = frmMain.Height - DRV.Height - 700
    End If

End Sub
  



  プロジェクトに標準モジュールを追加

1) オブジェクト名を「VIEW」とする

以下を追加

  
Global Const Image_Closed = 1
Global Const Image_Opend = 2

Public Sub LoadTreeView(frm As Form, Index As Long)
    
    Dim I As Long
    Dim oDIR As DirListBox
    Dim oTV As TreeView
    
    Set oDIR = frm.DIR
    Set oTV = frm.TV
  
    oDIR.Path = CurDir()
    
    For I = 0 To oDIR.ListCount - 1
        
        If Index = 0 Then
            oTV.Nodes.Add , , , DIR(oDIR.List(I), &H16), Image_Closed
        Else
            oTV.Nodes.Add Index, tvwChild, , DIR(oDIR.List(I), &H16), Image_Closed
        End If
            
    Next I
    
    If Index = 0 Then
        oTV.Sorted = True
    Else
        oTV.SelectedItem.Sorted = True
    End If

End Sub
  




  フォームのロードにコードを追加

  
Private Sub Form_Load()

    TV.Top = DRV.Height
    TV.Width = DRV.Width

    ChDir "\"
    TV.Nodes.Clear
    LoadTreeView frmMain, 0

End Sub
  



  ドライブ変更を有効にする

  
Private Sub DRV_Change()

	On Error GoTo ErrorMsg

	ChDrive DRV.Drive		' 選択したドライブへカレントドライブを変更
	ChDir "\"			' カレントディレクトリをルートへ変更
	TV.Nodes.Clear		' ツリーをクリア
	LoadTreeView frmMain, 0	' カレントドライブのルート情報を表示

	Exit Sub

ErrorMsg:
	MsgBox Err.Description, vbOKOnly, "EPM"

End Sub
  



  ディレクトリ ( node ) を展開する

  
Private Sub TV_DblClick()

	Dim oNode As Node

	' 選択されたノードオブジェクトを取得
	Set oNode = TV.SelectedItem
    
	Select Case oNode.Image
		Case Image_Closed		' 閉じたノード
            
			ChDir "\" & oNode.FullPath	' ツリーパスよりカレントディレクトリを決定

			If oNode.Children = 0 Then	' 子ノードが無い場合

				' 子ノードを展開
				LoadTreeView frmMain, oNode.Index

				' 実際に1つ以上のデータがある場合
				If oNode.Children <> 0 Then

					' 子ノードを開く
					oNode.Expanded = True
					oNode.ExpandedImage = Image_Opend

				End If
			End If
    
	End Select

End Sub
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ