Progressbar anzeigen für down/upload

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Progressbar anzeigen für down/upload

Beitrag von reiter »

hallo, mal als rückmeldung

es funktioniert leider nicht...
die progressbar läuft leider nicht..
ich hänge den Code mal hier an und auch das Beispiel
ich hatte es in der IDE und auch Ohne IDE probiert auf dem MAC , da läuft es leider nicht und hängt sich auch auf und lässt sich nicht schliessen.

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  SysUtils, FileUtil, Forms, Dialogs,
  StdCtrls, ComCtrls, EditBtn, ftpsend, synsock, Classes, blcksock;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    eHost: TEdit;
    eFile: TEdit;
    eUser: TEdit;
    ePassword: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    lbStatus: TLabel;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
    ftp:TFTPSend;
    procedure OnHeartBeat(Sender:TObject);
    procedure OnMonitor(Sender: TObject; Writing: Boolean;
      const Buffer: TMemory; Len: Integer);
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.OnHeartBeat(Sender: TObject);
begin
  application.ProcessMessages;
end;

procedure TForm1.OnMonitor(Sender: TObject; Writing: Boolean;
  const Buffer: TMemory; Len: Integer);
begin
  progressbar1.Position:=progressbar1.Position+Len;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  button1.enabled := false;
  try
    ftp := TFTPSend.Create;
    try
      //ProgressBar1.Max:=FileSize(eFile.filename);
      //I like exceptions, but not sure Synapse does. :)
      //ftp.Sock.RaiseExcept:=true;
      //ftp.DSock.RaiseExcept:=true;
      //now lets plug some callbacks in
      ftp.DSock.OnMonitor:=@OnMonitor;
      ftp.Sock.OnHeartbeat:=@OnHeartBeat;
      ftp.DSock.OnHeartbeat:=@OnHeartBeat;
      ftp.DSock.HeartbeatRate:=150; //lets make our GUI still feel responsive
      ftp.Sock.HeartbeatRate:=150;
      //now our props
      ftp.TargetHost := eHost.text;
      ftp.BinaryMode := true;
      ftp.UserName := eUser.text;
      ftp.Password := ePassword.text;
      ftp.DirectFileName :=
        eFile.Text;
      eFile.text;
      ftp.DirectFile := true;
      if not ftp.Login then
        raise Exception.Create('could not login');
      progressbar1.Max:=ftp.FileSize(eFile.text);
      if not ftp.RetrieveFile(eFile.text,false) then
        raise Exception.Create('file not retrieved');
      ftp.Logout;
    finally
      ftp.free;
    end;
  finally
    button1.enabled := true;
  end;
end;

end.
Dateianhänge
proejct1.zip
(4.15 KiB) 73-mal heruntergeladen

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Progressbar anzeigen für down/upload

Beitrag von sstvmaster »

Ich habe mal das Beispiel angepasst. Du musst aber Laz_Synapse aus dem OPM installieren und deinen pl_synapse deinstallieren.
Dateianhänge
project1_2.zip
(4.76 KiB) 84-mal heruntergeladen
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Progressbar anzeigen für down/upload

Beitrag von reiter »

Nein das war nicht das Problem... mit dem synapse.. das hatte ich ja gemacht sonst hätte ich es ja nicht compilieren können.. synapse war ja schon installiert bei mir, ich musste blos die Pakete im project Manager tauschen...es läuft einfach nicht..
Aber danke Maik

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Progressbar anzeigen für down/upload

Beitrag von theo »

Auf Linux GTK2 läuft's jedenfalls.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Progressbar anzeigen für down/upload

Beitrag von af0815 »

Auf welchen System läuft es nicht ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Progressbar anzeigen für down/upload

Beitrag von theo »

af0815 hat geschrieben:
Di 5. Mai 2020, 14:26
Auf welchen System läuft es nicht ?
Er schreibt weiter oben was von MAC:
reiter hat geschrieben:ich hatte es in der IDE und auch Ohne IDE probiert auf dem MAC , da läuft es leider nicht und hängt sich auch auf und lässt sich nicht schliessen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Progressbar anzeigen für down/upload

Beitrag von af0815 »

Ok, MAC könnte ich mir vorstellen.
Da dürfte vieles anders sein als beim normalen Linux. Das war auch ein Grund warum ich mittlerweile alle Apple Produkte bei mir rausgeschmissen habe (war ja nicht viel bei mir).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Progressbar anzeigen für down/upload

Beitrag von reiter »

Hm, ich probiere es mal im Linux mint hab ich noch als VM drauf
Aber ich mag den mac sehr Und ist um Welten besser wie Windows.. :D
Aber irgendwie sollte das schon auch auf dem mac funktionieren...
danke an alle ..
Vielleicht finde ich noch ne andere Möglichkeit

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Progressbar anzeigen für down/upload

Beitrag von af0815 »

Die Socket sind direkt am BS. Falls das BS aus welchen Grund auch immer, gewisse Callbacks nicht so unterstützt so ist man nahe am Pech gehabt. Oder man muss sich die implementation ganz genau ansehen, ob da nicht was bei einem BS Update verbessert wurde. (Verschlimmbessert :D )
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Progressbar anzeigen für down/upload

Beitrag von reiter »

Als Rückmeldung
habs im Linux Mint probiert und da funktioniert es.
hm
danke für Eure Mühe

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Progressbar anzeigen für down/upload

Beitrag von sstvmaster »

Hier mal eine Variante mit Indy.

Ja und die MemLeaks im Debug Modus sind Absicht, siehe:
- https://wiki.lazarus.freepascal.org/Ind ... king_issue
- https://forum.lazarus.freepascal.org/in ... #msg268869
Dateianhänge
Download_with_Progressbar_Indy.zip
(127.66 KiB) 79-mal heruntergeladen
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Progressbar anzeigen für down/upload

Beitrag von reiter »

Danke Maik, schau ich mir später noch an...

so, habs mir mal angesehen...
das funktioniert auf dem MAC wie es soll...
zumindest läuft der download (Progressbar)richtig

danke nochmal MAIK

Antworten