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