名前 題名 ▼ 宮さん > よろしくお願いします。winXP Delphi 6 Personalです。 > MrXRAYさんのサンプルプログラム800-01のFolderTree1をモデルに > エクスプローラなどからドロップしてコピー、移動が出来るように > 挑戦していますが、TreeViewのフォルダを反転表示して指定できません。 > > MrXRAYさんのサンプルでそういうのがないか探したのですが > 残念ながら簡易エクスプローラもやっておられないので > 質問させていただきました。 > > TreeView内のノードのドラッグドロップは自分もやっているのですが > 他のコンポからのドラッグのサンプルを見かけません。 > もしかして非常に難しいのでしょうか? > > サンプル800-01に下記のようなコードを追加してみました。 > (自分の能力で書いたのではなく拾い集めたものです) > しかし、Listboxには確かにドロップしているのですが > フォルダを指定(反転表示できない) > が出来ないのでコピーコードなど書けません。 > > private > //------ドラッグドロップ関係追加 > TreeView1OldProc: TWndMethod; > procedure TreeView1NewProc(var message: TMessage); > > procedure TForm1.FormCreate(Sender: TObject); > // 以前のプロシージャを保存 > TreeView1OldProc := TreeView1.WindowProc; > // 新しいプロシーシャをセット > TreeView1.WindowProc := TreeView1NewProc; > // ファイル受け取りの登録 > DragAcceptFiles(TreeView1.Handle, True); > > procedure TForm1.TreeView1NewProc(var message: TMessage); > var > FileName: array[0..MAX_PATH] of Char; > i, Count: Integer; > begin > if (message.Msg = WM_DROPFILES) and (TreeView1.Visible=true) then > begin // WM_DROPFILES の処理を横取りする > Count := DragQueryFile(message.wParam, $FFFFFFFF, nil, 0); > for i := 0 to Count - 1 do > begin > DragQueryFile( message.wParam, i, FileName, SizeOf(FileName)); > ListBox1.Items.Add(FileName); > end; > DragFinish(message.wParam); // 忘れないように > end > else > TreeView1OldProc(message); > // それ以外のメッセージは元のプロシージャを実行する > end; > > なお、画面右半分にTWebBrowser貼り付けて、 > テストが簡単になるように下記のコードを追加しています。 > procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); > WebBrowser1.Navigate(FullPath); //--------追加 > end; > > よろしくお願いします。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link