Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Как сохранить в файл канву?   Найти похожие ветки 

 
ezorcist   (2005-12-29 15:31) [0]

Можно пример, подалуйста,
чего-то не догадаюсь((  в filestream как-то запихнуть...


 
з. танька   (2005-12-29 15:45) [1]

canvas.bitmap.savetofile()


 
ezorcist   (2005-12-29 17:03) [2]

С: TCanvas;
begin
C.bitmap
Тут он пишет, что нет bitmap"a (


 
MBo ©   (2005-12-29 17:48) [3]

Скопировать в битмап, а битмап сохранить


 
Джо ©   (2005-12-29 17:49) [4]

Или в метафайл.


 
ezorcist   (2005-12-29 19:05) [5]

Эм.... Спрошу попроще: как сохранить в файл скрин?


 
Leonid Troyanovsky ©   (2005-12-29 19:09) [6]


> ezorcist   (29.12.05 19:05) [5]
> Эм.... Спрошу попроще: как сохранить в файл скрин?


Все просто: Paint.exe, вставить, сохранить.

--
Regards, LVT.


 
Джо ©   (2005-12-29 19:16) [7]


>  [5] ezorcist   (29.12.05 19:05)

Скажу проще: как именно ты делаешь этот screenshot?


 
ezorcist   (2005-12-29 19:31) [8]

2 Leonid Troyanovsky
Невероятно остроумно)) Если не знаешь чего лезешь??

2 Джо
GetWindowDC(GetDeskTopWindow);
возвращает hdc


 
Leonid Troyanovsky ©   (2005-12-29 19:40) [9]


> ezorcist   (29.12.05 19:31) [8]
> Невероятно остроумно)) Если не знаешь чего лезешь??


И откуда ж ты знаешь, что я не знаю?
Хотя, конечно, человеку неведомо то, чего он не знает.

А.. это в смысле, чего не помочь материально..
Ну, это - google подаст.
Лень в сочетании с агресивностью не переношу ;)

--
Regards, LVT.


 
Джо ©   (2005-12-29 19:50) [10]


>  [8] ezorcist   (29.12.05 19:31)
> GetWindowDC(GetDeskTopWindow);
> возвращает hdc

В вопросе написано "Канва". Где в вышеприведенном хоть какая-то канва?

А впрочем, судя по реакции на ответ Leonid Troyanovsky — разбирайся-ка ты сам дружище.


 
ezorcist   (2005-12-29 20:16) [11]

H:=GetWindowDC(GetDeskTopWindow);
Canvas.Handle:=H


 
Джо ©   (2005-12-29 20:29) [12]


> [11] ezorcist   (29.12.05 20:16)

Я сегодня добрый и беспринципный.


procedure MakeScreenshot (Bmp: TBitmap; CaptureCursor: Boolean = True);
var
 DC: HDC;
 ACursor: HICON;
 Pt: TPoint;
 CurInfo: tagCURSORINFO;
 IcoInfo: _ICONINFO;
begin
 Bmp.Width := Screen.Width;
 Bmp.Height := Screen.Height;

 DC := GetDC (GetDesktopWindow);
 try
   BitBlt (
     Bmp.Canvas.Handle,
     0,0,Bmp.Width,Bmp.Height,
     DC,
     0,0,
     SRCCOPY);

   if CaptureCursor then
   begin

     CurInfo.cbSize := SizeOf(CurInfo);
     GetCursorInfo(CurInfo);

     ACursor := CurInfo.hCursor;
     Pt := CurInfo.ptScreenPos;

     GetIconInfo (ACursor,IcoInfo);

     DrawIcon(
       Bmp.Canvas.Handle,
       Pt.X-IcoInfo.xHotspot,
       Pt.Y-IcoInfo.yHotspot,
       ACursor
     )
   end;

 finally
   ReleaseDC (GetDesktopWindow,DC);
 end;
end;

....

procedure TForm1.Button1Click(Sender: TObject);
var
 Bmp: TBitmap;
begin
 Bmp := TBitmap.Create;
 try
   // делаем скриншот вместе с изображением курсора
   MakeScreenshot(Bmp,True);
   Bmp.SaveToFile ("d:\screenshot.bmp");
 finally
   Bmp.Free;
 end;
end;



 
ezorcist   (2005-12-29 21:18) [13]

Спасибо)

Я вот другой достал:

 DeskTopDC := GetWindowDC(GetDeskTopWindow);
 DeskTopCanvas := TCanvas.Create;
 DeskTopCanvas.Handle := DeskTopDC;
 DeskTopRect := Rect(0, 0, Screen.Width, Screen.Height);
 Im:=TImage.Create(sock);
 With Im Do Begin
   Width:=Screen.Width;
   Height:=Screen.Height;
   Canvas.CopyRect(DeskTopRect, DeskTopCanvas, DeskTopRect);
   Picture.SaveToFile("screen.bmp");
   Free;
 End;
 ReleaseDC(GetDeskTopWindow, DeskTopDC);


 
Джо ©   (2005-12-29 21:32) [14]


>  [13] ezorcist   (29.12.05 21:18)
> Я вот другой достал:

Выбрось его в корзину. С шифтом.


 
Германн ©   (2005-12-30 01:52) [15]


> Джо ©   (29.12.05 20:29) [12]
>
>
> > [11] ezorcist   (29.12.05 20:16)
>
> Я сегодня добрый и беспринципный.


Не-а. Ты сегодня, то бишь вчера:
1. сначала ни злой, ни добрый, но "принципный" : >А впрочем, судя по реакции на ответ Leonid Troyanovsky — разбирайся-ка ты сам дружище.
2. затем - добрый и беспринципный. См. выше.
3. а потом просто злой:  >Выбрось его в корзину. С шифтом.

:-)


 
Джо ©   (2005-12-30 02:05) [16]


>  [15] Германн ©   (30.12.05 01:52)

На все это, разумеется, есть свои причины. Но они бытовые и оффтопные. Но замечено очень метко :0)



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.061 c
1-1134640866
Игорь Шевченко
2005-12-15 13:01
2006.01.22
Как правильно назвать методы ?


2-1136301078
frEE)styler
2006-01-03 18:11
2006.01.22
Не получается вызвать процедуру!


2-1134987889
Дева
2005-12-19 13:24
2006.01.22
счетчик в запросе


14-1135694392
Digitman
2005-12-27 17:39
2006.01.22
Rayzoon Jamstix VSTi v1.01c


14-1135663849
race1
2005-12-27 09:10
2006.01.22
Word, полоса прокрутки