Abrir programa com parâmetros
12/09/2004
0
Por exemplo, a opção [b:476f5d2c54]/a[/b:476f5d2c54], mostra o form A, a opção [b:476f5d2c54]/b[/b:476f5d2c54], mostra o form B, etc.
Fmd
Posts
13/09/2004
Xanatos
Tipo Programa /a /b:
ParamStr(1) = ´/a´ e ParamStr(2) = ´/b´
if ParamStr(1)<>´/a´ then
FormA.ShowModal
else if ParamStr(1)<>´/b´ then
FormB.ShowModal
Espero q ajude!!!
13/09/2004
Afarias
if FindCmdLineSwitch(´a´, [´-´, ´/´], True) then
begin
{ faça algo }
end;
no caso acima, vai retornar TRUE caso exista em qualquer posição (nos argumentos de execução) ´-a´ ou ´/a´ (sem aspas, claro!)
T+
13/09/2004
Tatuweb
A função ParamStr, pelo menos até a versão 5 do Delphi/C++ Builder, possui um bug. Ela não funciona corretamente se o path tiver espaços. Ex: C:\arquivos de programas\ tem dois espaços. Prefira usar a API GetCommandLine em conjunto com Copy, AnsiPos e ParamCount. É bem simples. Se alguém usa o programa XnView (visualizador de imagens) já deve ter reparado esse programa tem este bug.
13/09/2004
Paulo_amorim
Olá
Ele funciona se vc passar com aspas, daí ele interpreta como um parâmetro...
13/09/2004
Tatuweb
Como assim passar com aspas? Só como exemplo faça um programinha para ler arquivos texto, associe a extensão TXT ao seu programa e tente abrir um arquivo dentro de um path que tenha espaço. Se tentar fazer o que tá abaixo vai retornar um erro caso o path contenha espaço.
procedure TForm1.FormShow(Sender: TObject); begin if ParamStr (1) <> ´´ then Memo1.Lines.LoadFromFile (ParamStr (1)); end;
13/09/2004
Keitarosan
Quando for associar um arquivo a um programa, a maneira mais coerente é fazer assim: ´ ´ ´¬1´ :D
13/09/2004
Tatuweb
Ah tá... agora entendi o lance. Entre aspas já estava mas faltou incluir o ´¬1´ na associação. Testei agora e funciounou. :P
Clique aqui para fazer login e interagir na Comunidade :)