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

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

?? tclfrm.pas

?? VC++實現(xiàn)的時間同步程序
?? PAS
字號:
{ ************************************************************************

   NetTime is copyrighted by Graham Mainwaring. Permission is hereby
   granted to use, modify, redistribute and create derivative works
   provided this attribution is not removed. I also request that if you
   make any useful changes, please e-mail the diffs to graham@mhn.org
   so that I can include them in an 'official' release.

  ************************************************************************ }

unit tclfrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, trayicon, Menus, Buttons, ExtCtrls, NetTimeCommon,
  About, Options, NetTimeThread, NetTimeClient;

type
  TfrmMain = class(TForm)
    lblTime: TLabel;
    lblGoodness: TLabel;
    lblLastSync: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    mnuTray: TPopupMenu;
    Properties1: TMenuItem;
    N1: TMenuItem;
    About1: TMenuItem;
    Exit1: TMenuItem;
    imgBad: TImage;
    imgGood: TImage;
    btnSettings: TButton;
    Timer1: TTimer;
    Button1: TButton;
    lblSource: TLabel;
    btnUpdateNow: TButton;
    UpdateNow1: TMenuItem;
    imgWarn: TImage;
    lblServer1: TLabel;
    lblServer2: TLabel;
    lblServer3: TLabel;
    lblServer4: TLabel;
    lblServer5: TLabel;
    Label8: TLabel;
    btnStop: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Exit1Click(Sender: TObject);
    procedure Properties1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure btnSettingsClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormHide(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnUpdateNowClick(Sender: TObject);
    procedure UpdateNow1Click(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
  private
    StopOnTimer: boolean;
    ServerLabels: array[0..MaxServers-1] of TLabel;
    procedure WMEndSession(var Msg: TWmEndSession); message WM_ENDSESSION;
  public
    tt: TNetTimeServerBase;
    ti: TTrayIcon;
    procedure DoAppStartup;
    procedure TimeStateChange(Sender: TObject);
    function WarnAdjust(const Sender: TObject;
      const ServerTime, StationTime: TDateTime): boolean;
    procedure DoExitNow(Sender: TObject);
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

uses Warning, timewrap, iswinnt, mutex;

procedure TfrmMain.DoAppStartup;

var
  frmOpt: TfrmOptions;

begin
  ti := TTrayIcon.Create(Application);
  ti.ToolTip := 'Network Time Synchronization';
  ti.PopupMenu := mnuTray;
  ti.Icon := imgBad.Picture.Icon;
  ti.OnDblClick := Properties1Click;
  ti.Active := true;

  if GetExclusivity(ExNameServer) then
    begin
      lblSource.Caption := 'Server Type: In-Process Thread';
      lblSource.Visible := true;
      btnStop.Visible := false;
      tt := TNetTimeServer.Create;
      frmOpt := TfrmOptions.Create(Application);
      frmOpt.ReadFromRegistry;
      frmOpt.tt := tt;
      if (frmOpt.edHostname.Text = '') then
        frmOpt.ShowModal;
      if (frmOpt.edHostname.Text = '') then
        raise Exception.Create('Hostname not specified. Application cannot start.');
      frmOpt.WriteToRunning(tt);
      frmOpt.Release;
      (tt as TNetTimeServer).Start;
    end
  else
    begin
      lblSource.Caption := 'Server Type: Out-Of-Process Service';
      lblSource.Visible := true;
      btnStop.Left := lblSource.Left + lblSource.Width + 10;
      btnStop.Visible := true;
      tt := TNetTimeProxy.Create;
    end;
  tt.OnWarnAdj := WarnAdjust;
  tt.OnStateChange := TimeStateChange;
  tt.OnExitNow := DoExitNow;
  tt.ForceUpdate;
  TimeStateChange(Self);
end;

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
  Self.Hide;
end;

procedure TfrmMain.Exit1Click(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TfrmMain.Properties1Click(Sender: TObject);
begin
  Self.Show;
end;

procedure TfrmMain.BitBtn1Click(Sender: TObject);
begin
  Self.Hide;
end;

procedure TfrmMain.About1Click(Sender: TObject);

var
  fA: TfrmAbout;

begin
  fA := TfrmAbout.Create(Application);
  fA.ShowModal;
  fA.Release;
end;

procedure TfrmMain.btnSettingsClick(Sender: TObject);

var
  fO: TfrmOptions;

begin
  fO := TfrmOptions.Create(Application);
  fO.tt := tt;
  fO.ShowModal;
  fO.Release;
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
  Timer1.Enabled := true;
  TimeStateChange(Sender);
end;

procedure TfrmMain.TimeStateChange(Sender: TObject);

var
  tip: string;
  i: integer;
  AllGood: boolean;

begin
  try
    tip := 'Network Time Synchronization';
    if tt.LastUpdateTime = 0 then
      lblLastSync.Caption := 'No synchronization yet'
    else
      begin
        lblLastSync.Caption := datetimetostr(tt.LastUpdateTime);
        tip := tip + #13#10 + 'Last Sync: '+datetimetostr(tt.LastUpdateTime);
      end;
    if (tt.Status.Synchronized) then
      begin
        lblGoodness.Caption := 'Time is synchronized.';
        AllGood := true;
        for i := 0 to MaxServers-1 do
          if not (tt.Status.ss[i] in [ssGood, ssUnconfigured]) then
            AllGood := false;
        if AllGood then
          ti.Icon := imgGood.Picture.Icon
        else
          ti.Icon := imgWarn.Picture.Icon;
      end
    else
      begin
        lblGoodness.Caption := 'CLOCK SYNC LOST!';
        tip := tip + #13#10 + lblGoodness.Caption;
        ti.Icon := imgBad.Picture.Icon;
      end;
    for i := 0 to MaxServers-1 do
      begin
        if tt.Status.ss[i] = ssGood then
          ServerLabels[i].Caption := 'Good'
        else if tt.Status.ss[i] = ssFailed then
          ServerLabels[i].Caption := 'Failed'
        else if tt.Status.ss[i] = ssWrong then
          ServerLabels[i].Caption := 'Wrong'
        else
          ServerLabels[i].Caption := '';
        if ServerLabels[i].Caption <> '' then
          ServerLabels[i].Caption := tt.Config.Servers[i].Hostname + ': ' +
            ServerLabels[i].Caption;
      end;
    ti.ToolTip := tip;
    if IsWindowsNT then
      SetProcessWorkingSetSize(GetCurrentProcess,$ffffffff,$ffffffff);
  except
  end;
end;

function TfrmMain.WarnAdjust(const Sender: TObject;
  const ServerTime, StationTime: TDateTime): boolean;

var
  fW: TfrmWarning;

begin
  fW := TfrmWarning.Create(Application);
  fW.lblServerTime.Caption := datetimetostr(ServerTime);
  fW.lblStationTime.Caption := datetimetostr(StationTime);
  fW.ShowModal;
  result := not fW.rbnShutdown.Checked;
  fw.Free;
end;

procedure TfrmMain.DoExitNow(Sender: TObject);
begin
  StopOnTimer := true;
  Timer1.Interval := 50;
  Timer1.Enabled := true;
end;

procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
  if StopOnTimer then
    begin
      Timer1.Enabled := false;
      if tt is TNetTimeServer then
        (tt as TNetTimeServer).Stop;
      tt.Free;
      ti.Free;
      Application.Terminate;
    end
  else
    lblTime.Caption := datetimetostr(Now);
end;

procedure TfrmMain.FormHide(Sender: TObject);
begin
  Timer1.Enabled := false;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
  Self.Hide;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  ServerLabels[0] := lblServer1;
  ServerLabels[1] := lblServer2;
  ServerLabels[2] := lblServer3;
  ServerLabels[3] := lblServer4;
  ServerLabels[4] := lblServer5;
  StopOnTimer := false;
end;

procedure TfrmMain.btnUpdateNowClick(Sender: TObject);
begin
  Screen.Cursor := crHourglass;
  try
    if not tt.UpdateNow then
      ShowMessage('Error: Could not update.');
  finally
    Screen.Cursor := crDefault;
  end;
end;

procedure TfrmMain.UpdateNow1Click(Sender: TObject);
begin
  if tt.UpdateNow then
    ShowMessage('Update successful. The time is now '+DateTimeToStr(Now))
  else
    ShowMessage('Error: Could not update.');
end;

procedure TfrmMain.WMEndSession(var Msg: TWmEndSession);
begin
  Application.Terminate;
end;

procedure TfrmMain.btnStopClick(Sender: TObject);
begin
  if MessageDlg('This shut down the currently running service and exit '+
    'NetTime. Are you sure you want to do this?', mtInformation,
    [mbYes,mbNo], 0) = mrYes then
    tt.KillEverything;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性猛交xxxx乱大交退制版| 精品一区二区三区免费播放| 99精品视频一区二区| 国产精品私人自拍| 99久久精品费精品国产一区二区| 亚洲色图另类专区| 在线区一区二视频| 午夜在线电影亚洲一区| 欧美va亚洲va国产综合| 国精品**一区二区三区在线蜜桃| 国产欧美一区二区三区网站| av电影在线不卡| 亚洲一区精品在线| 日韩欧美国产一区在线观看| 国产成人在线免费观看| 综合久久给合久久狠狠狠97色| 欧美在线你懂的| 黄色成人免费在线| 综合av第一页| 日韩一级免费一区| 不卡的av网站| 蜜臀va亚洲va欧美va天堂| 国产亚洲欧洲一区高清在线观看| 91网站黄www| 久久精品噜噜噜成人av农村| 欧美成人a视频| a在线欧美一区| 日韩电影网1区2区| 欧美激情艳妇裸体舞| 欧美亚洲一区三区| 国产很黄免费观看久久| 亚洲成av人综合在线观看| 精品国产髙清在线看国产毛片| 99久久久国产精品免费蜜臀| 老司机精品视频一区二区三区| 欧美经典一区二区三区| 欧美喷潮久久久xxxxx| 东方aⅴ免费观看久久av| 亚洲国产成人va在线观看天堂| 久久九九国产精品| 欧美日韩国产片| 色综合久久久久综合体桃花网| 久久99精品一区二区三区| 亚洲最大色网站| 日本一区二区三区在线不卡| 日韩一区二区电影网| 在线视频综合导航| 成熟亚洲日本毛茸茸凸凹| 久久精品国产久精国产| 亚洲福利视频三区| 中文字幕日本乱码精品影院| 2021国产精品久久精品| 5858s免费视频成人| 91久久国产最好的精华液| 国产精品1区二区.| 裸体在线国模精品偷拍| 亚洲成人免费电影| 一区二区三区在线视频播放| 国产精品国产自产拍高清av王其 | 97超碰欧美中文字幕| 激情五月播播久久久精品| 婷婷开心激情综合| 亚洲精选视频免费看| 国产精品国产自产拍高清av王其| xnxx国产精品| 久久久.com| 久久综合色婷婷| 亚洲精品一区二区三区蜜桃下载| 欧美一区二区视频在线观看2020 | 日韩欧美的一区| 欧美日韩免费高清一区色橹橹| 色综合天天综合网天天看片| www.日韩av| www.日本不卡| 色综合久久久网| 在线亚洲高清视频| 欧美影院一区二区三区| 欧美日韩视频专区在线播放| 欧美三级三级三级爽爽爽| 欧美在线视频日韩| 欧美视频在线观看一区二区| 精品视频123区在线观看| 在线日韩一区二区| 欧美日韩视频在线第一区| 欧美久久久久免费| 日韩一区二区影院| 久久婷婷综合激情| 精品国产第一区二区三区观看体验| 日韩欧美精品在线| 国产亚洲精品7777| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产三级精品视频| 欧美国产丝袜视频| 国产精品无遮挡| 亚洲精品免费在线观看| 亚洲午夜精品一区二区三区他趣| 亚洲国产日韩精品| 蜜臀久久99精品久久久久久9| 精品一区二区三区av| 国产精品夜夜爽| 91亚洲精品乱码久久久久久蜜桃| 在线观看成人免费视频| 欧美一区二区三区免费观看视频 | 丝袜美腿高跟呻吟高潮一区| 美女视频一区二区| 国产91精品露脸国语对白| 99精品欧美一区二区三区小说| 欧美中文字幕一区二区三区亚洲| 日韩一区二区免费视频| 国产精品素人一区二区| 亚洲不卡一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 国产福利视频一区二区三区| 色婷婷久久一区二区三区麻豆| 欧美日韩国产在线播放网站| xnxx国产精品| 一区二区成人在线观看| 国产永久精品大片wwwapp| 99久久精品免费看国产| 日韩三级在线免费观看| 国产精品久久免费看| 视频一区中文字幕国产| 盗摄精品av一区二区三区| 欧美精选一区二区| 国产精品美女久久久久久| 偷拍与自拍一区| 不卡免费追剧大全电视剧网站| 欧美精品v国产精品v日韩精品| 欧美极品xxx| 男人的j进女人的j一区| eeuss鲁一区二区三区| 日韩女优电影在线观看| 亚洲第一电影网| 99视频超级精品| 日韩免费成人网| 亚洲大尺度视频在线观看| 97久久精品人人爽人人爽蜜臀| 日韩欧美一级二级三级 | 日韩精品一级中文字幕精品视频免费观看 | 蜜臀va亚洲va欧美va天堂| 成人精品在线视频观看| 欧美成人一区二区三区| 亚洲一区二区三区激情| 成人免费高清视频在线观看| 亚洲精品一区二区精华| 青青草97国产精品免费观看| 欧洲一区二区av| 国产精品国产三级国产普通话三级 | 国产精品一区在线观看你懂的| 欧美三级资源在线| 一区二区三区资源| 大胆亚洲人体视频| 久久免费视频色| 韩国成人在线视频| 7777精品伊人久久久大香线蕉超级流畅| 亚洲人成在线观看一区二区| 国产aⅴ精品一区二区三区色成熟| 日韩精品一区二区三区在线播放| 午夜精品福利一区二区蜜股av| 在线观看视频一区| 亚洲激情中文1区| 色婷婷久久一区二区三区麻豆| 中文字幕一区二区在线播放| 国产成人av电影免费在线观看| 久久嫩草精品久久久精品 | 国产a精品视频| 欧美国产一区在线| 成人爱爱电影网址| 国产精品热久久久久夜色精品三区| 国产精品99久久久久久有的能看 | 欧美久久久久免费| 日本欧美韩国一区三区| 日韩欧美一区在线观看| 日韩va欧美va亚洲va久久| 制服丝袜中文字幕一区| 日产欧产美韩系列久久99| 日韩一区二区高清| 国产成人综合在线播放| 国产欧美精品一区二区三区四区 | 国产一区二区三区免费看| 久久综合色一综合色88| 成人激情综合网站| 一区二区三区影院| 欧美三级日韩在线| 久久精品久久99精品久久| 久久综合色鬼综合色| 成人在线视频一区| 亚洲日本一区二区| 欧美日韩中字一区| 麻豆freexxxx性91精品| 国产日产欧美精品一区二区三区| 99这里只有久久精品视频| 亚洲成人午夜电影| 久久日韩粉嫩一区二区三区| 99re视频精品| 日韩精品成人一区二区三区| 2020日本不卡一区二区视频| 91网站最新地址| 蜜臀av国产精品久久久久| 国产亚洲精品精华液|