Para os Feras em API do Windows

Delphi

08/08/2003

Estou precisando de uma função da API que me retorne o nome do arquivo que o usuário deu dois cliques. Explico:

No Word, por exemplo quando o usuário dá dois cliques em um arquivo com a terminação .doc o word é inicializado com o arquivo que foi clicado carregado.
Eu preciso que qdo um arquivo .qrp for clicado o mesmo abra o quickrep com o arquivo carregado. Para isto eu preciso que quando eu for carregar automaticamente o .qrp eu saiba o nome do arquivo executado para passar como parâmetro para o mesmo.


Mauromarques

Mauromarques

Curtidas 0

Respostas

Leanribas

Leanribas

08/08/2003

vc pode atraves do Windows associar o arquivo ao seu programa...

no Windows explorer vc pode ir em Ferramentas e clique no item ´opções de pasta´ e na tela que apareçe clique na aba ´tipos de arquivo´


GOSTEI 0
4_olho

4_olho

08/08/2003

O QuickReport NÃO é uma aplicativo, portanto NUNCA não vai abrir arquivos de extensão [b:8ac88a779b].qrp[/b:8ac88a779b].

Sugestão : um pequeno aplicativo Delphi, com um só form de relatório e um comando de inicialização onde dá o Preview de seu arquivo.

Depois basta associar esta sua aplicação à extensão .qrp, mas aí é pelo Ruindows.


GOSTEI 0
Mauromarques

Mauromarques

08/08/2003

As observações citadas acima eu já fiz. O problema é que o .qrp abre automaticamente mas com o conteudo em branco. Por isto eu preciso saber qual o arquivo foi clicado para poder passar por parâmetro para o Quickrep. por exemplo:

no evento onActive
QuickRep1.Printer.Load(´C:\Nome do Arquivo´);

que deve ser passado como parâmetro.


GOSTEI 0
Cebikyn

Cebikyn

08/08/2003

Como você já seguiu todos os passos a cima, você deve ter colocado em algum lugar o nome do aplicativo que deve ser aberto, então neste mesmo local coloque um espaço e [b:ab1d9c4281]´¬1´[/b:ab1d9c4281] após o nome do programa, aí o nome do arquivo será passado como parâmetro pelo Windows para o seu programa. Depois para ver o nome do arquivo use:
ParamStr[1]

O comando a cima retornará uma string, então é só colocar no seu evento OnActive:
QuickRep1.Printer.Load(ParamStr[1]);


Não tenho muita certeza se o nome da função ParamStr está escrito certo, mas qualquer coisa é só perguntar...


GOSTEI 0
POSTAR