![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранить форму как файл графики
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]А если форма больше чем размер экрана и функция принт скрин уже не помогает.