16,748
社区成员
发帖
与我相关
我的任务
分享
library PrnWord;
uses Clipbrd;
...
function PrnWordInsertImg(var img: TImage; sBookMark: String=''):boolean;stdcall;
var
wRange: Variant;
begin
...
if img.Picture.Graphic<>nil then
begin
Clipboard.Assign(img.Picture); //执行到这段代码出错提示:cannot assign a Tpicture to a TClipboard
wRange.Paste;
end;
...
end;
exports
PrnWordInsertImg;
...
function PrnWordInsertImg(var img: TImage; sBookMark: String=''):boolean;stdcall;
var
wRange: Variant;
MyFormat : Word;
Bitmap : TBitMap;
AData: THandle;
APalette:HPalette;
begin
CoInitialize (nil);
wRange:= CreateOleObject('Word.Application');
wRange.Visible := True;
wRange.Activate;
wRange.documents.Add;
if img.Picture.Graphic<>nil then
begin
img.Picture.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
wRange.Selection.Paste;
end;
// CoUninitialize;
end;
function PrnWordInsertImg(var img: TImage; sBookMark: String=''):boolean;stdcall;
var
MyFormat : Word;
Bitmap : TBitMap;
AData: THandle;
APalette:HPalette;
begin
if img.Picture.Graphic<>nil then
begin
img.Picture.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
map : TBitmap;
begin
if ClipBoard.HasFormat(CF_BITMAP) then
begin
map := TBitMap.create;
try
map.Assign(ClipBoard);
except
map.Free;
end;
Image1.Picture.Assign(map);
map.SaveToFile('c:\1111.jpg');
map.Free;
clipboard.Clear;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
image2.Picture.LoadFromFile(opendialog1.FileName);
ClipBoard.Open;
ClipBoard.Assign(image2.Picture);
ClipBoard.Close;
end;
end;
function PrnWordInsertCht(var chart1: TChart; sBookMark: String=''): boolean;stdcall;
var
wRange: Variant;
iRangeEnd: Integer;
begin
...
chart1.CopyToClipboardBitmap;
wRange.Paste;
...
function PrnWordInsertCht(var chart1: TChart; sBookMark: String=''): boolean;stdcall;
var
wRange: Variant;
iRangeEnd: Integer;
begin
...
chart1.CopyToClipboardBitmap;
wRange.Paste;
...
function PrnWordInsertCht(var chart1: TChart; sBookMark: String=''): boolean;stdcall;
var
wRange: Variant;
iRangeEnd: Integer;
begin
...
chart1.CopyToClipboardBitmap;
wRange.Paste;
...