1998年の日記
こんにちは。 岩崎です。
昨日、今日にかけて、一生懸命?『ホリィちゃんの画像ビューアー』の
改造をしていたわけですが、カット&コピーの編集方法を一新させようと頑張った結果、見事に動かなくなりました。(^^;
しかも、パソコンをいちいち再起動しないと駄目というとんでもないバグ…。
おかげさまで3回も連続で再起動しましたが、結局修正できないままになっています…。
何がおかしいんでしょうかね?
VBでドラック&ドロップの処理をするさいには、『 OLEDropMode 』を1の手動にして、『 OLEDragDrop 』でイベントを開始させます。
…で、ドロップされたファイルパスは、『 Data 』のプロパティに、『 Data.Files(1) 』『 Data.Files(2) 』『 Data.Files(3) 』…と
入っていきます。
つまり、『 A:\WINDOWS\123.txt 』と、『 A:\WINDOWS\456.txt 』が、ドロップされた場合には、それぞれ『 Data.Files(1) 』には、『 A:\WINDOWS\123.txt 』、『 Data.Files(2) 』には、『 A:\WINDOWS\456.txt 』が入ります。
所が問題はその後なんですね。
ドロップされるファイルは一切数がわからないし、どこにドロップさせるかわかりません。
とりあえず、どこにドロップされるかは、全ての物に対してイベントを認識させるようにすればよいものの、いくつドロップさせるか?が問題です。
上の様に、ドロップされる数が2つとわかっている場合は、『 Data.Files(1) 』と『 Data.Files(2) 』を調べれば良いですが、この時に『 Data.Files(3) 』を調べるとバグになってしまいます。
そこで、バグになるまでループし、バグになったら終了というようにすれば良いはずです。
…って事で、
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim I
On Error GoTo Err: 'エラーになった場合、『 Err: 』にジャンプ。
For I = 1 To 1000 'Path$が1000までしかわけられていないので、 '1000回のみ繰り返す。
List1.AddItem Data.Files(I) 'パスの設定。
Next '繰り返し終了。
Go:
Exit Sub 'イベント終了。
Err:
Resume Go '『 Go: 』からプログラム実行を再開します。
End Sub
…って感じのプログラムを作ったんですね。( Form1にList1が必要 )
…ってなんか今度やったら上手くいきましたね…。(^^;
なんでだろ…。
それじゃあ今日はこの辺で…。 ←逃げんのか?!
《 フリーソフトウェアもよろしく! 》
==================================================
Nifty:FGALTLA/LIB/5/1408 : ホリィちゃんの画像ビューアー Version 1.00
Nifty:FGALTLA/LIB/9/1051 : フォント一覧印刷君 Version 1.7
==================================================
1998年 6月 15日 月曜日 岩崎 仁【ID:FZK11464】
※ 本ページは、テキスト形式で配信されていた時代の過去記事を一括で変換しています。一部、読みにくい部分があるかと思いますが、ご容赦ください。