Распределенные приложения: контроллеры автоматизации. Часть 2. Фертиков В.В. - 8 стр.

UptoLike

Составители: 

8
try // если Word запущен - подключиться к нему
W := GetActiveOleObject('Word.Application');
except // если нет - запустить
W := CreateOleObject('Word.Application');
end;
W.Visible := True;
D:=W.Documents.Add;
S:=W.Selection;
S.TypeText('Hello, World!'#13);
PosBeg := S.Start;
j:=0; ws:='';
for i:=0 to Table1.FieldCount-1 do
ws:=ws+#9+Table1.Fields.Fields[i].FieldName;
ws:=ws+#13;
S.TypeText(ws);
with Table1 do while not Eof do begin
j:=j+1;
ws:=IntToStr(j)+'.';
for i:=0 to FieldCount-1 do
ws:=ws+#9+Fields.Fields[i].AsString;
ws:=ws+#13;
S.TypeText(ws);
Next
end;
PosEnd := S.Start;
Table1.Close;
D.Range(PosBeg,PosEnd).ConvertToTable(Separator:=#9,
AutoFit:=True,AutoFitBehavior:=1,DefaultTableBehavior:=1)
end;
Пожалуйста, не забудьте вставить ссылку на упомянутый модуль ComObj.
Напомним также о необходимости изучения документации по программирова-
нию Microsoft Word при разработке его клиентов автоматизации. В данном по-
собии мы имеем возможность лишь следующего краткого пояснения. Для пре-
образования введенных текстовых данных в таблицу использован простой при-
ем : текущая позиция документа запоминается дважды, до и после ввода преоб -
разуемого текста:
PosBeg := S.Start; // начальная позиция
S.TypeText(ws); ... // вывод текста
PosEnd := S.Start; // конечная позиция
После чего весь отмеченный диапазон преобразуется в таблицу вызовом
метода ConvertToTable. Заметим , что в данном случае использованы имено-
ванные параметры. Обратите внимание также на использованный в программе
тип WideString. Именно его целесообразно использовать для представления
текстовой информации при программировании OLE-автоматизации, поскольку
этот тип совместим со стандартным COM типом представления строк BSTR.
                               8
  try     // если Word запущен - подключиться к нему
     W := GetActiveOleObject('Word.Application');
  except // если нет - запустить
     W := CreateOleObject('Word.Application');
  end;
  W.Visible := True;
  D:=W.Documents.Add;
  S:=W.Selection;
  S.TypeText('Hello, World!'#13);
  PosBeg := S.Start;
  j:=0; ws:='№';
  for i:=0 to Table1.FieldCount-1 do
     ws:=ws+#9+Table1.Fields.Fields[i].FieldName;
  ws:=ws+#13;
  S.TypeText(ws);
  with Table1 do while not Eof do begin
     j:=j+1;
     ws:=IntToStr(j)+'.';
     for i:=0 to FieldCount-1 do
       ws:=ws+#9+Fields.Fields[i].AsString;
     ws:=ws+#13;
     S.TypeText(ws);
     Next
  end;
  PosEnd := S.Start;
  Table1.Close;
  D.Range(PosBeg,PosEnd).ConvertToTable(Separator:=#9,
     AutoFit:=True,AutoFitBehavior:=1,DefaultTableBehavior:=1)
end;

      Пожалуйста, не забудьте вставить ссылку на упомянутый модуль ComObj.
Напомним также о необходимости изучения документации по программирова-
нию Microsoft Word при разработке его клиентов автоматизации. В данном по-
собии мы имеем возможность лишь следующего краткого пояснения. Для пре-
образования введенных текстовых данных в таблицу использован простой при-
ем: текущая позиция документа запоминается дважды, до и после ввода преоб-
разуемого текста:
  PosBeg := S.Start;       // начальная позиция
  S.TypeText(ws); ...      // вывод текста
  PosEnd := S.Start;       // конечная позиция

      После чего весь отмеченный диапазон преобразуется в таблицу вызовом
метода ConvertToTable . Заметим, что в данном случае использованы имено-
ванные параметры. Обратите внимание также на использованный в программе
тип WideString. Именно его целесообразно использовать для представления
текстовой информации при программировании OLE-автоматизации, поскольку
этот тип совместим со стандартным COM типом представления строк BSTR.