Escolar Documentos
Profissional Documentos
Cultura Documentos
Macro1 Macro
Macro gravada 24/07/00 por Jair
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = DATAHOJE
.Replacement.Text = 24 de Janeiro
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace=wdReplaceAll
End Sub
Pgina: 141
Delphi 5
Celta Informtica - F: (11) 4331-1586
Na unidade do formulrio frmVendas, acrescente um procedimento cha-
mado Substituir que ter por funo substituir cada palavra do documen-
to. Este procedimento receber dois parmetro que so o texto a ser
substitudo e o substituto.
Na implementao do procedimento Substituir, cole a macro gravada no
Word.
Associe os mtodos ao componente WordApplication (WA) e retire os
mtodos de limpeza da procura (ClearFormatting) que sero utilizados
somente uma vez. A seguir, traduza para Object Pascal.
procedure btnReciboClick(Sender: TObject);
procedure Substituir(Texto, TextoSub: String);
private
{ Private declarations }
implementation
procedure TfrmVendas.Substituir(Texto, TextoSub: String);
{Texto contm a palavra que ser substituda e
TextoSub a substituta}
var
Repor: OLEVariant;
//Tipo de varivel aceita nos mtodos Word
begin
Repor:= wdReplaceAll;
//Constante definida em Word97.pas
with WA.Selection.Find do
begin
Text := Texto;
Replacement.Text := TextoSub;
Forward := True;
Wrap := wdFindContinue;
//Constante definida em Word97.pas
Format := False;
MatchCase := True;
// = True para no ser tudo maisculo
MatchWholeWord := False;
MatchWildcards := False;
MatchSoundsLike := False;
MatchAllWordForms := False;
Pgina: 142
Delphi 5
Celta Informtica - F: (11) 4331-1586
end;
WA.Selection.Find.Execute(EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,Repor);
end;
O evento OnClick do boto, abre o arquivo Recibo.doc, limpa as
formataes de procura, chama o procedimento Substituir para cada
campo do documento, atribuindo a eles os valores do registro corrente
nas tabelas, e por ltimo salva com outro nome e fecha o documento.
procedure TfrmVendas.btnReciboClick(Sender: TObject);
var
NomeArquivo: OLEVariant;
begin
NomeArquivo:=C:\Temp\Recibo.doc;
WA.Documents.Open(NomeArquivo,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam);
WA.Selection.Find.ClearFormatting;
WA.Selection.Find.Replacement.ClearFormatting;
Substituir (DATAHOJE,FormatDateTime
(dd de mmmm de yyyy,Date));
Substituir(NUMEROPEDIDO,tblVendasNumero.Value);
Substituir(NOMECLIENTE,tblClientesNome.Value);
Substituir(PRODUTONOME,tblVendasProduto.Value);
Substituir(QUANTIDADEPRODUTO,tblVendasQuantidade.AsString);
Substituir(VALORTOTAL,tblVendasValor.AsString);
NomeArquivo:=C:\Temp\Recibo +
tblVendasNumero.Value + .doc;
WA.ActiveDocument.SaveAs(NomeArquivo,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam);
WA.ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);
end;
Pgina: 143
Delphi 5
Celta Informtica - F: (11) 4331-1586
Execute o programa e no formulrio frmVendas, clique no boto Recibo
para ver o Word abrir o documento, alterar o texto, salvar e fechar com
outro nome.
Pgina: 144
Delphi 5
Celta Informtica - F: (11) 4331-1586
LISTA DE EXERCCIOS
1. Qual a diferena entre um programa feito para trabalhar sob o DOS
e outro construdo atravs do Delphi?
2. O que encontramos na Paleta de Componentes?
3. Qual a funo da janela Object Inspector?
4. Quais os passos para desenvolver um programa em Delphi aps a
anlise do projeto?
5. No primeiro programa que desenvolvemos, coloque um boto de
comando que apague o contedo do label, e outro que finalize o pro-
grama.
6. Na calculadora, mesmo redefinindo a propriedade TabStop do Edit
de resultado, o usurio poder alterar o resultado da operao. Que
outro controle poderamos utilizar no lugar de um TEdit para exibir o
resultado sem que o usurio possa alterar seu valor? Altere o proje-
to.
7. O cone escolhido para representar o projeto, no estar presente
no formulrio. Qual propriedade deveremos alterar para que o cone
representante do projeto tambm esteja no formulrio? Responda e
execute.
8. Altere os botes do Jogo da Velha para o tipo BitBtn, e reconstrua o
projeto para alterar as propriedades Kind e Caption, exibindo nos
botes os cones - e .
9. No Jogo da Velha, sempre o computador inicia uma nova partida.
Altere o cdigo para que o programa pergunte ao usurio quem inici-
ar uma nova partida.
10. No projeto Bloco de Notas, quando escolhemos a opo Sair, o
programa no pergunta se queremos salvar as alteraes realiza-
das no texto. Inclua uma varivel booleana na seo Implementation,
alterando o seu valor no procedimento Memo1Change e verifican-
do-a no momento de encerrar o programa.
Pgina: 145
Delphi 5
Celta Informtica - F: (11) 4331-1586
11. Inclua mais um boto no Relgio Despertador com a opo de
Soneca, soando o Beep dez minutos aps o primeiro despertar.
12. Construa um projeto que mostre todos os tipos de preenchimentos
(hachuras) dentro de crculos em um nico formulrio.
13. Construa um exemplo semelhante ao da luz em movimento, mas
que a figura ao invs de ser desenhada em outro aplicativo, seja
desenha por instrues (ellipse e rectangle) contidas dentro do pro-
grama em Delphi.
14. Substitua o controle ComboBox por um ListBox no exemplo de
Catlogo, com pesquisa pelo nmero do telefone.
15. No ltimo exemplo, crie mais uma tabela de Estoque, e a cada
venda realizada os valores de estoque devero ser atualizados.
16. Crie mais duas tabelas, uma de Fornecedores e outra de Com-
pras, semelhantes a Clientes e Vendas, e acrescente os campos ao
seu critrio.
Celta Informtica
http://www.celtainformatica.com.br