 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
eubiafidelis Novato

Registrado: Quinta-Feira, 19 de Dezembro de 2019 Mensagens: 2
|
Enviada: Qui Dez 19, 2019 6:27 pm Assunto: Manipulação de caixa de texto no word via Delphi 7 |
|
|
Boa noite.
Estou precisando manipular um documento no word via Delphi 7.
Mas a informação no word está numa caixa de texto, então o comando abaixo não está funcionando:
Doc.Content.Find.Execute(FindText := '#NOME_CLIENTE', ReplaceWith := 'TESTE', Replace := 2);
Alguém poderia me ajudar nesta questão?
Obrigada |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Sex Dez 20, 2019 1:42 pm Assunto: |
|
|
| Código: | | Doc.Content.Find.Execute(FindText := '#NOME_CLIENTE', ReplaceWith := 'TESTE', Replace := 2); |
Deve haver um erro de logica ai neste trecho
acredito que seja alguma das opções abaixo:
| Código: |
Doc.Content.Find('#NOME_CLIENTE').Execute('TESTE', 2); // find localiza o componente #NOME_CLIENTE e dispara o método execute do próprio componente
Doc.Content.Find('#NOME_CLIENTE').Execute('TEXTO_ANTIGO','TESTE', 2);
Doc.Content.Find.Execute('#NOME_CLIENTE','TEXTO_ANTIGO','TESTE', 2);
Doc.Content.Find.Execute('#NOME_CLIENTE','TESTE', 2);
|
lembre que o componente pode não ser encontrado pelo nome ou id retornando nil assim não usaria ele desta forma e sim da seguinte forma:
| Código: | comp:=Doc.Content.Find('#NOME_CLIENTE'); // tentando localizar o componente
if @comp<>nil then // se componente foi achado então o mesmo será diferente de nil
comp.Execute('TESTE', 2); // chamo o método execute pertencente ao componente |
basta então saber o tipo de retorno de find para poder declarar comp com o mesmo tipo de dado.
":=" não rola em delphi onde se deva levar argumento veja exemplo
| Código: | function soma(x,y:integer):integer;
begin
result:=x+y;
end;
{...}
var
x,y,z:integer;
begin
z:=soma(x:=10,y:=20); // erro na sua abordagem
// uma opção valida
z:=soma(10,20);
//outra opção valida
x:=10;
y:=20;
z:=soma(x,y);
{..} |
_________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
eubiafidelis Novato

Registrado: Quinta-Feira, 19 de Dezembro de 2019 Mensagens: 2
|
Enviada: Sex Dez 20, 2019 5:56 pm Assunto: |
|
|
Esse comando "Doc.Content.Find.Execute(FindText := '#NOME_CLIENTE', ReplaceWith := 'TESTE', Replace := 2);" funciona quando no word for somente um texto normal.
O meu problema é quando o texto está numa caixa de texto. O comando não encontra, então não substitui.
Mas blz, arrumei outra forma para contornar esse problema.
Obrigada |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|