Abri pdf com o Delphi usando ShellExecute - Não consigo

Delphi

08/06/2004

:?
Olá galera, já postei algo semelhante porém ninguém me respondeu. Acho que não tão difícil assim não sei fazer pois não entendo direito como trabalhar com arquivos txt.

Minha dúvida é a seguinte:


Estou usando o Delphi 7 para abrir um arquivo pdf, estou usando este código.

var teste: cardinal;
begin
teste := ShellExecute(Application.Handle, ´open´, PChar(´arquivo.pdf´), nil, nil, SW_SHOWMAXIMIZED);
if teste = 2 then ShowMessage(´O arquivo não existe´)
else
if teste = 31 then ShowMessage(´O Acrobat Reader nao foi instalado´);

Está abrindo normalmente o arquivo pdf. O problema é que eu queria que no lugar do ´arquivo.pdf´ onde eu fico preso a este nome do arquivo pdf para que este seja aberto, gostaria de fazer com que o ShellExecute buscasse o nome do arquivo a ser aberto em um arquivo txt, dessa forma poderia alterar o nome do arquivo, não precisaria utilizar apena arquivo.pdf. Ficaria a gosto do cliente.
Como poderia fazer isto?

Por favor, me ajudem


Lhcsilva

Lhcsilva

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

08/06/2004

com base no seu código:

var
  Arquivo: PChar;
  ArqTxt: TStrings;
begin 
  ArqTxt := TStringList.create;
  ArqTxt.LoadFromFile(´Arquivo.txt´);
  Arquivo := PChar(ArqTxt.Text);
  Arqtxt.Free;
  case ShellExecute(Application.Handle, ´open´, Arquivo, nil, nil, SW_SHOWMAXIMIZED) of
   2: ShowMessage(´O arquivo não existe´);
   31: then ShowMessage(´O Acrobat Reader nao foi instalado´); 
  end;
end;


você teria o nome do arquivo pdf a ser aberto dentro do Arquivo.txt, que pode ter qualquer nome


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

08/06/2004

Colega,

Adicione ExtActns na lista de uses, solte um OpenDialog (odDocumento) e faça algo como:

With TFileRun.Create(Self) do
begin
  FileName    := 0dDocumento.FileName;
  Operation   := ´open´;
  Execute;
  Free;
end;


Desta forma, vai abrir qualquer documento selecionado numa caixa padrão.


GOSTEI 0
Nerdex

Nerdex

08/06/2004

Importe e instale o OCX do Acrobat na tua aplicação Delphi...
Feito isto... faça o que quizer com arquivos PDF...
Creio que é incabível para esta atitude o ´chamamento´ de todo o exe c/ ShellExecute. Deixe sua aplicação mais profissional e inteligente, para isto use o OCX...Ok?


GOSTEI 0
POSTAR