[VB6] コモンダイアログに関する考察
公開日:
:
未分類
VBのコモンダイアログにはバグある。
ShowOpen とShowSaveのメソッドを呼び出した際に現在閲覧中のディレクトリが
アプリケーションの動いているディレクトリとしてみなされてしまうバグだ。
どうなるかというとコモンダイアログを使用したあとに App.Path や Curdir() を実行した場合のディレクトリが
プログラマの予期せぬディレクトリになっているということだ。
この為、VB6でコモンダイアログを使用した場合には必ず
・ChDrive 関数
・ChDir 関数
を実行する必要がある。
安易に
Chdir(Left(App.Path,1))
Chdir(App.Path)
なんてやっても駄目だ。これではネットワーク越しに実行した際に
Chdirの方が実行に失敗する。
それともう1点。コモンダイアログとタイマーコントロールは非常に相性が悪い。
具体的に言うとコモンダイアログでShowOpen、ShowSaveでファイル選択のダイアログを開いている時でも
タイマーコントロールは動いているということだ。
タイマーコントロールでファイルを操作、ディレクトリを操作しているともうどうしようも無いくらいにプログラムが変に動く。
なのでコモンダイアログで所定の関数を呼び出す際には必ずタイマーを止めておくことを強くお勧めしたい。
2日間悩んだ亡者より
関連記事
-
-
ブログをとんと書かないようになった。。。
ツイッターでひそひそする頻度が増えたせいで、blogを書く機会が減りました。 blogで無けれ
-
-
あっという間に月25万PVをかせぐ人気ブログのつくり方を読んでいます。
まだ30ページくらいしか読んでいませんけどね。 ブログでいっぱい書評があって、面白そう
- PREV
- マビノギとか。
- NEXT
- [VB6] OnShowイベントの作成