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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.06.2018, 01:08
Konstantin-78 Konstantin-78 вне форума
Новичок
 
Регистрация: 27.04.2015
Сообщения: 76
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Delphi 10.2 В MSWord увеличить толщину границы таблицы

Доброе время суток форумчане,

У меня есть функция, с помощью котрой я вставляю в MSWord таблиц:

Код:
function CreateTable(ANumRows, ANumColumns: integer;
                     var ATableID: integer): boolean; export;
var
  sel_: variant;
begin
  CreateTable := true;
  try
    sel_ := Words_Templs.selection;
    Words_Templs.ActiveDocument.Tables.Add(Range := sel_.Range, NumRows := ANumRows, NumColumns := ANumColumns);
    ATableID := Words_Templs.ActiveDocument.Tables.Count;
  except
    CreateTable := false;
  end;
end;
Таблица в Word вставляется, но с прозрачными границами.
Макрос (в Word) для зарисовки границ (черные линии), выдал:
Код:
Sub Макрос1()
'
' Макрос1 Макрос
'
'
    With Selection.Borders(wdBorderTop)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderLeft)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderBottom)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderRight)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
End Sub

Я попробовал в Delphi 10.2, создать такой же код:
Код:
sel_.Cells.Borders.Item(1).LineStyle := 1;
sel_.Cells.Borders.Item(1).LineWidth := 2;
sel_.Cells.Borders.Item(1).Color := 0;
но так я делаю видимой только верхнюю границу, и только первой ячейки. А мне нужно всю таблицу сделать видимой

Каким образом это можно сделать?

Спасибо за ответы

Последний раз редактировалось Konstantin-78, 04.06.2018 в 14:19.
Ответить с цитированием
  #2  
Старый 04.06.2018, 14:59
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Вот прям решение не подскажу, но один из способов получить желаемое:
1. Открываете Ворд.
2. Записываете макрос того действия что Вам нужно выполнить.
3. Открываете макрос и воспроизводите (в Delphi) методы макроса, корректирую синтаксис VBA в Pascal.
Мне помогало.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter