Среда, 18.06.2025, 10:53
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Рисование в MS Word на Delphi
    Рисование в MS Word на Delphi
    В этой третьей по счету статье о Delphi мы рассмотрим основные способы рисования из Delphi на листе MS Word.

    0. Запуск MS Word

    Подключаем необходимый для работы модуль и объявляем переменную:
    uses ComObj;
    ...
    var MsWord: variant;

    Запускаем MS Word и показываем на экране:
    MsWord:= CreateOleObject('Word.Application');
    MsWord.Visible := True;

    Создание нового документа:
    MsWord.Documents.Add;

    1. Линия

    Рисуем линию в документе MS Word на текущем листе:
    MsWord.ActiveDocument.Shapes.AddLine(x1, y1, x2, y2);

    где x1, y1 - координаты начала, а x2, y2 - координаты конца линии.

    Линия, выделенная для редактирования (форматирования):
    MsWord.ActiveDocument.Shapes.AddLine(x1, y1, x2, y2).;

    2. Прямоугольник
    MsWord.ActiveDocument.Shapes.AddShape(1, x1, y1, x2, y2);

    где x1, y1, x2, y2 - координаты прямоугольника.

    3. Произвольная фигура (или автофигура в терминологии MS Word)

    В общем случае, произвольная фигура рисуется так:
    MsWord.ActiveDocument.Shapes.AddShape(i, x1, y1, x2, y2);

    где i - номер фигуры (соответствует порядку следования фигур в MS Word на панели рисования), x1, y1, x2, y2 координаты прямоугольника в который будет вписан объект.

    4. Вставка картинки (произвольного изображения) в текущее положение курсора
    MsWord.ion.InlineShapes.AddPicture(FileName:='C:WINDOWSПузыри.bmp', LinkToFile:=False, SaveWithDocument:=True);

    При выполнении данной команды нужно определить следующие праметры:

    FileName - путь к графическому файлу; LinkToFile - булевский флаг, указывающий на необходимость связи с источником; SaveWithDocument - булевский флаг, указывающий на свойства рисунка при сохранении документа.

    5. Манипулцяции (форматирование) с фигурами

    Выбор фигуры можно осуществить следующим образом:
    MsWord.ActiveDocument.Shapes.item(n).;

    где n - порядковй номер фигуры.

    Заливка фона текущей фигуры
    MsWord.ion.ShapeRange.Fill.ForeColor.RGB:=RGB(r, g, b);

    где r, g, b - соответственно красная, зеленая и синяя составляющая цвета.

    Толщина линий текущей фигуры
    MsWord.ion.ShapeRange.Line.Weight:=5;

    Цвет линии текущей фигуры
    MsWord.ion.ShapeRange.Line.ForeColor.RGB:=RGB(r, g, b);

    Группировка фигур
    MsWord.ActiveDocument.Shapes.Range(VarArrayOf(['3', '5', '8'])).group;

    где 3, 5, 8 - порядковый номер фигуры.

    6. Блокировка механизма вывода на экран отрисовки

    В случае, если вы не хотите наблюдать как на листе отрисовываются ваши манипуляции с графическими объектами, то можно воспользоваться ниже приведенными командами.
    // Выключение обновления экрана
    MsWord.ScreenUpdating := False;

    // Обновление экрана
    MsWord.Application.ScreenRefresh;

    // Включение обновления экрана
    MsWord.ScreenUpdating := True;

    Примечания:
    Рисование осуществляется на актвином листе.
    Координаты действуют только для текущего листа.
    Удачной работы!

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 1906 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: