Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Delphi & Exel  (Прочитано 6981 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
ddg72
Гость
« : 05-10-2006 04:42 » 

Проблема следующая:
Создается
GetActiveOleObject('Excel.Application') as _Application и т.д.
загружается туда файл шаблона отчета который имеет график.
Как получить доступ к этому графику для изменения его характеристик (подписи осей, название и т.д.)
Посмотрел как это делается в макрасе, но что то не могу сообразить как это сделать в Delphi. Кто сталкивался с этим или знает как это сделать напишите пожалуйста....
« Последнее редактирование: 11-12-2007 16:47 от Алексей1153++ » Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-10-2006 05:21 » 

всё точно также как и в макрасе VBA. тока синтаксис языка меняется на Delphi.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
ddg72
Гость
« Ответ #2 : 10-10-2006 05:10 » 

Да не совсем!!!
Полученный в Excel макрос вообще неработает
  Sub Макрос2()
      ActiveSheet.ChartObjects("Диагр. 9").Activate
      ActiveChart.ChartArea.Select
      With ActiveChart
          .Axes(xlValue, xlPrimary).HasTitle = True
          .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Название"
      End With
  End Sub
выдает ошибку:
  Ошибка выполнения '1004'
  Невозможно получить свойство ChartObjects класса Worksheet
Пошарившись в Help по VBA ручками переделал макрос к следующиму виду:
  Sub Макрос2()
      With Worksheets("Название").ChartObjects(1).Chart
          .Axes(xlValue, xlPrimary).HasTitle = True
          .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Название"
      End With
  End Sub
Заработал. Но Delphi матерится, что то нет таких свойст, то нет таких методов, то еще какато хрень.
Я поэтому и спрашиваю, что может у когото есть пример работы с графиками (уже существующими, хотя какая разница, но может и есть. Потаму что при Add мы получаем указатель на созданный объект и поехали. Может вся проблема в получении указателя на существующий график.) по изменению их свойств. Для получения объекта графика я использовал:
и так
  WorkBooks.Charts.Item[1]
и так
  Excel.Charts.Item['Диагр. 9'] as _Chart
и так
  WorkBooks.WorkSheets.ChartObjects(1, 0).Chart
и так
  (WorkBooks.WorkSheets.ChartObjects(1, 0) as ChartObject).Chart;
что то не уразумею. Конечно это можно решить через вышеупомянутый макрос, но это как-то уж совсем через жо...
Хотелось бы увидеть ответ по существу, а не в общих чертах. Плизззз!!!!!
В общих чертах я и сам разумею, что это должно делаться примерно также, но вот как, что то ни как (прошу прощения за тувталогию).
« Последнее редактирование: 11-12-2007 16:47 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines