У меня по кнопке Печать (код ниже) происходит экспорт данных в 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;
Админ: ну что же ты, сообщений много, а про оформление кода не слухом не духомл.
Недельный бан, за систематическое несоблюдение правил.