![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Проблема в следующем - в Delphi я не силен!!!
Но умудрился написать программку, которая делает расчеты и строит графики… Как я говорил выше (Delphi я не силен), а графики мне нужны с несколькими осями и красивые, а компонент Chart не может так как мне хочется, моя програмулина рисует графики аж на двух компонентах Image (на одном (Image1) рисуются оси и подписи к ним, а на втором (Image2) рисуется сеточка и сами графики) - но сейчас не об этом… В данный момент пишу код создания отчета… Немного разобрался как делать отчет в MSWord (по шаблону) - тут очень все просто, но не могу в этот отчет никак вставить мои графики… Единственное чего я достиг, так это написал процедурку сохранения моих графиков на жесткий диск в формате JPG - (есть специальная кнопка, при нажатии на которой на экране возникают по очереди мои графики (а их у меня 8 штук) делаются скриншоты части экрана, на котором график - так пришлось сделать из-за построения графиков аж на двух компонентах Image)… Помогите пожалуйста вставить рисунки формата JPG (которые сохранены на жестком диске) в документ MSWord… Пол дня я бороздил просторы бескрайнего Интернета - нашел всего парочку статей - ничего не могу понять и ничего у меня не работает… Заранее спасибо!!! |
#2
|
||||
|
||||
![]() С Вордом через OLE работаешь?
Google в помощь |
#3
|
|||
|
|||
![]() если не ошибаюсь то да
в uses я дописал ComObj Запускаю MSWord так: Код:
Word := CreateOleObject('Word.Application'); Код:
Word.Selection.Find.Text := '$символ$'; Word.Selection.Find.Replacement.Text := 'значения'; Word.Selection.Find.Execute(Replace := 2); Последний раз редактировалось lmikle, 16.11.2011 в 23:06. |
#4
|
||||
|
||||
![]() Цитата:
Вставка картинки в месте где установлен курсор: Код:
Word.Selection.InlineShapes.AddPicture(FileName:= 'C:\123.jpg', LinkToFile:= false, SaveWithDocument:= true); P.S. Я не особо в построении графиков разбираюсь, но по-моему изначально программа неправильно спроектирована. Хотя может быть в твоем случае это то что нужно. Google в помощь |
#5
|
|||
|
|||
![]() Огромаднейшее СПАСИБО!
Все заработало!!! Я не силен не только в Delphi, но и вообще в программировании... как-то я написал программку, там отчет я делал в MSExcel - это очень нудный и долгий процесс - написание самого кода, в MSWord - все гораздо проще и код получается поменьше... а графики у меня выглядят так (я прикрепил файл)... рисую я их с помощью прямых линий: Код:
Image_2.Canvas.MoveTo(a1, b1); // начало линии Image_2.Canvas.LineTo(a2, b2); // конец линии других способов в голову не пришло... Еще раз большое Спасибо!!! Последний раз редактировалось lmikle, 16.11.2011 в 23:06. |
#6
|
|||
|
|||
![]() ... а еще используя
Код:
Canvas.MoveTo(a1, b1); Canvas.LineTo(a2, b2); я написал скринсервер - часики... рисуночек тоже прилагаю: Последний раз редактировалось lmikle, 16.11.2011 в 23:07. |
#7
|
|||
|
|||
![]() ...и последнее, по поводу этих часиков... если кого заинтересовало то могу выложить исходник к ним... эти часы я "рисовал" около недели - все элементы рисуются програмно
|
#8
|
||||
|
||||
![]() Часы из Зазеркалья?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
![]() точно, дома на стене висят - стрелки в обратную сторону, я к ним привык
|
#10
|
|||
|
|||
![]() Маньяк.
![]() |
#11
|
||||
|
||||
![]() Теперь перепиши весь код для использования OpenGL или DirectX. Будет смотреться гораздо лучше и эффекты какие-нибудь добавь.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#12
|
|||
|
|||
![]() Вообще, надо было рисовать на битмапе в памяти и уже готовые картинки выводить в 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
|
||||
|
||||
![]() Я имел в виду часы.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |