Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   TProcess für pipe Transfer einrichten. (https://www.delphipraxis.net/193479-tprocess-fuer-pipe-transfer-einrichten.html)

DualCoreCpu 4. Aug 2017 12:44

TProcess für pipe Transfer einrichten.
 
Hallo,

ich habe diesen Quelltext:
Delphi-Quellcode:
unit uyapimain;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, process, FileUtil, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    btnInstall: TButton;
    btnCancel: TButton;
    btnClose: TButton;
    cbPkgToInstall: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    list: TListBox;
    InstallProcess: TProcess;
    RadioGroup1: TRadioGroup;
    procedure btnCloseClick(Sender: TObject);
    procedure btnInstallClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    FPackageName: String;
    FParameters: String;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
  InstallProcess.CurrentDirectory := GetCurrentDir + '/';
  FPackageName := '';
  if ParamCount <> 0 then FPackageName := ParamStr(1);
  for i := 2 to ParamCount-1 do FParameters := FParameters + ' ' + ParamStr(i);
  cbPkgToInstall.Text := FPackageName;
  //ShowMessage('Aktuelles Verzeichnis: '+InstallProcess.CurrentDirectory);
  //cbPkgToInstall.Text := '/home/knoppix/Downloads/skypeforlinux-64.deb';
end;

procedure TForm1.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.btnInstallClick(Sender: TObject);
begin
  //cbPkgToInstall.Text := '/home/knoppix/Downloads/skypeforlinux-64.deb';
  FPackageName := cbPkgToInstall.Text;
  if FPackageName <> '' then
  begin
    InstallProcess.Executable := FPackageName;
    InstallProcess.Parameters.Add('Install'); //Add(FParameters);
    InstallProcess.Execute;
    list.items.LoadFromStream(InstallProcess.Output);
  end
  else
  begin
    ShowMessage('Bitte zu installierendes Paket angeben!');
  end;
end;

end.

Folgende Options sind gesetzt:
[poWaitOnExit,poUsePipes,poStderrToOutPut,poNewProc essGroup]

Die Command Eigenschaft lautet "sudo apt get install "

Das Programm soll so auf der Kommandozeile aufgerufen werden können und als Parameter das zu installierende Paket übergeben bekommen.

In der Listbox soll dann der Installationsverlauf angezeigt werden. In der ersten Version einfach durch Umleitung der Ausgaben an die Console in die Listbox, siehe Formular.

Die Listbox bleibt aner leer. Was muss ich da noch einstellen. Ich programmiere unter Konoppix 7.6.

.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz