Форум программистов Контакты:
О проблемах с регистрацией, почтой и по другим вопросам пишите сюда - post@programmersforum.ru
По необходимости будем регистрировать вручную. И проверяйте папку спам!
Главная  |  Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Повторная активизация e-mail  | 

Вернуться   Форум программистов > Новички в программировании > Помощь студентам

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

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

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

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

icq: 723-321
skype: mad_cat1982
По умолчанию

Код:

Chart1.SaveToBitmapFile(FileName);

Mad_Cat вне форума   Ответить с цитированием
Старый 19.01.2011, 14:30   #3
vovk
!=
Профессионал
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
Репутация: 424
По умолчанию

Код:

Chart1.SaveToBitmapFile();

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

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

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

можно увеличить 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
Репутация: 10
По умолчанию

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,762
Репутация: 424
По умолчанию

Цитата:
Сообщение от 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
Репутация: 10
По умолчанию

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

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

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


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




11:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

магазин горящих туров


более 1000 горящих предложений ежедневно
Бэбиблог - соц сеть для будущих мам


RusProfile.ru


Справочник российских юридических лиц и организаций.