題記の件につきまして,ご存じの方ご教授願えれば幸いです.
ListViewを使用してフォルダの
ファイル名,ファイルサイズ,更新日時を表示したいと考えています.
下記のように作成したのですが、エラー(プロパティ値が不正です.実行時エラ380)が出てしまい,対処ができません。
ご存じの方,お教え願えればうれしいです.よろしくお願いします.
【環境】
VB6.0(SP5)
【ソース】
'--------------------------------------------------------------------
' 機 能:ディレクトリーリスト
'--------------------------------------------------------------------
Private Sub Dir1_Change()
Dim p As Variant
Dim Lv As ListItem
Dim buf As String
ChDir Dir1.Path
ListView1.ListItems.Clear
p = Dir("*.*", 2 + 4 + 16)
Do While p <> ""
If Not (p = "." Or p = "..") Then
If (GetAttr(p) And vbDirectory) = vbDirectory Then
Set Lv = ListView1.ListItems.Add(, , p)
Lv.SubItems(1) = "フォルダ"
Else
Set Lv = ListView1.ListItems.Add(, , p)
'1023 で切り上げ
buf = (FileLen(p) + 1023) \ 1024 & "KB"
↓↓↓↓↓ここでエラーが出てしまいます
Lv.SubItems(1) = CStr(buf)
↑↑↑↑↑ここでエラーが出てしまいます
' Lv.SubItems(1) = (FileLen(p) + 1023) \ 1024 & "KB"
End If
Lv.SubItems(2) = FileDateTime(p)
End If
p = Dir
Loop
End Sub
サブアイテムが定義されてないからだと思います。
次の3行を付け加えてみて下さい。
Dim clmX As ColumnHeader
Set clmX = ListView1.ColumnHeaders.Add(, , "名前", 100 * 15)
Set clmX = ListView1.ColumnHeaders.Add(, , "サイズ", 100 * 15)
Set clmX = ListView1.ColumnHeaders.Add(, , "更新日時", 100 * 15)
これも忘れずに。
ListView1.View = lvwReport ' View プロパティをレポートに設定します。
FRWさん ありがとうございます。
ご指摘があり,Form_Loadを見直し所,ミスがあり修正したところ
エラーも出ずに動作いたしました.
本当に恥ずかしいミスです・・・
ミス内容は下記ソースを見て頂くとすぐわかると思いますが,私のForm_Load内処理は,Dir1.Path = App.Pathした後にサブクラスの定義をしてました.
Dir1.Path = App.Pathを実行すると,Dir1_Changeが走ってしまうので,サブクラスの定義前に実行するためエラーが出ていたようです.
ご指摘本当にありがとうございました.
'---------------------------------------------------------------------
' 機 能:画面ロード(イニシャル)
'---------------------------------------------------------------------
Private Sub Form_Load()
Dim DriVeName As Variant
Dim x As ColumnHeader
'---------------------------------------------
' 二重起動を防ぐ
'---------------------------------------------
If App.PrevInstance Then
MsgBox "すでに「" & App.Title & "」は起動されています。", vbExclamation
End
End If
'---------------------------------------------
'初期画面のイニシャル
'---------------------------------------------
↓↓↓↓↓コメント解除すると,Dir1_Changeイベントが走ってしまう
' Dir1.Path = App.Path
↑↑↑↑↑コメント解除すると,Dir1_Changeイベントが走ってしまう
Label1.Caption = App.Path
ListView1.ListItems.Clear
Set x = ListView1.ColumnHeaders.Add(, , "ファイル名", ListView1.Width / 3)
Set x = ListView1.ColumnHeaders.Add(, , "サイズ", ListView1.Width / 5, 1)
Set x = ListView1.ColumnHeaders.Add(, , "更新日時", ListView1.Width / 4, 1)
ListView1.View = lvwReport
Dir1_Change
End Sub