いや〜、まいりました。
職場で、画像一覧というアプリ(よく見る画像のサムネイル表示)を作って利用
してもらっているのですが、そのサムネイルを選択して、該当画像を他のアプ
リで利用するというものです。
最近導入した、たれ幕作成アプリに貼り付かないんです。
それと、エクセルに貼付けた時にすごくでかくなってしまっていたのを修正
しました。原因はネットから獲ってきた画像がWMFで、EMFにうまく変換され
ていなかった、というものです。
何か初心者レベルですが (^_^;)
恥をしのんで公開します。
//====================================================================
// AFile(フルパス)の画像ファイルをクリップボードにコピーするコード
// wmfはemfに変換、その他はそのまま
//====================================================================
procedure TplImageForm.CopyImageClick(Sender: TObject);
var
AFile : String;
APict : TPicture;
MF : TMetafile;
MFCanvas : TMetafileCanvas;
Ext : String;
begin
AFile:='Test.wmf';
Ext:=UpperCase(ExtractFileExt(AFile));
if (Ext='.WMF') then begin
MF:=TMetafile.Create;
MF.Enhanced:=True;
try
MF.LoadFromFile(AFile);
//EMFでは必ず0にする必要がある。
MF.Inch:=0;
MFCanvas:=TMetafileCanvas.Create(MF,0);
try
//Draw,StretchDrawでも同じ(範囲指定の場合はStretchを用いる)
MFCanvas.Draw(0,0,MF);
//MFCanvas.StretchDraw(Rect(0,0,MF.Width,MF.Height),MF);
finally
MFCanvas.Free;
end;
Clipboard.Assign(MF);
Application.ProcessMessages;
finally
FreeAndNil(MF);
end;
end else begin
APict:=TPicture.Create;
try
APict.LoadFromFile(AFile);
Clipboard.Assign(APict);
Application.ProcessMessages
finally
FreeAndNil(APict);
end;
end;
end;
Enhanced:=True;にすればOKかと思っていたんですが、Inchプロパティも0
にする必要があるんですね。
丸一日かかってしまいました。細かいところを修正してPM 11時20分終了。
さあ〜て、広末涼子ちゃんの写真でもみるか(オイオイ)。
|