Delphi и PrintScreen

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Нужно спрашивать как, а не спрашивать можно ли, из вопроса ответ...

Ну как как - сфоткал, загнал в буфер, открыл документ вставил.. все просто..(готового кода у меня нет, сделать времени нет)
sonechko
Сообщения: 8
Зарегистрирован: 24 окт 2006, 11:06

Алгоритм я понимаю.
Нехватает знаний.
я скопировала, загнала в буфер,открыла ворд, создала новый документ, а как втавить из буфера в ворд?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

wd1.Selection.InlineShapes.AddPicture('имя файла',EmptyParam,EmptyParam,EmptyParam);
sonechko
Сообщения: 8
Зарегистрирован: 24 окт 2006, 11:06

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;
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

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

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;
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

sonechko, если из буфера
w.selection.Paste не работает?
Изображение
sonechko
Сообщения: 8
Зарегистрирован: 24 окт 2006, 11:06

Всем спасибо! Все заработало
Ответить