Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 14:25   #1
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию Делфи: сохранить график из TChart в BMP

Необходимо сохранить график, который получен в TChart в BMP (или другой графический формат)

как можно добиться этого ?

(ну или подскажите хотя бы )
Krendel' вне форума Ответить с цитированием
Старый 19.01.2011, 14:28   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
Chart1.SaveToBitmapFile(FileName);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 19.01.2011, 14:30   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
Chart1.SaveToBitmapFile();
?
vovk вне форума Ответить с цитированием
Старый 19.01.2011, 14:44   #4
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

Mad_Cat, vovk, огромное Вам спасибо не думал что будет так просто
Krendel' вне форума Ответить с цитированием
Старый 20.01.2011, 08:29   #5
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

еще появился вопрос - можно ли задать сохранение графика в более большом разрешении чем он оригинально в Chart'е ?
Krendel' вне форума Ответить с цитированием
Старый 20.01.2011, 12:54   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

можно увеличить chart потом сохранить а потом опять вернуть размер, но чтото мне так не очень нравится.
Можно дополнительно создать chart скопировать в него все диаграммы, увеличить, сохранить в файл, а потом уничтожить.
Код:
var
tmp_chrt: TChart;
tmp_ClassType:TChartSeriesClass;
tmp_series:TChartSeries;
i:integer;
begin
tmp_chrt := TChart.Create(nil);
try
for I := 0 to Chart1.SeriesCount - 1 do
 begin
 tmp_ClassType:=TChartSeriesClass(Chart1.Series[i].ClassType);
 tmp_series:=tmp_ClassType.Create(tmp_chrt);
 tmp_series.Assign(Chart1.Series[i]);
 tmp_chrt.AddSeries(tmp_series);
 end;
tmp_chrt.Width:=Chart1.Width*3;
tmp_chrt.Height:=Chart1.Height*3;
tmp_chrt.SaveToBitmapFile(filename_);
finally
  tmp_chrt.Free;
end;
end;
мне это тоже не очень нравится, скорее всего можно и проще, но я с TChart практически не рабатал.

Последний раз редактировалось vovk; 21.01.2011 в 09:52.
vovk вне форума Ответить с цитированием
Старый 21.01.2011, 09:02   #7
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

vovk, спасибо за код, попробую

и у меня возникает очередной вопрос)

как задать сохранение файла под определенным названием, допустим чтобы при нажатии кнопки сохранения

Код:
procedure TFormMain.ButtonClick(Sender: TObject);
begin
ChartSpec.SaveToBitmapFile('spectr.bmp');
end;
картинка сохранялась под названием текущей даты и времени, допустим 21.01.2011_1102.bmp
Krendel' вне форума Ответить с цитированием
Старый 21.01.2011, 09:20   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от Krendel' Посмотреть сообщение
vovk, спасибо за код, попробую

и у меня возникает очередной вопрос)

как задать сохранение файла под определенным названием, допустим чтобы при нажатии кнопки сохранения

Код:
procedure TFormMain.ButtonClick(Sender: TObject);
begin
ChartSpec.SaveToBitmapFile('spectr.bmp');
end;
картинка сохранялась под названием текущей даты и времени, допустим 21.01.2011_1102.bmp
а тут вообще просто))

Код:
ChartSpec.SaveToBitmapFile(FormatDateTime('dd.mm.yyyy_hh.mm', now)+'.bmp');
vovk вне форума Ответить с цитированием
Старый 21.01.2011, 16:02   #9
Krendel'
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 36
По умолчанию

vovk! вот не ожидал)) думал как нибудь через DateToStr надо, но не получалось

к сожалению не могу добавить еще один плюсик Вам, выходит сообщение что прежде я должен поставить его еще какому нибудь пользователю)
Krendel' вне форума Ответить с цитированием
Старый 21.01.2011, 16:16   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Можно и DateToStr, а потом Timetostr, только FormatDateTime проще)
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить график функции, используя компонент TChart. vitalik007 Компоненты Delphi 3 09.06.2014 11:20
Как нарисовать на Tchart график функции, заданной таблично(используя метод наименьших квадратов) Legion2008 Мультимедиа в Delphi 0 11.05.2009 16:00
график TChart в MS Word natasha Компоненты Delphi 7 25.06.2007 14:25
сохранить в BMP из Image Toxa Компоненты Delphi 4 20.04.2007 12:32