Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.11.2011, 10:38
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию Помогите пожалуйста деревянному по пояс

Проблема в следующем - в Delphi я не силен!!!
Но умудрился написать программку, которая делает расчеты и строит графики…
Как я говорил выше (Delphi я не силен), а графики мне нужны с несколькими осями и красивые, а компонент Chart не может так как мне хочется, моя програмулина рисует графики аж на двух компонентах Image (на одном (Image1) рисуются оси и подписи к ним, а на втором (Image2) рисуется сеточка и сами графики) - но сейчас не об этом…
В данный момент пишу код создания отчета…
Немного разобрался как делать отчет в MSWord (по шаблону) - тут очень все просто, но не могу в этот отчет никак вставить мои графики…
Единственное чего я достиг, так это написал процедурку сохранения моих графиков на жесткий диск в формате JPG - (есть специальная кнопка, при нажатии на которой на экране возникают по очереди мои графики (а их у меня 8 штук) делаются скриншоты части экрана, на котором график - так пришлось сделать из-за построения графиков аж на двух компонентах Image)…

Помогите пожалуйста вставить рисунки формата JPG (которые сохранены на жестком диске) в документ MSWord…

Пол дня я бороздил просторы бескрайнего Интернета - нашел всего парочку статей - ничего не могу понять и ничего у меня не работает…

Заранее спасибо!!!
Ответить с цитированием
  #2  
Старый 15.11.2011, 11:06
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

С Вордом через OLE работаешь?
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 15.11.2011, 11:16
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию

если не ошибаюсь то да

в uses я дописал ComObj

Запускаю MSWord так:
Код:
 Word := CreateOleObject('Word.Application');
А вот так я произвожу заполнение шаблона:
Код:
  Word.Selection.Find.Text := '$символ$';
  Word.Selection.Find.Replacement.Text := 'значения';
  Word.Selection.Find.Execute(Replace := 2);
$символ$ - так написано в шаблоне, а delphi сам меняет на 'значения'

Последний раз редактировалось lmikle, 16.11.2011 в 23:06.
Ответить с цитированием
  #4  
Старый 15.11.2011, 11:35
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от rroommaann
если не ошибаюсь то да

Вставка картинки в месте где установлен курсор:
Код:
  Word.Selection.InlineShapes.AddPicture(FileName:= 'C:\123.jpg',
                                         LinkToFile:= false,
                                         SaveWithDocument:= true);

P.S. Я не особо в построении графиков разбираюсь, но по-моему изначально программа неправильно спроектирована. Хотя может быть в твоем случае это то что нужно.
__________________
Google в помощь
Ответить с цитированием
  #5  
Старый 15.11.2011, 11:55
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию

Огромаднейшее СПАСИБО!

Все заработало!!!

Я не силен не только в Delphi, но и вообще в программировании... как-то я написал программку, там отчет я делал в MSExcel - это очень нудный и долгий процесс - написание самого кода, в MSWord - все гораздо проще и код получается поменьше...

а графики у меня выглядят так (я прикрепил файл)...
рисую я их с помощью прямых линий:
Код:
 Image_2.Canvas.MoveTo(a1, b1); // начало линии
 Image_2.Canvas.LineTo(a2, b2);   // конец линии 
где a1, b1, a2, b2 - координаты начала и конца линии соответственно

других способов в голову не пришло...

Еще раз большое Спасибо!!!
Изображения
Тип файла: jpg Graf_I.jpg (53.9 Кбайт, 21 просмотров)

Последний раз редактировалось lmikle, 16.11.2011 в 23:06.
Ответить с цитированием
  #6  
Старый 15.11.2011, 12:00
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию

... а еще используя
Код:
   Canvas.MoveTo(a1, b1);
   Canvas.LineTo(a2, b2);
(программа рисует прямо на форме)
я написал скринсервер - часики... рисуночек тоже прилагаю:
Изображения
Тип файла: jpg часы.jpg (97.2 Кбайт, 27 просмотров)

Последний раз редактировалось lmikle, 16.11.2011 в 23:07.
Ответить с цитированием
  #7  
Старый 15.11.2011, 12:06
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию

...и последнее, по поводу этих часиков... если кого заинтересовало то могу выложить исходник к ним... эти часы я "рисовал" около недели - все элементы рисуются програмно
Ответить с цитированием
  #8  
Старый 15.11.2011, 22:04
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Часы из Зазеркалья?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 16.11.2011, 11:52
rroommaann rroommaann вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 16
Репутация: 10
По умолчанию

точно, дома на стене висят - стрелки в обратную сторону, я к ним привык
Ответить с цитированием
  #10  
Старый 16.11.2011, 17:20
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Маньяк.
Ответить с цитированием
  #11  
Старый 16.11.2011, 21:57
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Теперь перепиши весь код для использования OpenGL или DirectX. Будет смотреться гораздо лучше и эффекты какие-нибудь добавь.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 16.11.2011, 23:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще, надо было рисовать на битмапе в памяти и уже готовые картинки выводить в TImage или в TPaintBox. Напримре, в памяти создаем битмап с сеткой и осями. Сохраняешь его. На втором битмапе рисуешь сначала первый, а потом свой график. Получившийся битмап выводишь в картинку. Ну и сохранить тогда картинку проще, не нужно скриншот делать.

Код:
var
  tBmp : TBitmap;
...
tBmp := TBitmap.Create;
...
tBmp.Canvas.MoveTo(10,10);
tBmp.Canvas.LineTo(50,50);
...
Image1.Picture.Bitmap.Assign(tBmp);
Image1.Picture.Graphic := Image1.Picture.Bitmap;\
...
tBmp.SaveToFile('c:\mybmp.bmp');
...
Ответить с цитированием
  #13  
Старый 16.11.2011, 23:52
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я имел в виду часы.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025