![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Парни, функция пашет, но есть два но:
- заглавие окна не захватывает - сохраняет в указанное место, а не в каталог с программой как решить? спасибо Код:
function GetFormExImage(const AForm : TForm) : TBitmap; begin Result := nil; if AForm = nil then Exit; Result := TBitmap.Create; Result.Height := AForm.ClientHeight; Result.Width := AForm.ClientWidth; Result.Canvas.Brush := AForm.Brush; Result.Canvas.FillRect(AForm.ClientRect); Result.Canvas.Lock; try Result.Canvas.CopyRect(Rect(0,0,Result.Width,Result.Height), AForm.Canvas,AForm.ClientRect); finally Result.Canvas.UnLock; end; end; //------------------------- procedure TForm1.Button2Click(Sender: TObject); var ABitmap : TBitmap; begin ABitmap := GetFormExImage(Self); if ABitmap <> nil then begin ABitmap.SaveToFile("C:\Screen.bmp"); ABitmap.Free; end; end; Последний раз редактировалось Admin, 21.05.2012 в 13:24. |
#2
|
||||
|
||||
![]() потому что:
1. Result.Canvas.CopyRect(Rect(0,0,Result.Width,Resul t.Height), AForm.Canvas,AForm.ClientRect); 2. ABitmap.SaveToFile("C:\Screen.bmp"); Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() а по поводу первого можно чуть подробнее?)
|
#4
|
||||
|
||||
![]() у тебя копируется клиентская часть окна (ClientRect), естественно бордюры и заголовок в него не входят. решение: копировать весь прямоугольник. размер TBitmap тоже придется увеличить. причем копировать с рабочего стола.
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 21.05.2012 в 10:37. |
#5
|
|||
|
|||
![]() Все, разобрался, норм теперь
Спасибо всем! |
#6
|
||||
|
||||
![]() Цитата:
Google в помощь |