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

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

Сохранить форму как файл графики


Страницы:   1 2

Surprising ©   (2002-01-06 17:36:00) 

Мастера, имеется форма с несколькими графиками как мне её сохранить в графическом формате(jpg или bmp) для последующего редактирования изображения или печати.


Surprising   (2002-01-11 20:29:00) [1]

?


Surprising   (2002-01-11 20:23:00) [2]

2nikkie: у меня просто 16 графиков на одной форме и сохранить их нужно в один файл графики.
А что делает Form.Repaint.


nikkie   (2002-01-11 09:59:00) [3]

>Surprising
в принципе, тебе правильно говорят про то, что сохранять логичнее только график, а не всю форму. но чисто ради любопытства - что будет а если прямо перед методом Юрия Зотова вызвать Form.Repaint?


Bizon   (2002-01-11 09:42:00) [4]

Если рисуешь chart_ом то не важно, что куда выходит.
chart1.savetobitmapfile("name.bmp");
Все.


Mbo   (2002-01-11 07:43:00) [5]

>2Mbo: не работает или я что-то не так делаю.
у меня работает.
image1.Canvas.Ellipse(10,10,30,30);
image1.Picture.SaveToFile("e:\q.bmp");


но если уж Chart-ом рисуешь, то им и сохраняй, и неважно, выходит ли он за край формы. Кстати, не подойдет ли тебе pagecontrol для экономии места на экране?

chart1.saveto...
там несколько есть, в Bitmap,наверно, тебе надо


aus   (2002-01-10 19:54:00) [6]

Ты же рисуешь на TForm.canvas, и TBitmap имеет свой canvas. Создай TBitmap, задай ему Width и height и рисуй также.


Surprising   (2002-01-10 19:05:00) [7]

А как рисовать в битмапе?


aus   (2002-01-10 19:02:00) [8]

Если нужно сохранять графики, а не форму, то и рисовать их нужно в битмапе, этот же битмап сохранять в файл. А для вывода на экран этот же битмап выводить на форму.


Surprising   (2002-01-10 17:15:00) [9]

2Mbo: не работает или я что-то не так делаю.
2Bizon: я их рисую TChart_ом только их у меня несколько на форме и форма получается больше размера экрана.


Surprising   (2002-01-10 15:52:00) [10]

2Юрий Зотов: нет к сожалению не работает опять копирует только видимую область.


Bizon   (2002-01-10 15:12:00) [11]

Их можно нарисовать используя Chart и сохранить в bmp


Mbo   (2002-01-10 15:11:00) [12]

это намного проще
Image1.Picture.SaveToFile("c:\pic.bmp");


Юрий Зотов   (2002-01-10 15:11:00) [13]

Проверил - PaintTo работает, но копирует только клиентскую область и плохо копирует дочерние контролы. А вот этот код создает точную копию всей формы.

procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
begin
with TBitmap.Create do
try
Height := Self.Height;
Width := Self.Width;
DC := GetWindowDC(Self.Handle);
try
BitBlt(Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY)
finally
ReleaseDC(Self.Handle, DC)
end;
SaveToFile("C:\Form1.bmp")
finally
Free
end
end;


Surprising   (2002-01-10 15:08:00) [14]

2Bizon: графики нарисованы непосредственно на форме.
Я вот о чём подумал, а если их нарисовать на Image и сохранить только Image в графическом формате, а не всю форму.
Можно ли это как нибудь реализовать.


Bizon   (2002-01-10 14:45:00) [15]

А графики нарисованы непосредственно на форме, или компонент какой-нибудь используется?


Surprising   (2002-01-10 14:39:00) [16]

2Юрий Зотов: а в коде это как будет выглядеть, а то я только начинающий.


Юрий Зотов   (2002-01-10 14:19:00) [17]

Сам не пробовал, но есть шанс, что сработает PaintTo. То есть, создаем временный битмап, рисуем на нем форму (вызовом Form1.PainTo), а затем сохраняем битмап в файл.


Surprising   (2002-01-10 13:22:00) [18]

2aus: Нет эта функция тоже использует принт скрин, то есть сохраняет только то что видно на экране, а это где-то половина формы остальное исчезает.


aus   (2002-01-10 12:42:00) [19]

Form1.GetFormImage.SaveToFile(FileName) - это не то что нужно?


Surprising   (2002-01-10 08:58:00) [20]

А если форма больше чем размер экрана и функция принт скрин уже не помогает.


Страницы:   1 2

Наверх

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