![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Вот код:
Код:
var c, n: integer; WordApp, NewDoc, WordTable: olevariant; iCols, iRows, iGridCols, jGridRows: integer; begin c := 10; n := 2; try // Create a Word Instance WordApp := CreateOleObject('Word.Application'); except ShowMessage('Error!'); Exit; end; WordApp.Visible := True; NewDoc := WordApp.Documents.Add; iRows := n; iCols := c; // Add a Table WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols); WordTable.Range.Font.Size:=12; s:=10000; for jGridRows := 1 to iRows do for iGridCols := 1 to iCols do begin s:=s+1; str:=IntToStr(s)[1]+'.'+Copy(IntToStr(s),2,Length(IntToStr(s))); WordTable.Cell(jGridRows, iGridCols).Range.Text := str; end; WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned; end; И находились точно в центре каждой строки да и ещё жирным. Очень нужно и срочно !!! Последний раз редактировалось Oleg, 15.01.2008 в 16:21. |
#2
|
||||
|
||||
![]() Люди, помогите очень нужно прямо сейчас !
|
#3
|
||||
|
||||
![]() Я скажу, как это сделать в самом Word, а ты смотри по документации к нему (у меня нету, но обычно - файлы VBA*.hlp) как это кодить...
Нужно для всей таблицы установить следующие свойства ( в Word - Свойства таблицы...) Вкладка строка: Установить флажок "Высота", выбрать нужную величину и режим - "Точно" Вкладка столбец: Установить флажок "Ширина", выбрать нужную величину и еденицы - "Сантиметры" Вкладка ячейка: Установить флажок "Ширина", выбрать нужную величину и еденицы - "Сантиметры", вертикальное выравнивание поставить "по центру" Потом уже в настройках шрифта - жирный и выравнивание текста "по центру". Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#4
|
||||
|
||||
![]() Потом уже в настройках шрифта - жирный и выравнивание текста "по центру".
-А как сделать чтобы по центру в квадрате(а не по центру в квадрате), т.е. в центре и по ширине и по длине ? |
#5
|
||||
|
||||
![]() Всё сделал, но когда распечатывает, то не видно таблицы, срочно помогите !!!!!!!!
|
#6
|
||||
|
||||
![]() Всё работает(частично руками)
|
#7
|
||||
|
||||
![]() Вот полностью - пришлось лезть в VBA Word и там в Object Browse искать нужные методы и свойства, а значения констант искать в поиске кода Google.
Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#8
|
||||
|
||||
![]() Конечно спасибо, что откликнулись, но пример немного не такой, какой мне нужен. Да я уже до этого написал, что всё получилось. Но руками:
приходится выделять таблицу и в настройках таблицы -> границы и заливки в разделе "Всё" выбрирать руками. Можно как-нибудь програмно ? Для чего я это делаю => т.к. при распечатывании таблицы с тем, что внутри, символы видно, а таблицы нет. Можно как-нибудь это исправлять программно ? Ещё раз спасибо, что помогли и потратили свое время. Кстати по центру (сверху - вниз, слева-направо) я выравниваю, добавляя код #13+text+#13, т.е. Enter и всё Хорошо !!! Вот только делаю, чтобы было видно таблицу... Можно как-нибудь это исправлять программно ? |
#9
|
||||
|
||||
![]() Чтобы таблица была видна,
добавь в конце: Код:
WordTable.Borders.Item(wdBorderTop).Visible:=True; WordTable.Borders.Item(wdBorderLeft).Visible:=True; WordTable.Borders.Item(wdBorderBottom).Visible:=True; WordTable.Borders.Item(wdBorderRight).Visible:=True; WordTable.Borders.Item(wdBorderHorizontal).Visible:=True; WordTable.Borders.Item(wdBorderVertical).Visible:=True; WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned; Значения констант: Код:
const { WdBorderType } wdBorderTop = $FFFFFFFF; wdBorderLeft = $FFFFFFFE; wdBorderBottom = $FFFFFFFD; wdBorderRight = $FFFFFFFC; wdBorderHorizontal = $FFFFFFFB; wdBorderVertical = $FFFFFFFA; wdBorderDiagonalDown = $FFFFFFF9; wdBorderDiagonalUp = $FFFFFFF8; PS: открываешь Word, нажимаешь Alt+F11, запускаешь там Object Browse ( F2 ) и ищешь нужные свойства PPS: Кстати, самому было интересно - раньше никогда с Word'ом не работал ![]() Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#10
|
||||
|
||||
![]() Спасибо за код !!!!
Всё работает ! |
#11
|
||||
|
||||
![]() С радостью помогу ещё, т.к вопросы у тебя интересные
![]() Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#12
|
||||
|
||||
![]() А как можно сменить кодировку ?
NewDoc.TextEncoding:='msoEncodingUtf8' на Utf8 ????? не работает..... ![]() |
#13
|
||||
|
||||
![]() Цитата:
Вот по предидущему вопросу не поможете(с кодировкой). |
#14
|
||||
|
||||
![]() Нашёл два варианта:
1. Кодировку можно выбрать при открытии: Описание в VBA: Код:
Function Open(FileName, [ConfirmConversions], [ReadOnly], [AddToRecentFiles], [PasswordDocument], [PasswordTemplate], [Revert], [WritePasswordDocument], [WritePasswordTemplate], [Format], [Encoding], [Visible], [OpenAndRepair], [DocumentDirection], [NoEncodingDialog], [XMLTransform]) As Document Код: Код:
const msoEncodingUTF8 = 65001; msoEncodingCyrillic = 1251; NewDoc := WordApp.Documents.Open('mydoc.doc', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, msoEncodingUTF8, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); 2. А можно перегрузить документ в новой кодировке: Код:
NewDoc.ReloadAs(msoEncodingUTF8); Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |