画像ファイル(jpgかbmpか不明)をD&Dして表示したいのですがどのように記述すれば良いのでしょうか?
また、今後、他の画像ファイルにも対応したいのですが、どのようにすれば・・・?
それと、Imageコンポーネントで合ってますか?^^;
宜しくお願いしますm(_ _)m
D&Dは http://www.delphianworld.com/ の Systemにある[OLE Drag&Drop サポートコンポーネント集]が高機能です
Imageコンポーネントなどに多種類のフォーマットをサポートさせるには
http://www.delphi-gems.com/GraphicEx.php
はどうでしょうか
先ほどのD&Dは高機能な分使い難いですが
そこまでの機能は必要ないのであれば
http://forum.nifty.com/fdelphi/faq/00144.htm
が簡単
kkk様
ありがとうございます〜
確かに便利です☆使い切れてませんが^^;
ちなみに、他の人のコンポーネントを使わない場合はどうなるのでしょうか・・・?
難しい・・・?^^;
とりあえず、jpgとbmpのD&Dを実現する方法を教えてもらえないでしょうか?
それなら、とりあえず
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のみです
また複数ファイルの対応はしてません
Delphiのバージョンにもよりますが
uses に Jpeg を追加するとJpegも対応できます。
kkk様
ありがとうございます〜
書いていただいたソースを見ながら書いたらできました〜〜
本当にありがとうございます
ツイート | ![]() |