Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про Canvas.CopyRect и фактическую ширину формы. [D7, XP]


Страницы:   1 2

igorium ©   (2011-10-07 15:41:00) 

Всем привет.
Задача сохранить все, что видно на форме в графический файл.
Грубо говоря сделать принтскрин формы, но проблема усугубляется тем, что форма не помещается на экране, а для её просмотра нужно использовать скрулеры.

Я делаю так:


procedure TTreeForm.bbClick(Sender: TObject);
var Bit : TBitmap;
begin
Bit := TBitmap.Create;
Bit.Width := TreeForm.ClientWidth;
Bit.Height := TreeForm.ClientHeight;
Bit.Canvas.CopyRect(Rect(0, 0, TreeForm.ClientWidth, TreeForm.ClientHeight), TreeForm.Canvas, Rect(0, 0, TreeForm.ClientWidth, TreeForm.ClientHeight));
Bit.SaveToFile('d:\screen.bmp');
end;


Но сохраняется только видимая на экране часть формы.
А у меня форма занимает несколько экранов и нужно, чтобы ВСЯ форма сохранилась в файл.

Что интересно - у меня разрешение экрана 1024х768.
Я пробовал ручками увеличить ширину формы в инспекторе объектов - максимальная длина, которую он выдает - это 1036 пикселей.
Хотя реальная ширина формы у меня будет ~2400 (специально ставлю кнопку с left=400, width=2000)


Loginov Dmitry   (2011-10-08 22:41:00) [21]


> Делал по справке
> FormImage := GetFormImage;
> FormImage.SaveToFile(ExtractFilePath(ParamStr(0)) + 'screen.
> bmp');
>
> Но результат один к одному как у меня - сохраняет только
> видимую на момент сохранения часть формы.


Должно работать.
Может с файлами напутал?


igorium   (2011-10-08 16:15:00) [22]


> Cobalt ©   (07.10.11 18:06) [5]
> Welcome to
> function TCustomForm.GetFormImage: TBitmap;


Объясните дураку - почему у меня ничего не работает???


stas   (2011-10-07 21:54:00) [23]

Да скомпонуйте битмэп так как расположены image на форме да и все.


Cobalt   (2011-10-07 18:06:00) [24]

Welcome to
function TCustomForm.GetFormImage: TBitmap;


igorium   (2011-10-07 17:25:00) [25]


> Игорь Шевченко ©   (07.10.11 16:46) [3]
> GetFormImage


К сожалению не помогло :(

Делал по справке
FormImage := GetFormImage;
FormImage.SaveToFile(ExtractFilePath(ParamStr(0)) + 'screen.bmp');


Но результат один к одному как у меня - сохраняет только видимую на момент сохранения часть формы.


Игорь Шевченко   (2011-10-07 16:46:00) [26]

GetFormImage


igorium   (2011-10-07 16:20:00) [27]

Ну бывает.

Мне в одной и той же проге надо реализовать:
1) сохранение в файл, чтобы потом можно было обратно выдернуть и подредактировать
2) сохранение в ГРАФИЧЕСКИЙ файл - по сути печать результата.


stas   (2011-10-07 16:06:00) [28]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1317964121&n=18
то что-то длинное, то рубашка короткая )


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо