亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? itigprogressknown.pas

?? autoupdate 1.02 source code
?? PAS
字號:
unit ItigProgressKnown;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, ExtCtrls, Progress, syncobjs, ItigNet;

type

  TItigProgressKnown = class(TForm, IUnknown, IProgress)
    Panel1: TPanel;
    Image1: TImage;
    lblMessage: TLabel;
    lblTime: TLabel;
    tmrTiming: TTimer;
    cmdAct: TButton;
    prProgress: TProgressBar;
    lblPercent: TLabel;
    procedure tmrTimingTimer(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure cmdActClick(Sender: TObject);
  private
    totalActions: Integer;
    doneActions: Integer;
    showTime: Boolean;

    start: TDateTime;
    ivInfo: TItigNet;

    ivAutoClose: Boolean;
    ivTimeReached: Boolean;
    ivDoClose: Boolean;
    ivCanClose: Boolean;

    ivPhases: Integer;
    ivCurrentPhase: Integer;
    ivIsPhased: Boolean;
    ivAction : String;

    ivCancelled: Boolean;
    ThreadWorking : Boolean;

  public

   ActionDescription : String;

    property AutoClose : Boolean read ivAutoClose write ivAutoClose;

    procedure setNoActions(toVal: Integer);
    procedure actionDone();
    procedure SetPos(n : Integer);
    procedure setMessage(msg: String);
    procedure showProgress(b: Boolean);

    procedure OnThreadComplete(var Message: TMessage); message WM_THREAD_COMPLETE;

    procedure Execute(Action: String; toInfo: TItigNet);

    procedure SetInfo(toInfo: TItigNet);
    property Info: TItigNet Write setInfo;

    property ShowET: Boolean read showTime write showTime;
    function GetHandle : hWnd;
    function IsCancelled: Boolean;
    procedure Done;

    procedure PhaseDone;
    procedure SetPhases(noPhases: integer);

  end;

var
  ProgressKnown: TItigProgressKnown;

implementation

uses AutoUpdate;

{$R *.DFM}

procedure TItigProgressKnown.actionDone();
begin
   doneActions := doneActions + 1;
   if TotalActions > 0 then
   begin
      lblPercent.Caption := format('%2.0f%%', [(doneActions / totalActions )*100]);
   end;
   prProgress.Position := doneActions;
end;

procedure TItigProgressKnown.SetPos(n : Integer);
begin
   doneActions := n;
   if TotalActions > 0 then
   begin
      lblPercent.Caption := format('%2.0f%%', [(doneActions / totalActions )*100]);
   end;
   prProgress.Position := n;
end;

procedure TItigProgressKnown.setNoActions(toVal: Integer);
begin
   totalActions := toVal;
   doneActions := 0;
   start := Now;

   prProgress.Max := totalActions;
   prProgress.Step := 1;
   prProgress.Position := 0;

   lblTime.Caption := 'Estimated time remaining...';
end;

procedure TItigProgressKnown.tmrTimingTimer(Sender: TObject);
var
    actRem: Integer;
    currTime, remTime: Double;
    timePerAction: Double;
    h, m, s: Integer;
begin

   if not ivTimeReached then
   begin
      ivTimeReached := true;
      if ivDoClose then
      begin
         ModalResult := mrOk;
         Exit;
      end;
   end;

   if Not((totalActions <= 0) or (doneActions = 0) or (totalActions = doneActions)) then
   begin
      currTime := (Now - start) * 86400; //24 * 60 * 60
      lblTime.Caption := 'Estimated time remaining...';
      timePerAction := currTime / doneActions;
      actRem := totalActions - doneActions;
      remTime := timePerAction * actRem;

      if (actRem / totalActions) < 0.98 then
      begin
         h := Trunc(remTime / 1440); //24 * 60
         remTime := remTime - (h * 1440);
         m := Trunc(remTime / 60);
         remTime := remTime - (m * 60);
         s := Trunc(remTime);
         lblTime.Caption := 'Estimated time remaining ' + format('%.2d', [h]) + ':' + format('%.2d', [m]) + ':' + format('%.2d', [s]);
      end;

      tmrTiming.Interval := Trunc((currTime * 1000) / 20);
      if tmrTiming.Interval < 1000 then tmrTiming.Interval := 1000;
   end;
end;

procedure TItigProgressKnown.setMessage(msg: String);
begin
   if ivIsPhased then
   begin
      lblMessage.Caption := format('Stage %d of %d: %s', [ivCurrentPhase, ivPhases, msg]);
   end
   else
   begin
      lblMessage.Caption := msg;
   end;
end;

procedure TItigProgressKnown.OnThreadComplete(var Message: TMessage);
begin
   ivInfo.GotMessage;
   
   ThreadWorking := False;

   ivCanClose := true;
   cmdAct.enabled := true;

   if ivInfo.GetResult = irTryAgain then
   begin
      if ivInfo.GetErrorMsg = '' then
      begin
               // retry somehow...
               ivInfo.ResultCode := irReady;

               ivDoClose := false;
               ivTimeReached := false;

               ThreadWorking := True;
               ivCanClose := False;
               ivCancelled := False;

                totalActions := 0;
                doneActions := 0;

               ivInfo.BeginExecute(ivAction, self);
               exit;
      end
      else
      begin
         // for now assume that we need to install the cert.
         if MessageDlg('Before you can use the Info-In.com client software you must install the server certificate.  This is used to guarantee the security of your connection to the Info-In.com server.  Do you wish to install the certificate?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
         begin
            // retry somehow...
            MessageDlg('Once the certificate is installed, click OK to continue', mtInformation, [mbOK], 0);
            ivInfo.ResultCode := irReady;

            ivDoClose := false;
            ivTimeReached := false;

            ThreadWorking := True;
            ivCanClose := False;
            ivCancelled := False;

             totalActions := 0;
             doneActions := 0;

            ivInfo.BeginExecute(ivAction, self);
            exit;
         end
         else
         begin
            if MessageDlg('It is possible to run the Info-In.com client in low security mode.  This means that it is harder to guarantee that the Info-In.com server is who it says it is.  Do you wish to run in low security mode?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
            begin
               ivInfo.Option.LowSecurity := True;
               //ivInfo.Option.SaveInternet;

               // retry somehow...
               ivInfo.ResultCode := irReady;

               ivDoClose := false;
               ivTimeReached := false;

               ThreadWorking := True;
               ivCanClose := False;
               ivCancelled := False;

                totalActions := 0;
                doneActions := 0;

               ivInfo.BeginExecute(ivAction, self);
               exit;
            end
            else
            begin
               ivInfo.ResultCode := irError;
            end;
         end;
      end;
   end;

   if (ivInfo.GetResult = irError)  then
   begin
      ivInfo.Debug('Error Message: ' + ivInfo.GetErrorMsg);
      ivInfo.ThreadComplete(Message);
      MessageDlg(ivInfo.GetErrorMsg, mtError, [mbOk], 0);

      ModalResult := mrCancel;
   end
   else if (ivInfo.GetResult = irCancel) then
   begin
      MessageDlg('Operation cancelled at user request', mtInformation, [mbOK], 0);
      ivInfo.Debug('Process Cancelled');
      ivInfo.ThreadComplete(Message);

      ModalResult := mrCancel;
   end
   else
   begin
      //ivInfo.Debug('Done Message');
      ivInfo.ThreadComplete(Message);
      SetPos(totalActions);

      if AutoClose then
      begin
         cmdAct.enabled := false;
         if ivTimeReached then
         begin
            ModalResult := mrOK;
         end
         else
         begin
            ivDoClose := true;
         end;
      end;
   end;
end;

procedure TItigProgressKnown.Execute(Action: String; toInfo: TItigNet);
begin
   try
      ivDoClose := false;
      ivTimeReached := false;
      ivAction := Action;

      SetInfo(toInfo);
      ThreadWorking := True;
      ivCanClose := False;
      ivCancelled := False;
      toInfo.Debug('BeginExecute' );
      ivInfo.BeginExecute(Action, self);
      toInfo.Debug('Show Modal' );
      ShowModal;
      toInfo.Debug('Show Modal Done');
   except
      on E : Exception do
      begin
         toInfo.Debug('There was an exception ' + E.Message);
      end;
   end;
end;

procedure TItigProgressKnown.SetInfo(toInfo: TItigNet);
begin
    ivInfo := toInfo;
end;

procedure TItigProgressKnown.showProgress(b:Boolean);
begin
    prProgress.visible := b;
    lblTime.visible := b;
    lblPercent.visible := b;
end;

function TItigProgressKnown.GetHandle : hWnd;
begin
   Result := Handle;
end;

procedure TItigProgressKnown.Done;
begin
   cmdAct.Caption := '&Ok';
   cmdAct.ModalResult := mrOk;

   lblTime.Caption := ActionDescription + 'Complete';
   lblPercent.Caption := '100%';

   if not AutoClose then
   begin
      Beep;
   end;

   if totalActions = 0 then
   begin
      setNoActions(1);
   end;
   SetPos(totalActions);

end;

procedure TItigProgressKnown.PhaseDone;
begin
   ivCurrentPhase := ivCurrentPhase + 1;
   setNoActions(100);
end;

procedure TItigProgressKnown.SetPhases(noPhases: integer);
begin
   ivIsPhased := true;
   ivPhases := noPhases;
   ivCurrentPhase := 1;
end;

procedure TItigProgressKnown.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   CanClose := ivCanClose;
end;

procedure TItigProgressKnown.FormCreate(Sender: TObject);
var
   ResName : String;
   hInst : HMODULE;
begin
   try
      with Owner as TAutoUpdate do
      begin
         ResName := ResourceName;

         if Length(ResName) > 0 then
         begin
            // get the instance of the app we are upgrading....
            if Length(ResourceImage) > 0 then
            begin
               hInst := LoadLibraryEx(PChar(ResourceImage), 0, LOAD_LIBRARY_AS_DATAFILE);
               try
                  Image1.Picture.Bitmap.LoadFromResourceName(hInst, ResName);
               finally
                  FreeLibrary(hInst);
               end;
            end
            else
            begin
               Image1.Picture.Bitmap.LoadFromResourceName(hInstance, ResName);
            end;
         end;
      end;
   except
   end;

   ivIsPhased := false;
   ivCanClose := True;
   ivAutoClose := true;
   ThreadWorking := False;
   ivPhases := 0;
end;

procedure TItigProgressKnown.cmdActClick(Sender: TObject);
begin
   cmdAct.Enabled := false;
   ivCancelled := true;
   ivInfo.Debug('Cancel' );
end;

function TItigProgressKnown.IsCancelled: Boolean;
begin
   Result := ivCancelled;
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡一二三区| 高清国产一区二区三区| 亚洲综合色区另类av| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久精品免费看| 99re这里都是精品| 99视频一区二区三区| 国产99精品视频| 91国偷自产一区二区三区成为亚洲经典 | 在线观看视频一区| 这里只有精品免费| 国产精品不卡在线观看| 日韩电影一二三区| 成人av电影免费观看| 91精品久久久久久久91蜜桃| 国产日韩欧美精品一区| 日韩综合一区二区| 91同城在线观看| 久久品道一品道久久精品| 一区2区3区在线看| 丁香激情综合五月| 欧美成人欧美edvon| 亚洲一区二区三区四区在线观看 | 成人h版在线观看| 欧美男男青年gay1069videost| 久久久久亚洲蜜桃| 日韩在线观看一区二区| 91免费视频网址| 欧美韩国日本综合| 精品一区二区三区久久| 欧美日韩情趣电影| 一区二区三区在线观看国产| 成人小视频免费在线观看| 久久综合久久久久88| 日韩成人精品在线观看| 欧美日韩亚洲综合在线| 国产精品美女久久久久aⅴ| 奇米影视7777精品一区二区| 在线观看视频欧美| 亚洲美女屁股眼交3| hitomi一区二区三区精品| 欧美激情一区在线观看| 国产成人免费在线视频| 久久综合色婷婷| 久久精品国产精品亚洲综合| 日韩午夜三级在线| 美腿丝袜亚洲三区| 欧美一区二区三区免费视频| 亚洲成人在线观看视频| 欧美日韩视频在线一区二区| 亚洲一区在线观看免费 | 国产精品伦一区二区三级视频| 亚洲电影第三页| 欧美日韩黄色一区二区| 午夜亚洲国产au精品一区二区| 欧美日韩亚洲国产综合| 亚洲va欧美va人人爽| 欧美绝品在线观看成人午夜影视| 午夜一区二区三区在线观看| 欧美日韩一区二区欧美激情| 天堂蜜桃一区二区三区| 日韩精品在线看片z| 国产另类ts人妖一区二区| 欧美激情一区二区在线| 99久久精品免费精品国产| 中文字幕日韩一区| 欧美色偷偷大香| 免费欧美在线视频| 久久精品亚洲麻豆av一区二区| 成人免费看视频| 一区二区三区鲁丝不卡| 91精品久久久久久久91蜜桃| 国产精品资源在线观看| 成人欧美一区二区三区白人| 欧美午夜电影在线播放| 麻豆国产精品一区二区三区| 国产精品视频yy9299一区| 在线国产电影不卡| 亚洲444eee在线观看| 日韩一区二区高清| 99久久精品国产导航| 午夜a成v人精品| 国产欧美一区二区精品性色| 在线一区二区三区四区| 韩国v欧美v日本v亚洲v| 亚洲欧洲综合另类在线| 欧美电影免费观看完整版| 91在线你懂得| 久久精品久久综合| 亚洲精品国产a久久久久久| 91精品国产综合久久香蕉麻豆| 国产河南妇女毛片精品久久久 | 首页国产丝袜综合| 日本一区二区高清| 91精品一区二区三区久久久久久| 国产激情偷乱视频一区二区三区| 亚洲一区影音先锋| 久久精品欧美一区二区三区不卡 | 亚洲欧美日韩精品久久久久| 日韩亚洲欧美一区二区三区| av影院午夜一区| 国产一区二区成人久久免费影院| 自拍偷在线精品自拍偷无码专区| 欧美日韩激情一区二区| 99久久精品免费| 国产一区二区三区最好精华液| 激情综合色综合久久| 欧美一区二区福利在线| 色婷婷久久综合| 国产麻豆视频一区| 日本亚洲三级在线| 亚洲国产aⅴ成人精品无吗| 国产精品对白交换视频| 久久久久久久久免费| 日韩一区二区在线免费观看| 欧美吻胸吃奶大尺度电影| 91影院在线观看| 成人久久久精品乱码一区二区三区| 亚洲午夜免费福利视频| 亚洲免费视频成人| 亚洲精品你懂的| 亚洲天堂av老司机| 亚洲欧美日韩成人高清在线一区| 国产欧美日韩三级| 久久久精品影视| 精品av综合导航| 久久一二三国产| 日韩欧美成人一区| 日韩一卡二卡三卡| 欧美第一区第二区| 日韩女同互慰一区二区| 日韩一区二区三区在线视频| 7777精品伊人久久久大香线蕉| 色婷婷综合中文久久一本| 91麻豆国产福利精品| 99精品视频在线免费观看| 91玉足脚交白嫩脚丫在线播放| 色欲综合视频天天天| 在线亚洲人成电影网站色www| 在线亚洲精品福利网址导航| 欧洲中文字幕精品| 717成人午夜免费福利电影| 日韩欧美一级二级三级| 久久免费美女视频| 国产精品久久夜| 一区二区三区四区不卡在线| 亚洲伊人色欲综合网| 日本三级韩国三级欧美三级| 日日欢夜夜爽一区| 国产一区二区三区久久悠悠色av| 国产精品主播直播| 国产精品99久久久久久宅男| 本田岬高潮一区二区三区| 91久久香蕉国产日韩欧美9色| 欧美日韩视频在线第一区| 精品日韩在线观看| 欧美高清在线视频| 日韩中文字幕1| eeuss影院一区二区三区| 5858s免费视频成人| 亚洲欧洲日韩女同| 久久精品国产亚洲一区二区三区| 成人精品一区二区三区四区| 欧美一区二区福利在线| 亚洲精品少妇30p| 国产精品白丝jk黑袜喷水| 精品视频在线看| 中文字幕永久在线不卡| 精品一区二区综合| 777xxx欧美| 亚洲一区二区三区四区中文字幕| 成人综合在线观看| 精品免费视频.| 视频一区二区三区中文字幕| 99riav久久精品riav| 国产色一区二区| 精品一区二区三区视频在线观看| 欧洲一区二区av| 亚洲免费观看高清| zzijzzij亚洲日本少妇熟睡| 亚洲精品一线二线三线| 日韩精品电影一区亚洲| 在线一区二区观看| 一区二区在线免费| 99天天综合性| 最新国产の精品合集bt伙计| 国产东北露脸精品视频| 亚洲精品一区二区在线观看| 久久国产免费看| 日韩三级视频在线观看| 肉色丝袜一区二区| 99精品偷自拍| 国产精品国产三级国产三级人妇| 激情另类小说区图片区视频区| 欧美一区二区在线观看| 日韩精品电影在线观看| 91精品国产色综合久久ai换脸| 亚洲一区在线观看免费| 精品婷婷伊人一区三区三| 亚洲在线免费播放|