画像のD&D

解決


bluf  2005-11-04 09:56:24  No: 18424

画像ファイル(jpgかbmpか不明)をD&Dして表示したいのですがどのように記述すれば良いのでしょうか?
また、今後、他の画像ファイルにも対応したいのですが、どのようにすれば・・・?
それと、Imageコンポーネントで合ってますか?^^;
宜しくお願いしますm(_  _)m


kkk  2005-11-04 11:57:32  No: 18425

D&Dは http://www.delphianworld.com/ の Systemにある[OLE Drag&Drop サポートコンポーネント集]が高機能です
Imageコンポーネントなどに多種類のフォーマットをサポートさせるには
http://www.delphi-gems.com/GraphicEx.php
はどうでしょうか


kkk  2005-11-04 12:19:45  No: 18426

先ほどのD&Dは高機能な分使い難いですが
そこまでの機能は必要ないのであれば
http://forum.nifty.com/fdelphi/faq/00144.htm
が簡単


bluf  2005-11-05 06:46:14  No: 18427

kkk様
ありがとうございます〜
確かに便利です☆使い切れてませんが^^;

ちなみに、他の人のコンポーネントを使わない場合はどうなるのでしょうか・・・?
難しい・・・?^^;


bluf  2005-11-07 10:04:07  No: 18428

とりあえず、jpgとbmpのD&Dを実現する方法を教えてもらえないでしょうか?


kkk  2005-11-07 10:25:02  No: 18429

それなら、とりあえず 
http://forum.nifty.com/fdelphi/faq/00144.htm
を元に・・・
------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    procedure DropFiles(var Msg:TWMDROPFILES); message WM_DROPFILES;
  protected
  public
    procedure SetPicture(AFileName: string);
  end;

var
  Form1: TForm1;

implementation

uses ShellAPI;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Form1.Handle, True);
end;

procedure TForm1.DropFiles(var Msg: TWMDROPFILES);
var
  I, DropFileCount: Integer;
  FileName: array [0..255] of Char;
begin
  DropFileCount := DragQueryFile(Msg.Drop, Cardinal(-1), nil, 0);
  for I:=0 to DropFileCount-1 do
  begin
    DragQueryFile(Msg.Drop, I, FileName, SizeOf(FileName)-1);
    SetPicture(FileName);
  end;
  DragFinish(Msg.Drop);
end;

procedure TForm1.SetPicture(AFileName: string);
begin
  Image1.Picture.LoadFromFile(AFileName);
end;

end.
---------------------------------------------------------------
標準だとbmpのみです
また複数ファイルの対応はしてません


kkk  2005-11-07 10:29:56  No: 18430

Delphiのバージョンにもよりますが
uses に Jpeg を追加するとJpegも対応できます。


bluf  2005-11-10 09:20:09  No: 18431

kkk様
ありがとうございます〜
書いていただいたソースを見ながら書いたらできました〜〜
本当にありがとうございます


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

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






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