type tProgressFunction = Function (relativeProgress : real):real; {- - - - - - - - - - - - - - - - - - -'- - - - - - - - - - - - - - - - - - - - } {- -} TYPE tNameAndValues = class(tObject) {- -} {- - - - - - - - - - - - - - - - - - -'- - - - - - - - - - - - - - - - - - - - } constructor create; destructor destroy; PRIVATE PUBLIC name : string; startValue : integer; endValue : integer; currentValue : integer; individualProgressFunction : tProgressFunction; end; {class tNameAndValues} {- - - - - - - - - - - - - - - - - - -'- - - - - - - - - - - - - - - - - - - - } {- -} TYPE tInterpolater = class(tObject) {- -} {- - - - - - - - - - - - - - - - - - -'- - - - - - - - - - - - - - - - - - - - } constructor create; destructor destroy; PRIVATE startTime : tDateTime; nameAndValuesList : tList; status : tInterpolationStatus; PUBLIC duration : real; finished : Boolean; genericProgressFunction : tProgressFunction; PROCEDURE add ( name : string ; startVal, endVal : integer); overload; PROCEDURE add ( name : string ; startVal, endVal : integer ; progressFunction : tProgressFunction ); overload; FUNCTION get ( name : string) : integer; PROCEDURE reset ; PROCEDURE run ; end; {class interpolater}