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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.01.2011, 19:06
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию Печать в Word по кнопке

У меня по кнопке Печать (код ниже) происходит экспорт данных в Word и его печать, после чего Word закрывается. Проблема в том, печать происходит только когда нажмешь на кнопку несколько раз, когда 2 раза, когда 3 раза, когда 4, но бывает что печатает и с первого раза.
Не пойму в чем грабли???

Код:
procedure TForm1.Button3Click(Sender: TObject);

var
  WApp : Variant;
  SaveChanges: OleVariant;
  //  S1 : string;
  //  FileName : string;

  procedure Replace(Lab, Txt : string);
  begin
    WApp.Selection.End:=0;
    WApp.Selection.Start:=0;
    WApp.Selection.Find.Forward := True;
    WApp.Selection.Find.Replacement.Text := Txt;
    WApp.Selection.Find.Text := Lab;
    WApp.Selection.Find.Execute(Replace:=wdReplaceAll);
  end;


begin
  try
    WApp:= CreateOleObject('Word.Application');
  except
    on E : EOleError do begin
      MessageDlg('MS Word отсутствует на компьютере!', mtError, [mbOk], 0);
      Exit;
    end;
  end;

  try
    WApp.DisplayAlerts := False;
    WApp.Documents.Open(ExtractFilePath(Application.ExeName)+'Листок индексации.doc');


//////////////////////// Данные для замены//////////////////////////////////////

    Replace('[Fio]',        Combobox3.Text);  // ФИО
    Replace('[Kategory]',   Combobox1.Text);  // Категория
    Replace('[Akt]',        Memo1.Text);      // Правовой акт
    Replace('[Summa]',      Edit2.Text);      // Сумма индексации
    Replace('[Data s]',     Combobox2.Text);  // Срок с

////////////////////////////////////////////////////////////////////////////////

    WApp.Visible := True;
    WApp.Selection.End:=0;
    WApp.Selection.Start:=0;
    Wapp.ActiveDocument.PrintOut;      // печать активного документа

  finally

    SaveChanges := wdDoNotSaveChanges; // не сохраняем изменения в документе
    Wapp.Quit (SaveChanges, EmptyParam, EmptyParam); //закрытие word
    Combobox4.Setfocus;
  end;

end;
Админ: ну что же ты, сообщений много, а про оформление кода не слухом не духомл.
Недельный бан, за систематическое несоблюдение правил.

Последний раз редактировалось Admin, 17.01.2011 в 20:55.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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