Einzelnen Beitrag anzeigen

a.def
(Gast)

n/a Beiträge
 
#3

AW: Schwierigkeiten mit 7-zip und Events

  Alt 5. Dez 2016, 16:15
..."Es scheint so, als ob die Demo nur hängt, wenn in den Events irgendwas steht was mit der VCL zu tun hat."...

Wenn man die Callbackquelle innerhalb von 7Zip nicht kennt, gehe man davon aus, das es dort in/durch einen Thread aufgerufen wird.

-> Also hier NIX mit VCL und KEIN Application.ProcessMessages... besser im Event nur irgendetwas einfaches ala PostMessage, Syncronize, CallInMainTread oä.
Ich habe das gerade auch mal flott mit TJcl7zCompressArchive getestet. Dort genau dasselbe Problem.

Wie würde das denn im Mainthread mit Postmessage funktionieren?
Ich benutze der Einfachheit halber jetzt die JEDI-Komponenten. Es wird aber dieselbe DLL verwendet.

Folgendes scheint scheinbar nicht zu funktionieren (GUI wird nicht aktualisiert)
Delphi-Quellcode:
const
 WM_UPDATE_PB = WM_USER;

procedure UpdateMessage(Value: Int64);
begin
 PostMessage(Form1.Handle, WM_UPDATE_PB, Value, 0);
end;

procedure TForm1.WMUpdatePB(var msg: TMessage);
begin
 ProgressBar1.Position := msg.WParam;
 Application.ProcessMessages;
end;

procedure TForm1.JclOnProgress(Sender: TObject; const Value, MaxValue: Int64);
begin
 UpdateMessage(Value);
 // ProgressBar1.Position := Value;
 // Application.ProcessMessages;
end;

Geändert von a.def ( 5. Dez 2016 um 16:20 Uhr)
  Mit Zitat antworten Zitat