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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.05.2008, 12:38
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
По умолчанию Работа в Word

Здравствуйте. Очень нужна ваша помощь. Мне нужно создать программу, которая будет работать с документом программы Word. Цель программы такая: в документе имеется несколько надписей(полей). В эти поля нужно переносить данные из edit'ов в программе. Заранее спасибо
Ответить с цитированием
  #2  
Старый 26.05.2008, 13:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Подключаешься к ворду через OLE, открываешь документ и вперед.
Для позиционирования удоюно пользоваться закладками (bookmarks).
Ответить с цитированием
  #3  
Старый 26.05.2008, 13:26
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
По умолчанию

а я не умею. код подскажите пожалста
Ответить с цитированием
  #4  
Старый 26.05.2008, 13:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Учись. Всю жизнь за тебя никто работать не будет.

Код:
var
  WordObj: Variant;
  WordDoc: Variant;
begin
  try
    WordObj := GetActiveOleObject('Word.Application');
  except
    try
      WordObj := CreateOleObject('Word.Application');
    except
      on E: Exception do
        begin
          MessageDlg('Ошибка открытия MS Word.'#13#10 + E.Message, mtError, [mbOk], 0);
          Exit;
        end;
    end;
  end;

  try
    try
      WordDoc := WordApp.Documents.Add(AFileName, false, true);
      if WordApp.Visible then
        for I := 1 to WordDoc.Windows.Count do
          WordDoc.Windows.Item(I).WindowState := wdWindowStateMinimize;
      for I := 0 to OracleDataModule.oqGetRepData.Fields.Count - 1 do
            try
              WordDoc.ActiveWindow.Selection.goto(What := -1,
                Name := OracleDataModule.oqGetRepData.Fields[i].FieldName);
              WordDoc.ActiveWindow.Selection.TypeText(Buf);
            except
              Continue;
            end;

      // Сохранить документ с новым именем
      with OracleDataModule.oqMain do
        if MakeRepFolder(FieldByName('First_Name').AsString, FieldByName('Middle_Name').AsString, FieldByName('Last_Name').AsString, FieldByName('R_UID').AsString, Dir) then
          try
            NewFileName := ChangeFileExt(IncludeTrailingPathDelimiter(Dir) + ExtractFileName(AFileName), '.doc');
            WordApp.ActiveDocument.SaveAs(NewFileName);
          except
            on E: Exception do
              MessageDlg('Ошибка сохранения анкеты.'#13#10 + E.Message, mtError, [mbOK], 0);
          end;

      // Показать Word
      if FWorkPlaceOptions.PrintPreview then
      else
        WordDoc.PrintOut;
      Application.ProcessMessages;
    finally
      WordDoc := Unassigned;
    end;
  except
    on E: Exception do
      MessageDlg('Ошибка печати документа.'#13#10 + E.message, mtError, [mbOk], 0);
  end;
end;

Надергал кода из проекта.
Напрямую работать, конечно, не будет, но понять что-то можно.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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