Zitat von
Alex_ITA01:
Wann soll die Animation wieder ausgestellt werden, wenn die "Sort-Procedure" unterschiedlich lange dauern kann?
So?
Delphi-Quellcode:
Progressbar.Visible := True;
MyStringGrid.Sort; // -> solange wie diese Funktion dauert soll die Progressbar sich "zeichnen"
Progressbar.Visible := False;
ach so, du lässt einen TList-Abkömmling das Sortieren übernehmen? na dann wird das mit dem fortschritt in prozent schwierig, da diese .Sort-routine ja keine auskunft darüber gibt, wie weit sie ist. aber wenn du einfach nur eine progressbar haben willst, die immer wieder durchläuft, mach doch sowas:
Delphi-Quellcode:
ProgressBar1.Visible := True;
Timer1.Enabled := True;
MyStringGrid.Sort;
Timer1.Enabled := False;
ProgressBar1.Visible := False;
,
und im OnTimer-event lässt du dann einfach die progrssbar immer weiter laufen (bzw. zurücksetzen wenn sie den maximalwert erreicht hat).
wenn du wirklich willst, dass die progressbar den tatsächlichen fortschritt des sortierens zurückgibt, wirst du selber den sortieralgo schreiben müssen. wobei ich nicht glaube dass man z.b. beim QuickSort einen eindeutigen Fortschritt angeben kann (bei Bubblesort sollte das gehen, aber der wird wohl etwas zu langsam sein, oder?)
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.