Einzelnen Beitrag anzeigen

Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#11

Re: Kopierstatus in eigener ProgressBar?

  Alt 26. Aug 2004, 14:27
ich hatte das problem auch. ich bin zuerst einmal mit findfirst/next über die daten gebrettert, habe die gesamtgröße bestimmt.

dann habe ich beim lesen alle x byte und immer am dateiende (damit auch der "rest" berücksichtigt wird) ne message gefeuert (da es auf zwei threads verteilt war), wieviel ich gelesen habe. das habe ich dann in der routine, die die messages empfangen hat aufsummiert und hatte somit gesamtgröße und bearbeitete größe --> prozentsatz.

da nicode ja anscheinen was hat, mit dem man laufend unterrichtet wird, wie weit man ist, sollte das auch durchführbar sein.

Delphi-Quellcode:
//teil 1:
Read:= InStream.Read(Buffer,Sizeof(Buffer));
Inc(Result,Read);
DoSomething(Buffer,Buffer,Read);
OutStream.Write(Buffer,Read);
CryptedBytes(Read);


// da wo kopiert wird:
procedure TCryptoThread.NewProgress(count: longint);
var
  old: integer;
begin
  inc(actbyte, count);
  old := progress;
  progress := floor(1000 * actbyte / maxbyte);

  // only fire message when something changed
  if old <> progress then
    SendMessage(Form2.Handle, succ(WM_USER), 0, progress);
end;

// da wo angezeigt wird
procedure TForm2.NewProgress(var msg: TMessage);
begin
  ProgressBar2.Position := msg.LParam;
end;
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat