ファイルシステムコントロール |
ファイルシステムコントロール(ドライブ・リスト・他)の連動 (095) | |
Option Explicit 'SampleNo=095 WindowsXP VB6.0(SP5) 2002.05.18 Private Sub Form_Load() '読込ファイルの拡張子の制限(使用目的で変更して下さい) cboCombo.AddItem "*.bmp;*.dib;*.jpg;*.gif;*.wmf;*.ico;*.cur;*.emf" cboCombo.AddItem "*.txt" cboCombo.AddItem "*.*" cboCombo.Text = "*.*" 'カレントフォルダーとドライブを指定 dirDir.Path = App.Path '"c:\" drvDrive.Drive = App.Path End Sub Private Sub mnuSentaku_Click() 'メニューの選択 fraFrame.Visible = True End Sub Private Sub Command1_Click() '選択ボタン 'MyFileName = txtFilePath.Text fraFrame.Visible = False End Sub Private Sub Command2_Click() '閉じるボタン fraFrame.Visible = False End Sub Private Sub drvDrive_Change() On Error GoTo errhandle 'エラーが発生したら処理ルーチンへ 'ディレクトリリストボックスに選択したドライブを dirDir.Path = drvDrive.Drive Exit Sub errhandle: '元のドライブを指定 drvDrive.Drive = dirDir.Path 'エラーが発生した次のステートメントへ移動 Resume Next End Sub Private Sub dirDir_KeyPress(KeyAscii As Integer) 'Enterキーでの操作を可能に If KeyAscii = vbKeyReturn Then dirDir.Path = dirDir.List(dirDir.ListIndex) End If End Sub Private Sub dirDir_Change() '選択したディレクトリをファイルリストボックスへ filFile.Path = dirDir.Path 'コンボボックスで指定された拡張子のファイルだけ抽出 filFile.Pattern = cboCombo.Text End Sub Private Sub filFile_Click() Dim wpath As String Dim filename As String '現在のパスを取得 wpath = dirDir.Path 'ルートディレクトリ以外は¥を付加する If Right$(wpath, 1) <> "\" Then wpath = wpath & "\" '選択されたファイル名をフルパスで取得 filename = wpath & filFile.filename 'テキストボックスに表示 txtFilePath.Text = filename End Sub Private Sub cboCombo_Change() 'コンボボックスに変更があったら dirDir_Change End Sub Private Sub cboCombo_Click() 'ディレクトリリストボックスのチェンジイベントを発生 dirDir_Change End Sub Private Sub txtFilePath_Change() '画像ファイルを選択した場合サムネイル画像を表示 '表示しないのであればこの部分は削除して下さい。 On Error Resume Next 'サポートしている画像ファイルかを調査 If InStr(1, "bmp dib gif jpg wmf emf ico cur", _ Right$(txtFilePath.Text, 3), 1) = 0 Then '画像ファイルでない場合表示しない Image1.Picture = LoadPicture() Exit Sub End If With Image1 'イメージのサイズにコントロールを変更 .Stretch = False .Visible = False 'イメージファイルの読込 .Picture = LoadPicture(txtFilePath.Text) '縦横比を変えずに縮小表示 If .Height >= .Width And .Height > 1210 Then .Width = .Width * 1210 \ .Height .Height = 1210 ElseIf .Width >= .Height And .Width > 1210 Then .Height = .Height * 1210 \ .Width .Width = 1210 End If .Stretch = True .Visible = True End With End Sub Private Sub mnuEnd_Click() Unload Me End Sub |
|
実行図 このようにフレーム上にパーツ化しておくと、必要な時に簡単に移植でき便利ですよ。 フォームに上記のように各コントロールを貼り付けて上記のコードをペーストして頂くと動作 します。 サポートされている画像ファイルを選択すると縮小表示します。不要な場合は削除して下さい |
2002/05/18