Recent

Author Topic: TProcess.CommandLine deprecated  (Read 6342 times)

nightrider

  • Full Member
  • ***
  • Posts: 139
TProcess.CommandLine deprecated
« on: June 20, 2013, 06:44:10 pm »
Estou compilando uma antigo projeto em Lazarus 1.0.10

Ele está dando warning que a propriedade CommandLine de TProcess está "deprecated"(obsoleta, suponho). Alguém saberia me dizer como substituo o uso desta propriedade em TProcess?

.
.
.
    cbVerbose: TCheckBox;
    lbedPackedFileName: TLabeledEdit;
    Process1: TProcess;
    lbListOfFilesToPack: TListBox;
.
.
.
  Process1.CommandLine := 'bash -c ''' + command_line + '''';
  Process1.Options := Process1.Options + [poWaitOnExit,poUsePipes];
.
.
.

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: TProcess.CommandLine deprecated
« Reply #1 on: June 20, 2013, 06:50:43 pm »
Você põe o nome do executável em Process.Executable e os parâmetros em Process.Parameters.

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: TProcess.CommandLine deprecated
« Reply #2 on: June 20, 2013, 09:04:01 pm »
 No meu exemplo ficaria +/- assim:

 Process1.Executable := 'bash';
 Process1.Parameters := '-c tar --extract --verbose ....';
 Process1.Options := Process1.Options + [poWaitOnExit,poUsePipes];
 Process1.Execute;
 j := Process1.ExitStatus;


Se fosse executar o tar? É isto?

[ ]

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: TProcess.CommandLine deprecated
« Reply #3 on: June 20, 2013, 11:39:19 pm »
Code: [Select]
Process1.Parameters.Add(YourParameter);

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: TProcess.CommandLine deprecated
« Reply #4 on: June 21, 2013, 06:17:44 pm »
Para não complicar eu escreveria:

Process1.Parameters.Text := YourParameter

E não respondeste:

Como tu montarias a chamada do tar proposta por mim?

aguiar

  • New Member
  • *
  • Posts: 47
  • Ubuntu 14.04
Re: TProcess.CommandLine deprecated
« Reply #5 on: June 24, 2013, 01:11:10 pm »
Process1.Parameters.Add := '-c';
Process1.Parameters.Add := 'tar';
Process1.Parameters.Add := '--extract';
...

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: TProcess.CommandLine deprecated
« Reply #6 on: July 13, 2013, 05:42:52 pm »
Definitivamente não funcionou. Ocorrem erros. Tentei varias construções.

Vou ficar com meu "deprecated". Pelo menos funciona.

Grato

[ ]

Jurassic Pork

  • Hero Member
  • *****
  • Posts: 1228
Re: TProcess.CommandLine deprecated
« Reply #7 on: July 14, 2013, 01:12:02 am »
try this :
Code: [Select]
Process1.Executable := 'tar';
 Process1.Parameters.DelimitedText := '--extract --verbose ....';
 Process1.Options := Process1.Options + [poWaitOnExit,poUsePipes];
 Process1.Execute;
 j := Process1.ExitStatus;
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: TProcess.CommandLine deprecated
« Reply #8 on: July 14, 2013, 06:21:46 pm »
Não preciso mais invocar o "bash" para passar o comando como vinha fazendo?

Jurassic Pork

  • Hero Member
  • *****
  • Posts: 1228
Re: TProcess.CommandLine deprecated
« Reply #9 on: July 14, 2013, 06:29:25 pm »
the code is Ok without "bash" on Ubuntu 12.04 lazarus 1.1 svn. The executable (here tar) must be found in one of the directory of the PATH environment variable.
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: TProcess.CommandLine deprecated
« Reply #10 on: July 14, 2013, 10:07:59 pm »
Ok. You won! The suggested construction compile and ran OK under ROSA disto too. Without "bash".

Thank you.

Cheers

Ricardo

 

TinyPortal © 2005-2018