Olá galera, nesta dica irei mostrar como passar valores para um documento do Word. Desenvolvi um Doc padrão com o nome de Modelo.DOC, veja sua estrutura.
Certificado
Certifico o aluno @aluno, participante do treinamento @treinamento, com carga horária de @horario hrs.
Equipe Devmedia.
www.devmedia.com.br.
Agora podemos alterar os dados que estão como parâmetros, na verdade, este @aluno, @treinamento e @horario são valores que eu criei, não é regra.
Vamos desenvolver uma tela para passagem de parâmetros.
E no click do botão iremos passar os paraemtros . mas antes disto precisamos declarar no USES a unit "ComObj", para que o exemplo funcione corretamente.
procedure TFrmPrincipal.BtnGerarClick(Sender: TObject);
var
WinWord, Docs, Doc: Variant;
begin
WinWord := CreateOleObject('Word.Application');
// Tornar o word visivel
WinWord.Visible := True;
// Abrir arquivo para edição
Doc:= WinWord.Documents.Open(ExtractFilePath(Application.ExeName)+'Modelo.doc'
// Substituir itens do arquivo por texto escolhido
Doc.Content.Find.Execute(FindText := '@aluno' , ReplaceWith := EdtNome
Doc.Content.Find.Execute(FindText := '@treinamento', ReplaceWith := EdtTreinamento
Doc.Content.Find.Execute(FindText := '@horario' , ReplaceWith := EdtHorario
// Salvar Documento
Doc.SaveAs(ExtractFilePath(Application.ExeName) + EdtNome.Text + '.doc');
if Application.MessageBox('Deseja Fechar o Documento?','Confirmação',MB_ICONQUESTION
WinWord.Quit;
// Fechar
end;
Observe que será criado um arquivo .doc, na pasta do executável com o nome do aluno, mantendo assim sempre o documento padrão.
Fico por aqui ate à próxima Quick Tips.
Um abraço
Wesley Y