Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.01.2009, 08:12   #1
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Репутация: 73
Вопрос как провести графич.линию через сердину клекти таблицы?

С прошедшими праздниками всех!
есть файл-пример: таблицы и линии.rar, есть вопрос: как программно нарисовать линию которая ровно посередине пересечет строку или столбец и на пол сантиметра будет "торчать" с обеих сторон таблицы? при условии, что всегда во всех ячейках стоиот выравнивание по центру.
tolikman вне форума   Ответить с цитированием
Старый 09.01.2009, 08:41   #2
Sasha_Smirnov
Особый статус
Профессионал
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Адрес: Петербург
Сообщений: 1,533
Репутация: 691
По умолчанию Вот так

Пожалуй, не стоит делать это путём усложнения границ таблицы.
Лучше подбери координаты рисованной (поверх) линии.

Код:
ActiveDocument.Shapes.AddLine(130, 110, 256, 110).Select
(Здесь 110 — расстояние в пикселах от верха страницы, а 130 и 256 — концов отрезка от левого края.)
Подбери цифры, и усё.

А легче, однако, не программно, а вручную:
Настройка > панель Рисование > Линии (мы ведь юзаем Word?..)
Sasha_Smirnov вне форума   Ответить с цитированием
Старый 09.01.2009, 12:19   #3
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Репутация: 73
По умолчанию

проблема не в том что я мучаю границы таблицы. проблема в том, чтонеобходимо именно программно рисовать линии на большом количестве таблиц в одном док-те, которых в свою очередь тоже много, нужна автоматизация.
как рисовать линии я знаю, а как узнать координаты ячейки, или столбца, или строки нет. В этом вся проблема. Как мне узнать какие цифры надо подобрать.
Если таблица была бы с фиксированной шириной равной ширине страницы, то я бы смог провести вертикальную линию, впринципе с трудом можно вычислить и горизонтальные координаты таблицы, которая не по ширине.
но как определить высоту? верхнюю координату таблицы?
tolikman вне форума   Ответить с цитированием
Старый 09.01.2009, 14:52   #4
viter.alex
Балуюсь кодами
Профессионал
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Адрес: Харків, Україна
Сообщений: 1,803
Репутация: 716

icq: 194381182
skype: viter.alex
По умолчанию

A с какой целью это делается? Может поискать выход проще?
viter.alex вне форума   Ответить с цитированием
Старый 09.01.2009, 16:08   #5
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Репутация: 73
По умолчанию

Я искал, ненашол. Программа должна выводить результат именно в таком виде. А альтернативу линиям я не нашол...
tolikman вне форума   Ответить с цитированием
Старый 09.01.2009, 16:19   #6
viter.alex
Балуюсь кодами
Профессионал
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Адрес: Харків, Україна
Сообщений: 1,803
Репутация: 716

icq: 194381182
skype: viter.alex
По умолчанию

Зачем? Можно порыть.
Думаю, главная задача здесь, определять положение курсора не в символах, а в пикселях относительно начала страницы. Дальше просто.
__________________
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума   Ответить с цитированием
Старый 09.01.2009, 16:35   #7
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Репутация: 73
По умолчанию

Документ полность управляется программой, от создания до сохранения и закрытия, как мне определить сколько пикселей от начала страницы. Я не умею помещать курсор в нужное место, и Selection в данном случае я не пользуюсь, подскажи как определить координаты нужного места в документе, я бы этим очень много зайцев убил.
Какую альтернативу линиям можно найти? когда примитивнее линии я ничего не знаю. Заранее спасибо.
tolikman вне форума   Ответить с цитированием
Старый 09.01.2009, 16:38   #8
viter.alex
Балуюсь кодами
Профессионал
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Адрес: Харків, Україна
Сообщений: 1,803
Репутация: 716

icq: 194381182
skype: viter.alex
По умолчанию

Нашел в Help такое для рисунков:
Код:
  Shape(имя_линии).RelativeHorizontalPosition = _
    wdRelativeHorizontalPositionColumn 'выровнять относительно колонки
    Shape(имя_линии).Left = wdShapeCenter 'как выровнять относительно колонки: по центру.
Выравнивание относительно строки смотрю, но там сложнее как-то.
__________________
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума   Ответить с цитированием
Старый 09.01.2009, 16:51   #9
viter.alex
Балуюсь кодами
Профессионал
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Адрес: Харків, Україна
Сообщений: 1,803
Репутация: 716

icq: 194381182
skype: viter.alex
По умолчанию

Вот этот код рисует вертикальную линию и выравнивает ее относительно центра столбца таблицы. Координаты заданы произвольно, но можно подумать, как брать положение таблицы и уже из нее брать координаты.
Код:
Dim oline As Shape
Set oline = ActiveDocument.Shapes.AddLine(100, 100, 100, 200)
oline.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
oline.Left = wdShapeCenter
__________________
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума   Ответить с цитированием
Старый 09.01.2009, 16:58   #10
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Репутация: 73
По умолчанию

вертикальную линию мы нарисуем с правильными координатами по оси х, как узнать координаты по оси у? таблица может находиться и в середине листа.
tolikman вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка SMS через клик по строке таблицы RUBEY Microsoft Office Excel 4 25.12.2008 12:07
Как нарисовать линию по пикселям DenLab Общие вопросы Delphi 4 03.12.2008 10:34
Как же нарисовать линию на форме? (Вопрос новичка) grey Помощь студентам 11 24.11.2008 11:31
хочу стереть линию с канвы.КАК? harmager Общие вопросы Delphi 1 24.11.2008 11:28


09:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.