Страница 2 из 2

Добавлено: 30 окт 2006, 13:23
Duncon
Нужно спрашивать как, а не спрашивать можно ли, из вопроса ответ...

Ну как как - сфоткал, загнал в буфер, открыл документ вставил.. все просто..(готового кода у меня нет, сделать времени нет)

Добавлено: 31 окт 2006, 17:33
sonechko
Алгоритм я понимаю.
Нехватает знаний.
я скопировала, загнала в буфер,открыла ворд, создала новый документ, а как втавить из буфера в ворд?

Добавлено: 31 окт 2006, 19:44
Duncon
wd1.Selection.InlineShapes.AddPicture('имя файла',EmptyParam,EmptyParam,EmptyParam);

Добавлено: 02 ноя 2006, 18:30
sonechko
Duncon,
Этот код не помогает!!
procedure TForm3.Button4Click(Sender: TObject);

var
ScreenDC:HDC;
DeskTopCanvas:TCanvas;
Bitmap: TBitmap;
Rect: TRect;
w,doc:variant;

begin
ScreenDC := GetDC(0);
DeskTopCanvas := TCanvas.Create;
Bitmap := TBitmap.Create;
try
DeskTopCanvas.Handle:=ScreenDC ;
Rect:=Bounds(Form3.Left,Form3.Top,Form3.Width,Form3.Height);
Bitmap.Width := Screen.Width;
Bitmap.Height := Screen.Height;
Bitmap.Canvas.CopyRect(Rect, DeskTopCanvas, Rect);
ReleaseDC(0,ScreenDC);
Bitmap.SaveToFile('c:/screen.bmp'); //Сохраняем экран в файл
Clipboard.Assign(Bitmap);//Сохраняем в буфер обмена
finally
w:=CreateOleObject('Word.Application');
w.Visible:=true;
w.Documents.Add;

КАК ЕГО ПРавильно теперь вызвать. Не обязательно из файла. Лучше из буффера!!!!!!!!!

Bitmap.Free;
DeskTopCanvas.Free;
end;

Добавлено: 02 ноя 2006, 23:26
Duncon

Код: Выделить всё

var 
  ScreenDC: HDC;
  DeskTopCanvas: TCanvas;
  Bitmap: TBitmap;
  Rect: TRect;
  w, doc: variant;
begin
  ScreenDC := GetDC(0);
  DeskTopCanvas := TCanvas.Create;
  Bitmap := TBitmap.Create;
  try
    DeskTopCanvas.Handle:=ScreenDC ;
    //   Rect:=Bounds(Form3.Left,Form3.Top,Form3.Width,Form3.Height);
    Rect:=Bounds(10,10,600,600);
    //
    Bitmap.Width := Screen.Width;
    Bitmap.Height := Screen.Height;
    Bitmap.Canvas.CopyRect(Rect, DeskTopCanvas, Rect);
    ReleaseDC(0,ScreenDC);
    Bitmap.SaveToFile('c:/screen.bmp'); //Сохраняем экран в файл
//    Clipboard.Assign(Bitmap);//Сохраняем в буфер обмена
  finally
    w:=CreateOleObject('Word.Application');
    w.Visible:=true;
    w.Documents.Add;
///////////////////////////////////////////////////////////////
w.Selection.InlineShapes.AddPicture('c:/screen.bmp',EmptyParam,EmptyParam,EmptyParam);
//КАК ЕГО ПРавильно теперь вызвать. Не обязательно из файла. Лучше из буффера!!!!!!!!!

    Bitmap.Free;
    DeskTopCanvas.Free;
   end;
end;

Добавлено: 03 ноя 2006, 14:12
Игорь Акопян
sonechko, если из буфера
w.selection.Paste не работает?

Добавлено: 03 ноя 2006, 16:06
sonechko
Всем спасибо! Все заработало