喫茶XRAYトップページ

[スレッド全体
]

[3294] くだらないことですみません。返信 削除
2010/4/25 (日) 00:56:32 たたみや
マスター、こんばんは。

昨日今日とDelphiで簡単なコードを書いていて躓いてしまい、
お知恵を借りたいのですが。。。

環境はWin7アルティメット(32bit)+Delphi2010(Update5)です。


コード
Usesには、shellapiを入れています。
-----------------------------------------------------------

  private
    { Private 宣言 }
  procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure tform1.WMDropFiles(var Msg:TWMDropFiles);
var
  FileName: array[0..255] of Char;
begin
   DragQueryFile(Msg.Drop,0,Filename,255);
   ListBox1.Items.Add(Filename);
   DragFinish(Msg.Drop);
end;

----------------------------------------------------------------

>> DragQueryFile(Msg.Drop,0,Filename,255);
の行をブレークポイントにしても、ファイルのD&D時に止まってくれません。

Win7かDelphi2010では、何か仕様の変更でもあったのかな・・・
とか考えてしまいました。

WinXPPro+Delphi5で試すと、当然ですが期待の動作をします。
よろしくお願いします。

話変わって、明日(今日?)は地元商工会のお手伝いで桜祭りに行ってきます。
しかし未だ桜は咲く気配すらありません(^^;;)
どんなイベントになるのやら。。。

[3296] Re:くだらないことですみません。返信 削除
2010/4/25 (日) 11:58:00 Mr.XRAY
▼ たたみやさん

今頃は気づいているかも知れませんが,(^^;
これは,アプリ開始後に,ドロップを受入れる宣言が必要なんですよね.
例えば,FormのOnShowで

procedure TForm1.FormShow(Sender: TObject);
begin
  //Handleは,ドロップ受入れコントロールのハンドル
  DragAcceptFiles(Handle, True);
end;

ところで,私もうっかり.よく間違えるんですが,
と,とあるサンプルプログラム集のコードみたら,ヤバッ,また間違えている!!!
今日中に直そう.
何にも考えないで書いていると...

> procedure tform1.WMDropFiles(var Msg:TWMDropFiles);
> var
>   FileName: array[0..255] of Char; // 0-255だと要素数は256なんですよね.
> begin
>    DragQueryFile(Msg.Drop,0,Filename,255); //だから,ここ256


これ,大抵は問題が発生しないのですが,650_他アプリ(Delphi)へ文字列送信1
で間違えたら,文字化けしたことがあります.
使用する関数にもよるようです.
MAX_PATH定数を使用した方が無難も知れません.


[3300] Re2:くだらないことですみません。返信 削除
2010/4/25 (日) 23:14:08 たたみや
▼ Mr.XRAYさん

こんばんは

> procedure TForm1.FormShow(Sender: TObject);
> begin
>   //Handleは,ドロップ受入れコントロールのハンドル
>   DragAcceptFiles(Handle, True);
> end;


すみません。
私も書き漏れで、上記のコードはすでに入っています。
一応、D5で動作したものを、コピペしてましたので。
試しにFormCreateに書き換えてもみましたがだめでした。
なもので、どうしたものかと。。。

>    DragQueryFile(Msg.Drop,0,Filename,255); //だから,ここ256

ですよね。
ものぐさで、書きやすい方でやってしまう悪い癖で。


本日の桜祭り、お天気はバッチリでしたが、
やはり桜は全く咲いておらず、花より団子状態で、
音響のオペやりながら、出店の食べ物を食いまくりでした(^^;;)

[3302] Re3:くだらないことですみません。返信 削除
2010/4/26 (月) 00:06:12 Mr.XRAY
▼ たたみやさん

> 音響のオペやりながら、出店の食べ物を食いまくりでした(^^;;)

あれっ? アルコールは?
またまたメタボへの道をまっしぐら...!
東京というか,小生の住まい周辺の桜はだいぶ散ってしまいました.
写真のコブシの花が,しつこくまだ少し咲いています.

> 私も書き漏れで、上記のコードはすでに入っています。

ありゃ,う〜ん.すると何だろう.お手上げです.

> 試しにFormCreateに書き換えてもみましたがだめでした。

OnShowでも同じなんですよね.
でも,もしかしたらと,どうしてもやってしまうんですよね.(^^;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82