Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Word, регистр символов


Автор: Stereotip 9.8.2009, 12:09
Необходимо из Дельфи в ворд загнать в определенные ячейки (шапку таблицы) разные названия полей, в которые будут входить как верхний так и нижний регистр, а так же символы.
Остальная таблицы (все что после шапка) это экспорт StringGrid.

Т.е мне надо экспортировать в ворд stringgrid, но шапку полученной таблице сделать свою, так как в ней будут такие вещи как: м в степени 2 и т.д.
Так же перед таблицей надо будет вставить: Таблица 1. - название.

После таблицы надо будет вставить еще две других. Документ на выходе делжен будет содержать аж 3 разных таблицы.

Сам экспорт в ворд я сделал.
Мне надо понять, как теперь в вор добавить запись с верхним и нижним регистром.

Вот код:

Код

procedure TForm1.btn4Click(Sender: TObject);
var
  W, Table: Variant;
  Row, Col, i, j: Integer;
begin
// создаем word
  W := CreateOleObject('Word.Application'); 
  W.Documents.Add;

//Создаем таблицу

  W.ActiveDocument.Tables.Add(W.ActiveDocument.Range,
  Grid.RowCount, Grid.ColCount-8);
  Table := W.ActiveDocument.Tables.Item(1);

//прорисовываем сетку таблицы (В 2007 офисе она почему-то сразу не хочет прорисовываться)
  Table.Style := 'Сетка таблицы';

//Загоняем определенные ячейки из стринггрида

  for i := 1 to Grid.RowCount - 1 do
    for j := 0 to Grid.ColCount - 9 do
    begin
      Table.Cell(i + 1, j + 1).Range.Text := Grid.Cells[j, i];
//выставляем шрифт
      Table.Cell(i + 1, j + 1).Range.Font.name:='ISOCPEUR';
//Размер шрифта
      Table.Cell(i + 1, j + 1).Range.Font.size:=11;
//Делаем наклонный
      Table.Cell(i + 1, j + 1).Range.Font.italic := 2;
      end;
// тут я уже пытаюсь эксперементировать, заношу в шапку таблицы (ячейка 1,1) слово мля. Все работает, но как ввести туда нечто такого: Fg м3, где g - нижний регистр, а 3 - степень, верхний регистр.
  Table.Cell(1, 1).Range.Text := 'Мля';

  W.Visible := True;
end;


Так же надо выровнять данную таблицу по ширине окна например...


 ! 
Rrader
Stereotip, ознакомьтесь с правилами форума. Как правильно создавать темы и т.п.

Автор: Данкинг 9.8.2009, 12:46
Цитата(Stereotip @  9.8.2009,  13:09 Найти цитируемый пост)
Мне надо понять, как теперь в вор добавить запись с верхним и нижним регистром.

Посмотри по макросам, как это делает сам Ворд. Что-то вроде "Selection.Font.Superscript = wdToggle".

Автор: Stereotip 11.8.2009, 19:31
Данкинг, 


ВОт это надо сделать напишите как!
// тут я уже пытаюсь эксперементировать, заношу в шапку таблицы (ячейка 1,1) слово ТЕКСТ. Все работает, но как ввести туда нечто такого: Fg м3, где g - нижний регистр, а 3 - степень, верхний регистр.
Table.Cell(1, 1).Range.Text := 'ТЕСТ';

Автор: volvo877 11.8.2009, 20:49
Цитата(Stereotip @  11.8.2009,  19:31 Найти цитируемый пост)
ВОт это надо сделать напишите как!

Если "в лоб" - то так:
Код

  Table.Cell(1, 1).Range.Select;
  s := 'F';
  W.Selection.TypeText(s);
  W.Selection.Font.Subscript := wdToggle; // Устанавливаем subscript
  s := 'g';
  W.Selection.TypeText(s);
  W.Selection.Font.Subscript := wdToggle; // Сбрасываем subscript
  s := ' м';
  W.Selection.TypeText(s);
  W.Selection.Font.Superscript := wdToggle; // Устанавливаем superscript
  s := '3';
  W.Selection.TypeText(s);
  W.Selection.Font.Superscript := wdToggle; // Сбрасываем superscript
, но можно и доработать, чтоб было удобнее. Дерзай smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)