ドラッグ&ドロップの記述方法について

解決


桜坂  2009-04-26 00:25:50  No: 34193

いつもご指導頂いております。
環境はWin2kでDelphi7エンタープライズです。

画像ファイルなどを移動する場合、ドラッグ&ドロップにより移動したいと考えました。
そこで皆様のサイトなどで勉強しております。
ここで突き当たった問題がWMDropFilesです。
例として
procedure TForm1.WMDropFiles(var xxx: TWMDropFiles);
というような記述があります。
そこで  WMDropFiles  は、ドラッグ&ドロップに関することなのかな?と考えヘルプを見てみました。
しかし、私の使っているDelphi7にはWMDropFilesに関することが見つかりませんでした。
似たような言葉を探したところ
「DragDrop メソッドは,OnDragDrop イベントのディスパッチャです。」

「OnDragOver イベントは,ユーザーがコントロール上でオブジェクトをドラッグしたときに発生します。」
が見つかったくらいです。
WMDropFilesというのは、Delphi7では「OnDragDrop」か「OnDragOver」のことを言うのでしょうか。
教えてください。


それはね  2009-04-26 00:45:10  No: 34194

>procedure TForm1.WMDropFiles(var xxx: TWMDropFiles);
このWMDropFilesという名前は、
WM_DROPFILESメッセージを処理する手続きにつけた名前で
通常、メッセージから'_'を取ったものを名前とするのが分かりやすいので
そうしてるだけ。名前は何でもあっても構わない。


桜坂  2009-04-26 04:42:53  No: 34195

ご指導、ありがとうございます。

私は、どうもドラッグ&ドロップを勘違いしているようです。
もう少し考えを整理して勉強し直します。

今後ともよろしくお願いします。


Mr.XRAY  2009-04-26 14:46:45  No: 34196

Mr.XRAYです.

>私は、どうもドラッグ&ドロップを勘違いしているようです。

えっーとですね.そういう問題ではないと思いますよ.
今回のような場合,ネット上や参考書で調べる時は,interface(宣言部)に注目します.
例えば,以下の図9の場合,最後の方に
                                                       
message WM_COPYDATA 

http://mrxray.on.coocan.jp/Others/A_IDETechnique.htm#07

とあります.この最後のWM_XXXXXを検索したりするといいです.
既にレスがあるように,関数やイベント等の名前は任意です.
Delphi2009であればこんな名前も付けられます.

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure ボタンクリック(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.ボタンクリック(Sender: TObject);
var
    表示文字列 : String;
begin
    表示文字列 := 'こんにちは';
    ShowMessage(表示文字列);
end;

>WMDropFilesというのは、Delphi7では「OnDragDrop」か「OnDragOver」のことを言うのでしょうか。

どちらもメッセージの処理ですが,OnDragDrop等は,Delphiが実装しているイベントというメッセージ処理です.
http://mrxray.on.coocan.jp/Others/A_UltraIntro01.htm#05

今回の場合は,WM_DROPFILESをネットで調べてみてください.
以下のページに,使えそうなサイトへのリンクがあります.

http://mrxray.on.coocan.jp/Others/A_Win32APIHelp02.htm

Delphi7でしたら,Win32 APIの,古いですが,ヘルプもあります.
http://mrxray.on.coocan.jp/Others/A_Win32APIHelp.htm


桜坂  2009-04-26 15:48:29  No: 34197

Mr.XRAYさん、朝早くからご指導頂き感謝しております。ありがとうございます。
また、Mr.XRAY さんのHPは勉強でも参考にさせてもらっています。
しかし、ご指定のサイトは見ていませんでした。
(膨大な量に)正直、見ましたら「ブルッ」と身震いしました。
改めて、深い青い海を見たような奥の深さを感じております。
少しずつですが勉強させて頂きます。
ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加