2003.10.22 (水) 07:29:03 <u*j*2*6*> shuusei21191,211100と同じです。ユーザーリストの自動更新ができるようになりました
2003.10.22 (水) 07:29:13 <u*j*2*6*> サーバーリストの更新間隔の設定は設定→Other3からOther4に移しました
2003.10.22 (水) 07:30:40 <u*j*2*6*> どちらも更新間隔は5〜600秒の間で5秒刻みでかえられます。
shuusei24198:ユーザーリストとサーバーリストの自動更新の設定(24142,21191,211100参照, source by Heracules)

diff --dos -ur 24197/constants.pas 24198/constants.pas
--- 24197/constants.pas	Tue Oct 21 22:47:54 2003
+++ 24198/constants.pas	Wed Oct 22 00:55:30 2003
@@ -27,8 +27,8 @@
  SLAVANAP_VERSION             = '2.4.1';
  SLAVANAP_BUILD               = '108';
  SLAVANAP_BUILD_DATE          = '24 January 2003';
- SLAVANAP_SHUUSEI             = '97';
- SLAVANAP_SHUUSEI_DATE        = '21 October 2003';
+ SLAVANAP_SHUUSEI             = '98';
+ SLAVANAP_SHUUSEI_DATE        = '22 October 2003';
  SLAVANAP_VERSION_SHORT       = SLAVANAP_TITLE+' '+SLAVANAP_VERSION;
  SLAVANAP_FULL                = SLAVANAP_TITLE+' '+SLAVANAP_VERSION+
                                 ' (build '+SLAVANAP_BUILD+
diff --dos -ur 24197/english.lng 24198/english.lng
--- 24197/english.lng	Tue Oct 21 22:46:26 2003
+++ 24198/english.lng	Wed Oct 22 02:04:34 2003
@@ -7,7 +7,7 @@
 Version=2.4.1
 Comments=Original file by SlavaNap development team
 BUILD=108
-SHUUSEI=97
+SHUUSEI=98
 
 [Log]
 SERVER_INIT=Starting $1
@@ -202,6 +202,8 @@
 LIST_BTN_MUZZLED=Muzzled only
 LIST_BTN_LOCAL=Local users
 LIST_BTN_REMOTE=Remote users
+LIST_BTN_AUTOREFRESH=Auto-refresh every
+LIST_LBL_AUTOREFRESH=sec.
 LIST_BTN_KICK=Kill
 LIST_BTN_NUKE=Nuke (delete)
 LIST_BTN_MUZZLE=Muzzle / unmuzzle
@@ -393,7 +395,8 @@
 SBTN_DELETE=Delete
 SBTN_ADD=Add server
 SBTN_PROPS=Properties
-SBTN_AUTOREFRESH=Auto-refresh every $1 sec.
+SBTN_AUTOREFRESH=Auto-refresh every
+SLBL_AUTOREFRESH=sec.
 SHOST_HINT=Enter server's host name you want to add to list. (server_host or server_host:port)
 SMENU_REFRESH=&Refresh
 SMENU_CONNECT2=&Connect
@@ -964,7 +967,6 @@
 S_SHOTHER3_LABEL156                        =channel:
 S_SHOTHER3_LABEL157                        =password:
 S_SHOTHER3_LABEL158                        =hit
-S_SHOTHER3_LABEL159                        =per sec
 S_SHOTHER3_GROUPBOX1                       =Bot which send IM to login user
 S_SHOTHER3_CB_ENABLE_LOGINIM               =Bot name:
 S_SHOTHER3_LABEL155                        =Enable bot
@@ -973,7 +975,6 @@
 S_SHOTHER3_CB_CHECK_LOGINPASS              =Specify login password
 S_SHOTHER3_CB_ENABLE_MSGSERV               =Enable MsgServ
 S_SHOTHER3_CB_RESTRICT_HITPERUSER          =Restrict same user's hitcount at search
-S_SHOTHER3_CB_REFRESH_SERVERS              =Autorefresh serverlist
 S_SHOTHER3_RD_XBUTTON_ATTR                 =Attribute of 'X' button
 S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1          =Later
 S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2          =Shut down
@@ -992,6 +993,10 @@
 S_SHOTHER4_CB_BLOCK_REGNESSEM              =Regnessem
 S_SHOTHER4_LABEL163                        =Log folder of server.log:
 S_SHOTHER4_LABEL165                        =resolve this number of remote hosts at a time:
+S_SHOTHER4_CB_REFRESH_USERS                =Autorefresh userlist every
+S_SHOTHER4_LABEL166                        =per sec
+S_SHOTHER4_CB_REFRESH_SERVERS              =Autorefresh serverlist every
+S_SHOTHER4_LABEL159                        =per sec
 
 [UserMode]
 CAPTION=Console User Mode
diff --dos -ur 24197/japanese.lng 24198/japanese.lng
--- 24197/japanese.lng	Tue Oct 21 22:39:30 2003
+++ 24198/japanese.lng	Wed Oct 22 02:04:32 2003
@@ -7,7 +7,7 @@
 Version=2.4.1.108
 Comments=Translated by usj12262@hotmail.com
 BUILD=108
-SHUUSEI=97
+SHUUSEI=98
 
 [Log]
 SERVER_INIT=$1を起動中…
@@ -202,6 +202,8 @@
 LIST_BTN_MUZZLED=発言禁止のみ
 LIST_BTN_LOCAL=ローカルユーザー
 LIST_BTN_REMOTE=リモートユーザー
+LIST_BTN_AUTOREFRESH=自動更新
+LIST_LBL_AUTOREFRESH=秒毎
 LIST_BTN_KICK=切断する
 LIST_BTN_NUKE=アカウント削除
 LIST_BTN_MUZZLE=発言禁止/許可
@@ -393,7 +395,8 @@
 SBTN_DELETE=削除
 SBTN_ADD=サーバーを追加
 SBTN_PROPS=プロパティー
-SBTN_AUTOREFRESH=$1秒ごとに自動更新
+SBTN_AUTOREFRESH=自動更新
+SLBL_AUTOREFRESH=秒毎
 SHOST_HINT=リストに追加したいサーバーホスト名を入力してください。(サーバーホストまたはサーバーホスト:ポート)
 SMENU_REFRESH=更新(&R)
 SMENU_CONNECT2=接続(&C)
@@ -964,7 +967,6 @@
 S_SHOTHER3_LABEL156                       =チャンネル名:
 S_SHOTHER3_LABEL157                       =パスワード:
 S_SHOTHER3_LABEL158                       =ヒット
-S_SHOTHER3_LABEL159                       =秒毎
 S_SHOTHER3_GROUPBOX1                      =ログインしたユーザーにIMするBot
 S_SHOTHER3_CB_ENABLE_LOGINIM              =Bot名:
 S_SHOTHER3_LABEL155                       =Bot有効
@@ -973,7 +975,6 @@
 S_SHOTHER3_CB_CHECK_LOGINPASS             =ログインパスワードを指定する
 S_SHOTHER3_CB_ENABLE_MSGSERV              =伝言機能を使用する
 S_SHOTHER3_CB_RESTRICT_HITPERUSER         =検索で同じユーザーがヒットする数を制限
-S_SHOTHER3_CB_REFRESH_SERVERS             =サーバーリストを定期的に更新する
 S_SHOTHER3_RD_XBUTTON_ATTR                =「×」ボタンの動作
 S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1         =あとで決める
 S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2         =シャットダウン
@@ -992,6 +993,10 @@
 S_SHOTHER4_CB_BLOCK_REGNESSEM             =Regnessem
 S_SHOTHER4_LABEL163                       =server.logの保存フォルダ:
 S_SHOTHER4_LABEL165                       =同時にチェックするリモートホストの数:
+S_SHOTHER4_CB_REFRESH_USERS               =ユーザーリストを定期的に更新する
+S_SHOTHER4_LABEL166                       =秒毎
+S_SHOTHER4_CB_REFRESH_SERVERS             =サーバーリストを定期的に更新する
+S_SHOTHER4_LABEL159                       =秒毎
 
 [UserMode]
 CAPTION=制御端末ユーザーの表示モード
diff --dos -ur 24197/lang.pas 24198/lang.pas
--- 24197/lang.pas	Tue Oct 21 22:24:14 2003
+++ 24198/lang.pas	Wed Oct 22 02:07:50 2003
@@ -826,6 +826,9 @@
  LNG_BRMNU_CHARSET_HANGEUL                     = 811;
  LNG_BRMNU_CHARSET_EASTEUROPE                  = 812;
  LNG_BRMNU_CHARSET_RUSSIAN                     = 813;
+ LNG_SLBL_AUTOREFRESH            = 814;
+ LNG_LIST_BTN_AUTOREFRESH        = 815;
+ LNG_LIST_LBL_AUTOREFRESH        = 816;
 
  LNG_S_SHMAIN_LABEL1                           = 1001;
  LNG_S_SHMAIN_LABEL3                           = 1002;
@@ -1162,7 +1165,6 @@
  LNG_S_SHOTHER3_LABEL156                       = 1791;
  LNG_S_SHOTHER3_LABEL157                       = 1792;
  LNG_S_SHOTHER3_LABEL158                       = 1793;
- LNG_S_SHOTHER3_LABEL159                       = 1794;
  LNG_S_SHOTHER3_GROUPBOX1                      = 1795;
  LNG_S_SHOTHER3_CB_ENABLE_LOGINIM              = 1796;
  LNG_S_SHOTHER3_LABEL155                       = 1797;
@@ -1171,7 +1173,6 @@
  LNG_S_SHOTHER3_CB_CHECK_LOGINPASS             = 1801;
  LNG_S_SHOTHER3_CB_ENABLE_MSGSERV              = 1802;
  LNG_S_SHOTHER3_CB_RESTRICT_HITPERUSER         = 1803;
- LNG_S_SHOTHER3_CB_REFRESH_SERVERS             = 1804;
  LNG_S_SHOTHER3_RD_XBUTTON_ATTR                = 1805;
  LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1         = 1806;
  LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2         = 1807;
@@ -1188,8 +1189,12 @@
  LNG_S_SHOTHER4_CB_BLOCK_UTATANE               = 1823;
  LNG_S_SHOTHER4_CB_BLOCK_2GET                  = 1824;
  LNG_S_SHOTHER4_CB_BLOCK_REGNESSEM             = 1825;
- LNG_S_SHOTHER4_LABEL163                       = 1831;
- LNG_S_SHOTHER4_LABEL165                       = 1832;
+ LNG_S_SHOTHER4_LABEL163                       = 1826;
+ LNG_S_SHOTHER4_LABEL165                       = 1827;
+ LNG_S_SHOTHER4_CB_REFRESH_USERS               = 1828;
+ LNG_S_SHOTHER4_LABEL159                       = 1829;
+ LNG_S_SHOTHER4_CB_REFRESH_SERVERS             = 1830;
+ LNG_S_SHOTHER4_LABEL166                       = 1831;
  LNG_MAX                                       = 1840;//832;
 
  // strings that shouldn't be translated
@@ -1757,6 +1762,8 @@
   GetIni(ini,LNG_LIST_MNU2_SERVER         ,'Users','LIST_MNU2_SERVER');
   GetIni(ini,LNG_LIST_HINT_BAN            ,'Users','LIST_HINT_BAN');
   GetIni(ini,LNG_LIST_EDIT_FILTER_HINT    ,'Users','LIST_EDIT_FILTER_HINT');
+  GetIni(ini,LNG_LIST_BTN_AUTOREFRESH     ,'Users','LIST_BTN_AUTOREFRESH');
+  GetIni(ini,LNG_LIST_LBL_AUTOREFRESH     ,'Users','LIST_LBL_AUTOREFRESH');
   GetIni(ini,LNG_OK                       ,'Interface','OK');
   GetIni(ini,LNG_CANCEL                   ,'Interface','CANCEL');
   GetIni(ini,LNG_LOG_LABEL                ,'LogWin','LABEL');
@@ -2001,6 +2008,7 @@
   GetIni(ini,LNG_SBTN_ADD                 ,'Servers','SBTN_ADD');
   GetIni(ini,LNG_SBTN_PROPS               ,'Servers','SBTN_PROPS');
   GetIni(ini,LNG_SBTN_AUTOREFRESH         ,'Servers','SBTN_AUTOREFRESH');
+  GetIni(ini,LNG_SLBL_AUTOREFRESH         ,'Servers','SLBL_AUTOREFRESH');
   GetIni(ini,LNG_SHOST_HINT               ,'Servers','SHOST_HINT');
   GetIni(ini,LNG_SMENU_REFRESH            ,'Servers','SMENU_REFRESH');
   GetIni(ini,LNG_SMENU_CONNECT2           ,'Servers','SMENU_CONNECT2');
@@ -2539,7 +2547,6 @@
   GetIni(ini,LNG_S_SHOTHER3_LABEL156                        ,'Settings','S_SHOTHER3_LABEL156');
   GetIni(ini,LNG_S_SHOTHER3_LABEL157                        ,'Settings','S_SHOTHER3_LABEL157');
   GetIni(ini,LNG_S_SHOTHER3_LABEL158                        ,'Settings','S_SHOTHER3_LABEL158');
-  GetIni(ini,LNG_S_SHOTHER3_LABEL159                        ,'Settings','S_SHOTHER3_LABEL159');
   GetIni(ini,LNG_S_SHOTHER3_GROUPBOX1                       ,'Settings','S_SHOTHER3_GROUPBOX1');
   GetIni(ini,LNG_S_SHOTHER3_CB_ENABLE_LOGINIM               ,'Settings','S_SHOTHER3_CB_ENABLE_LOGINIM');
   GetIni(ini,LNG_S_SHOTHER3_LABEL155                        ,'Settings','S_SHOTHER3_LABEL155');
@@ -2548,7 +2555,6 @@
   GetIni(ini,LNG_S_SHOTHER3_CB_CHECK_LOGINPASS              ,'Settings','S_SHOTHER3_CB_CHECK_LOGINPASS');
   GetIni(ini,LNG_S_SHOTHER3_CB_ENABLE_MSGSERV               ,'Settings','S_SHOTHER3_CB_ENABLE_MSGSERV');
   GetIni(ini,LNG_S_SHOTHER3_CB_RESTRICT_HITPERUSER          ,'Settings','S_SHOTHER3_CB_RESTRICT_HITPERUSER');
-  GetIni(ini,LNG_S_SHOTHER3_CB_REFRESH_SERVERS              ,'Settings','S_SHOTHER3_CB_REFRESH_SERVERS');
   GetIni(ini,LNG_S_SHOTHER3_RD_XBUTTON_ATTR                 ,'Settings','S_SHOTHER3_RD_XBUTTON_ATTR');
   GetIni(ini,LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1          ,'Settings','S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1');
   GetIni(ini,LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2          ,'Settings','S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2');
@@ -2567,6 +2573,10 @@
   GetIni(ini,LNG_S_SHOTHER4_CB_BLOCK_REGNESSEM              ,'Settings','S_SHOTHER4_CB_BLOCK_REGNESSEM');
   GetIni(ini,LNG_S_SHOTHER4_LABEL163                        ,'Settings','S_SHOTHER4_LABEL163');
   GetIni(ini,LNG_S_SHOTHER4_LABEL165                        ,'Settings','S_SHOTHER4_LABEL165');
+  GetIni(ini,LNG_S_SHOTHER4_CB_REFRESH_USERS                ,'Settings','S_SHOTHER4_CB_REFRESH_USERS');
+  GetIni(ini,LNG_S_SHOTHER4_LABEL159                        ,'Settings','S_SHOTHER4_LABEL159');
+  GetIni(ini,LNG_S_SHOTHER4_CB_REFRESH_SERVERS              ,'Settings','S_SHOTHER4_CB_REFRESH_SERVERS');
+  GetIni(ini,LNG_S_SHOTHER4_LABEL166                        ,'Settings','S_SHOTHER4_LABEL166');
   GetIni(ini,LNG_FONT_CHARSET                               ,'Font','FONT_CHARSET');
   GetIni(ini,LNG_FONT_SIZE                                  ,'Font','FONT_SIZE');
   GetIni(ini,LNG_FONT_NAME                                  ,'Font','FONT_NAME');
diff --dos -ur 24197/mainform.dfm 24198/mainform.dfm
--- 24197/mainform.dfm	Tue Oct 07 20:10:34 2003
+++ 24198/mainform.dfm	Wed Oct 22 07:09:28 2003
@@ -933,6 +933,13 @@
                 Flat = True
                 OnClick = btn_users_kickbanipClick
               end
+              object lbl_users_refresh: TLabel
+                Left = 624
+                Top = 32
+                Width = 24
+                Height = 12
+                Caption = '秒毎'
+              end
               object cb_users_users: TCheckBox
                 Left = 103
                 Top = 30
@@ -1024,6 +1031,27 @@
                 TabOrder = 8
                 Text = 'edit_users_filter'
               end
+              object cb_users_refresh: TCheckBox
+                Left = 499
+                Top = 30
+                Width = 60
+                Height = 19
+                Caption = 'cb_users_autorefresh'
+                TabOrder = 9
+                OnClick = cb_users_refreshClick
+              end
+              object edit_users_refresh: TSpinEdit
+                Left = 568
+                Top = 28
+                Width = 49
+                Height = 21
+                Color = clBtnFace
+                Increment = 5
+                MaxValue = 600
+                MinValue = 5
+                TabOrder = 10
+                Value = 30
+              end
             end
           end
           object SlavaPanel1: TSlavaPanel
@@ -1354,7 +1382,7 @@
                 Left = 9
                 Top = 0
                 Width = 93
-                Height = 21
+                Height = 20
                 ParentColor = True
                 ParentShowHint = False
                 ShowHint = True
@@ -1715,6 +1743,13 @@
                 Flat = True
                 OnClick = btn_servers_deleteClick
               end
+              object lbl_servers_refresh: TLabel
+                Left = 488
+                Top = 32
+                Width = 24
+                Height = 12
+                Caption = '秒毎'
+              end
               object edit_servers_host: TEdit
                 Left = 155
                 Top = 30
@@ -1732,6 +1767,19 @@
                 Height = 19
                 Caption = 'cb_servers_refresh'
                 TabOrder = 1
+                OnClick = cb_servers_refreshClick
+              end
+              object edit_servers_refresh: TSpinEdit
+                Left = 424
+                Top = 28
+                Width = 57
+                Height = 21
+                Color = clBtnFace
+                Increment = 5
+                MaxValue = 600
+                MinValue = 5
+                TabOrder = 2
+                Value = 30
               end
             end
           end
@@ -3438,7 +3486,7 @@
     end
   end
   object Timer3: TTimer
-    Interval = 30000
+    Interval = 5000
     OnTimer = Timer3Timer
     Left = 296
     Top = 169
@@ -4022,4 +4070,4 @@
       OnMeasureItem = MeasurePopupItem
     end
   end
-end
\ No newline at end of file
+end
diff --dos -ur 24197/mainform.pas 24198/mainform.pas
--- 24197/mainform.pas	Tue Oct 21 22:29:50 2003
+++ 24198/mainform.pas	Wed Oct 22 06:48:14 2003
@@ -28,7 +28,7 @@
   OfficeButtons, OfficeControls, OfficeEdit, clipbrd, channelform, chatform,
   stypes, basecombo, ComboBox, whoisform, slavastrings, mmsystem,
   Buttons, class_cmdlist, class_cmdexlist, class_doublecmdlist, Pages,
-  Classes, class_cmd2list, browseform, announceform;
+  Classes, class_cmd2list, browseform, announceform, Spin;
 
 type
   TSlavaNapWindow = class(TForm)
@@ -413,6 +413,11 @@
     mnu_users_browse: TMenuItem;
     mnu_users_announce: TMenuItem;
     mnu_um_remotehost: TMenuItem;
+    cb_users_refresh: TCheckBox;
+    edit_users_refresh: TSpinEdit;
+    lbl_users_refresh: TLabel;
+    edit_servers_refresh: TSpinEdit;
+    lbl_servers_refresh: TLabel;
     procedure FormCreate(Sender: TObject);
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
@@ -581,6 +586,8 @@
     procedure mnu_reg_unregisterClick(Sender: TObject);
     procedure mnu_users_browseClick(Sender: TObject);
     procedure mnu_users_announceClick(Sender: TObject);
+    procedure cb_users_refreshClick(Sender: TObject);
+    procedure cb_servers_refreshClick(Sender: TObject);
   private
     { Private declarations }
     splitter_pos: Integer;
@@ -1040,7 +1047,14 @@
   list_bans.tag:=ini.ReadInteger('Interface','SortBans',0);
   list_lists.tag:=ini.ReadInteger('Interface','SortLists',0);
   list_hotlist.tag:=ini.ReadInteger('Interface','SortHotlist',0);
+  cb_users_refresh.Checked:=ini.ReadBool('Interface','RefreshUsers',false);
+  edit_users_refresh.Value:=ini.ReadInteger('Interface','RefreshUsersDelay',30);
+  edit_users_refresh.Visible:=cb_users_refresh.Checked;
+  lbl_users_refresh.Visible:=cb_users_refresh.Checked;
   cb_servers_refresh.Checked:=ini.ReadBool('Interface','RefreshServers',false);
+  edit_servers_refresh.Value:=ini.ReadInteger('Interface','RefreshServersDelay',30);
+  edit_servers_refresh.Visible:=cb_servers_refresh.Checked;
+  lbl_servers_refresh.Visible:=cb_servers_refresh.Checked;
   cb_log_away.Checked:=ini.ReadBool('Interface','IsAway',false);
   //cb_log_awaypopup.checked:=ini.ReadBool('Interface','AwayPopup',true);
   cb_log_awaypopup.Checked:=cb_log_away.Checked; //Default on restart is checked if away
@@ -1490,7 +1504,6 @@
   StrHash_LoadFromFile(db_msgserv,ApplicationDir+'dengon');
   restrict_hitperuser:=ini.ReadBool('Other2','RestrictHitPerUser',false);
   maxhitperuser:=ini.ReadInteger('Other2','MaxHitPerUser',0);
-  Timer3.Interval:=ini.ReadInteger('Other2','ServerRefreshTime',30000);
   minshare_noblockact:=ini.ReadBool('Other2','MinshareNoBlockAct',false);
   blocked_clients[softNapchan]  :=ini.ReadBool('Blocked','Napchan',false);
   blocked_clients[softUtatane]  :=ini.ReadBool('Blocked','Utatane',false);
@@ -1605,7 +1618,10 @@
   ini.WriteInteger('Interface','SortBans',list_bans.tag);
   ini.WriteInteger('Interface','SortLists',list_lists.tag);
   ini.WriteInteger('Interface','SortHotlist',list_hotlist.tag);
+  ini.WriteBool('Interface','RefreshUsers',cb_users_refresh.Checked);
+  ini.WriteInteger('Interface','RefreshUsersDelay',edit_users_refresh.Value);
   ini.WriteBool('Interface','RefreshServers',cb_servers_refresh.Checked);
+  ini.WriteInteger('Interface','RefreshServersDelay',edit_servers_refresh.Value);
   ini.WriteBool('Interface','IsAway',cb_log_away.Checked);
   ini.WriteBool('Interface','AwayPopup',cb_log_awaypopup.checked);
   ini.WriteString('Interface','AwayMessage',edit_log_away.Text);
@@ -1966,7 +1982,6 @@
   ini.WriteBool('Other2','EnableMsgServ',enable_msgserv);
   ini.WriteBool('Other2','RestrictHitPerUser',restrict_hitperuser);
   ini.WriteInteger('Other2','MaxHitPerUser',maxhitperuser);
-  ini.WriteInteger('Other2','ServerRefreshTime',Timer3.Interval);
   ini.WriteBool('Other2','MinshareNoBlockAct',minshare_noblockact);
   ini.WriteBool('Blocked','Napchan',  blocked_clients[softNapchan]);
   ini.WriteBool('Blocked','Utatane',  blocked_clients[softUtatane]);
@@ -2300,6 +2315,17 @@
  cb_users_remote.Caption:=GetLangI(LNG_LIST_BTN_REMOTE);
  cb_users_remote.Left:=i;
  cb_users_remote.Width:=Canvas.TextWidth(cb_users_remote.Caption)+30;
+ inc(i,cb_users_remote.Width);
+ cb_users_refresh.Caption:=GetLangI(LNG_LIST_BTN_AUTOREFRESH);
+ cb_users_refresh.Left:=i;
+ cb_users_refresh.Width:=Canvas.TextWidth(cb_users_refresh.Caption)+30;
+ inc(i,cb_users_refresh.Width);
+ edit_users_refresh.Left:=i;
+ edit_users_refresh.Width:=45;
+ inc(i,edit_users_refresh.Width+5);
+ lbl_users_refresh.Caption:=GetLangI(LNG_LIST_LBL_AUTOREFRESH);
+ lbl_users_refresh.Left:=i;
+ lbl_users_refresh.Width:=Canvas.TextWidth(lbl_users_refresh.Caption)+30;
  i:=edit_users_reason.Left;
  j:=btn_users_refresh.Top+21;
  edit_users_reason.Width:=100;
@@ -2553,8 +2579,15 @@
  btn_servers_props.Width:=Canvas.TextWidth(btn_servers_props.Caption)+20;
  inc(i,btn_servers_props.Width);
  cb_servers_refresh.Left:=i;
- cb_servers_refresh.Caption:=GetLangI(LNG_SBTN_AUTOREFRESH,Timer3.Interval div 1000);
+ cb_servers_refresh.Caption:=GetLangI(LNG_SBTN_AUTOREFRESH);
  cb_servers_refresh.Width:=Canvas.TextWidth(cb_servers_refresh.Caption)+30;
+ inc(i,cb_servers_refresh.Width);
+ edit_servers_refresh.Left:=i;
+ edit_servers_refresh.Width:=45;
+ inc(i,edit_servers_refresh.Width+5);
+ lbl_servers_refresh.Left:=i;
+ lbl_servers_refresh.Caption:=GetLangI(LNG_SLBL_AUTOREFRESH);
+ lbl_servers_refresh.Width:=Canvas.TextWidth(lbl_servers_refresh.Caption)+30;
  // hotlist
  with list_hotlist.Columns do
  begin
@@ -4263,8 +4296,19 @@
 
 procedure TSlavaNapWindow.Timer3Timer(Sender: TObject);
 begin
- if running and cb_servers_refresh.Checked then
-  btn_servers_refreshClick(nil);
+ if not running then Exit;
+ if Timer3.Tag < MaxInt - 5 then
+   Timer3.Tag := Timer3.Tag + 5
+ else
+   Timer3.Tag := 0;
+ if cb_users_refresh.Checked and
+   (pages.ActivePage = sh_users) and
+   (Timer3.Tag mod edit_users_refresh.Value = 0) then
+   btn_users_refreshClick(nil);
+ if cb_servers_refresh.Checked and
+   (pages.ActivePage = sh_servers) and
+   (Timer3.Tag mod edit_servers_refresh.Value = 0) then
+   btn_servers_refreshClick(nil);
 end;
 
 procedure TSlavaNapWindow.btn_hotlist_addClick(Sender: TObject);
@@ -5041,6 +5085,18 @@
   except
  end;
  Result:=form;
+end;
+
+procedure TSlavaNapWindow.cb_users_refreshClick(Sender: TObject);
+begin
+  edit_users_refresh.Visible := cb_users_refresh.Checked;
+  lbl_users_refresh.Visible := cb_users_refresh.Checked;
+end;
+
+procedure TSlavaNapWindow.cb_servers_refreshClick(Sender: TObject);
+begin
+  edit_servers_refresh.Visible := cb_servers_refresh.Checked;
+  lbl_servers_refresh.Visible := cb_servers_refresh.Checked;
 end;
 
 end.
diff --dos -ur 24197/settings.dfm 24198/settings.dfm
--- 24197/settings.dfm	Tue Oct 21 22:42:46 2003
+++ 24198/settings.dfm	Wed Oct 22 06:52:58 2003
@@ -5901,17 +5901,9 @@
           Caption = 'ヒット'
           Visible = False
         end
-        object Label159: TLabel
-          Left = 320
-          Top = 186
-          Width = 24
-          Height = 12
-          Caption = '秒毎'
-          Visible = False
-        end
         object Label161: TLabel
           Left = 200
-          Top = 210
+          Top = 194
           Width = 46
           Height = 12
           Caption = '切断まで'
@@ -5919,7 +5911,7 @@
         end
         object Label162: TLabel
           Left = 320
-          Top = 210
+          Top = 194
           Width = 12
           Height = 12
           Caption = '分'
@@ -6035,29 +6027,9 @@
           Value = 10
           Visible = False
         end
-        object cb_refresh_servers: TCheckBox
-          Left = 8
-          Top = 184
-          Width = 201
-          Height = 17
-          Caption = 'サーバーリストを定期的に更新する'
-          TabOrder = 9
-          OnClick = cb_refresh_serversClick
-        end
-        object edit_servreftime: TSpinEdit
-          Left = 256
-          Top = 182
-          Width = 57
-          Height = 21
-          MaxValue = 3600
-          MinValue = 1
-          TabOrder = 10
-          Value = 30
-          Visible = False
-        end
         object rd_xbutton_attr: TRadioGroup
           Left = 248
-          Top = 232
+          Top = 216
           Width = 105
           Height = 65
           Caption = '「×」ボタンの動作'
@@ -6066,59 +6038,59 @@
             'あとで決める'
             'シャットダウン'
             '最小化')
-          TabOrder = 11
+          TabOrder = 9
         end
         object cb_minshare_noblockact: TCheckBox
           Left = 8
-          Top = 224
+          Top = 176
           Width = 217
           Height = 17
           Caption = '共有が下限以下でも検索・参照を許す'
-          TabOrder = 12
+          TabOrder = 10
         end
         object cb_kill_idleuser: TCheckBox
           Left = 8
-          Top = 208
+          Top = 192
           Width = 185
           Height = 17
           Caption = 'アイドル状態のユーザーを切断'
-          TabOrder = 13
+          TabOrder = 11
           OnClick = cb_kill_idleuserClick
         end
         object cb_deny_listall_for_users: TCheckBox
           Left = 8
-          Top = 240
+          Top = 208
           Width = 209
           Height = 17
           Caption = '一般ユーザーの827番コマンドを拒否'
-          TabOrder = 14
+          TabOrder = 12
         end
         object cb_block_weird_xnapfile: TCheckBox
           Left = 8
-          Top = 256
+          Top = 224
           Width = 185
           Height = 17
           Caption = 'XNapの文字化け共有をブロック'
-          TabOrder = 15
+          TabOrder = 13
         end
         object edit_kill_idleuser_time: TSpinEdit
           Left = 256
-          Top = 206
+          Top = 190
           Width = 57
           Height = 21
           MaxValue = 10080
           MinValue = 1
-          TabOrder = 16
+          TabOrder = 14
           Value = 180
           Visible = False
         end
         object cb_suggest_dbrowse: TCheckBox
           Left = 8
-          Top = 272
+          Top = 240
           Width = 193
           Height = 17
           Caption = '直接参照を促すメッセージを送る'
-          TabOrder = 17
+          TabOrder = 15
         end
       end
       object sh_other4: TTabSheet
@@ -6146,6 +6118,22 @@
           Height = 12
           Caption = '同時にチェックするリモートホストの数:'
         end
+        object Label159: TLabel
+          Left = 320
+          Top = 114
+          Width = 24
+          Height = 12
+          Caption = '秒毎'
+          Visible = False
+        end
+        object Label166: TLabel
+          Left = 321
+          Top = 90
+          Width = 24
+          Height = 12
+          Caption = '秒毎'
+          Visible = False
+        end
         object cb_block_napchan: TCheckBox
           Left = 8
           Top = 16
@@ -6196,14 +6184,56 @@
           TabOrder = 5
         end
         object edit_max_resolving_count: TSpinEdit
-          Left = 264
+          Left = 256
           Top = 62
-          Width = 65
+          Width = 57
           Height = 21
           MaxValue = 100
           MinValue = 1
           TabOrder = 6
           Value = 3
+        end
+        object cb_refresh_servers: TCheckBox
+          Left = 8
+          Top = 112
+          Width = 201
+          Height = 17
+          Caption = 'サーバーリストを定期的に更新する'
+          TabOrder = 7
+          OnClick = cb_refresh_serversClick
+        end
+        object edit_servreftime: TSpinEdit
+          Left = 256
+          Top = 110
+          Width = 57
+          Height = 21
+          Increment = 5
+          MaxValue = 600
+          MinValue = 10
+          TabOrder = 8
+          Value = 30
+          Visible = False
+        end
+        object cb_refresh_users: TCheckBox
+          Left = 8
+          Top = 88
+          Width = 201
+          Height = 17
+          Caption = 'ユーザーリストを定期的に更新する'
+          TabOrder = 9
+          OnClick = cb_refresh_usersClick
+        end
+        object edit_usersreftime: TSpinEdit
+          Left = 256
+          Top = 86
+          Width = 57
+          Height = 21
+          Increment = 5
+          MaxValue = 600
+          MinValue = 5
+          TabOrder = 10
+          Value = 30
+          Visible = False
         end
       end
     end
diff --dos -ur 24197/settings.pas 24198/settings.pas
--- 24197/settings.pas	Tue Oct 21 22:27:12 2003
+++ 24198/settings.pas	Wed Oct 22 02:07:12 2003
@@ -594,9 +594,6 @@
     cb_restrict_hitperuser: TCheckBox;
     edit_hitperuser: TSpinEdit;
     Label158: TLabel;
-    cb_refresh_servers: TCheckBox;
-    edit_servreftime: TSpinEdit;
-    Label159: TLabel;
     rd_xbutton_attr: TRadioGroup;
     Label160: TLabel;
     cb_minshare_noblockact: TCheckBox;
@@ -618,6 +615,12 @@
     cb_block_regnessem: TCheckBox;
     Label165: TLabel;
     edit_max_resolving_count: TSpinEdit;
+    cb_refresh_servers: TCheckBox;
+    edit_servreftime: TSpinEdit;
+    Label159: TLabel;
+    cb_refresh_users: TCheckBox;
+    edit_usersreftime: TSpinEdit;
+    Label166: TLabel;
     procedure Panel3Resize(Sender: TObject);
     procedure headerPaint(Sender: TObject);
     procedure SetTopText(str: String);
@@ -705,6 +708,7 @@
     procedure sh_other4Show(Sender: TObject);
     procedure cb_kill_idleuserClick(Sender: TObject);
     procedure btn_log_folderClick(Sender: TObject);
+    procedure cb_refresh_usersClick(Sender: TObject);
   private
     { Private declarations }
     procedure SetBanItems(control: TComboBox);
@@ -1581,10 +1585,6 @@
  edit_hitperuser.Value:=maxhitperuser;
  edit_hitperuser.Visible:=cb_restrict_hitperuser.Checked;
  Label158.Visible:=cb_restrict_hitperuser.Checked;
- cb_refresh_servers.Checked:=SlavaNapWindow.cb_servers_refresh.Checked;
- edit_servreftime.Value:=SlavaNapWindow.Timer3.Interval div 1000;
- edit_servreftime.Visible:=cb_refresh_servers.Checked;
- Label159.Visible:=cb_refresh_servers.Checked;
  case b3_canclose of
    Unknown3: rd_xbutton_attr.ItemIndex:=0;
    True3:    rd_xbutton_attr.ItemIndex:=1;
@@ -1611,6 +1611,15 @@
  cb_block_regnessem.Checked := blocked_clients[softRegnessem];
  edit_log_folder.Text:=log_folder;
  edit_max_resolving_count.Value := max_resolving_count;
+
+ cb_refresh_users.Checked:=SlavaNapWindow.cb_users_refresh.Checked;
+ edit_usersreftime.Value:=SlavaNapWindow.edit_users_refresh.Value;
+ edit_usersreftime.Visible:=cb_refresh_users.Checked;
+ Label166.Visible:=cb_refresh_users.Checked;
+ cb_refresh_servers.Checked:=SlavaNapWindow.cb_servers_refresh.Checked;
+ edit_servreftime.Value:=SlavaNapWindow.edit_servers_refresh.Value;
+ edit_servreftime.Visible:=cb_refresh_servers.Checked;
+ Label159.Visible:=cb_refresh_servers.Checked;
 end;
 
 procedure TSlavaNapSettings.sh_reportShow(Sender: TObject);
@@ -2192,12 +2201,6 @@
    enable_msgserv:=cb_enable_msgserv.Checked;
    restrict_hitperuser:=cb_restrict_hitperuser.Checked;
    maxhitperuser:=edit_hitperuser.Value;
-   with SlavaNapWindow do
-   begin
-     cb_servers_refresh.Checked:=cb_refresh_servers.Checked;
-     Timer3.Interval:=edit_servreftime.Value*1000;
-     cb_servers_refresh.Caption:=GetLangI(LNG_SBTN_AUTOREFRESH,edit_servreftime.Value);
-   end;
    case rd_xbutton_attr.ItemIndex of
      0: b3_canclose:=Unknown3;
      1: b3_canclose:=True3;
@@ -2240,6 +2243,13 @@
    end;
    log_folder:=edit_log_folder.Text;
    max_resolving_count:=edit_max_resolving_count.Value;
+   with SlavaNapWindow do
+   begin
+     cb_users_refresh.Checked:=cb_refresh_users.Checked;
+     edit_users_refresh.Value:=edit_usersreftime.Value;
+     cb_servers_refresh.Checked:=cb_refresh_servers.Checked;
+     edit_servers_refresh.Value:=edit_servreftime.Value;
+   end;
   except
  end;
  btn_restoreClick(nil);
@@ -2694,6 +2704,12 @@
   Label159.Visible:=cb_refresh_servers.Checked;
 end;
 
+procedure TSlavaNapSettings.cb_refresh_usersClick(Sender: TObject);
+begin
+  edit_usersreftime.Visible := cb_refresh_users.Checked;
+  Label166.Visible := cb_refresh_users.Checked;
+end;
+
 procedure TSlavaNapSettings.cb_minshare_banClick(Sender: TObject);
 begin
   Label160.Visible:=cb_minshare_ban.Checked;
@@ -3074,7 +3090,6 @@
   Label156.Caption                     :=GetLangI(LNG_S_SHOTHER3_LABEL156);
   Label157.Caption                     :=GetLangI(LNG_S_SHOTHER3_LABEL157);
   Label158.Caption                     :=GetLangI(LNG_S_SHOTHER3_LABEL158);
-  Label159.Caption                     :=GetLangI(LNG_S_SHOTHER3_LABEL159);
   GroupBox1.Caption                    :=GetLangI(LNG_S_SHOTHER3_GROUPBOX1);
   Label155.Caption                     :=GetLangI(LNG_S_SHOTHER3_CB_ENABLE_LOGINIM);
   cb_enable_loginim.Caption            :=GetLangI(LNG_S_SHOTHER3_LABEL155);
@@ -3083,7 +3098,6 @@
   cb_check_loginpass.Caption           :=GetLangI(LNG_S_SHOTHER3_CB_CHECK_LOGINPASS);
   cb_enable_msgserv.Caption            :=GetLangI(LNG_S_SHOTHER3_CB_ENABLE_MSGSERV);
   cb_restrict_hitperuser.Caption       :=GetLangI(LNG_S_SHOTHER3_CB_RESTRICT_HITPERUSER);
-  cb_refresh_servers.Caption           :=GetLangI(LNG_S_SHOTHER3_CB_REFRESH_SERVERS);
   rd_xbutton_attr.Caption              :=GetLangI(LNG_S_SHOTHER3_RD_XBUTTON_ATTR);
   rd_xbutton_attr.Items[0]             :=GetLangI(LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS1);
   rd_xbutton_attr.Items[1]             :=GetLangI(LNG_S_SHOTHER3_RD_XBUTTON_ATTR_ITEMS2);
@@ -3103,6 +3117,10 @@
   cb_block_regnessem.Caption           :=GetLangI(LNG_S_SHOTHER4_CB_BLOCK_REGNESSEM);
   Label163.Caption                     :=GetLangI(LNG_S_SHOTHER4_LABEL163);
   Label165.Caption                     :=GetLangI(LNG_S_SHOTHER4_LABEL165);
+  cb_refresh_users.Caption             :=GetLangI(LNG_S_SHOTHER4_CB_REFRESH_USERS);
+  Label166.Caption                     :=GetLangI(LNG_S_SHOTHER4_LABEL166);
+  cb_refresh_servers.Caption           :=GetLangI(LNG_S_SHOTHER4_CB_REFRESH_SERVERS);
+  Label159.Caption                     :=GetLangI(LNG_S_SHOTHER4_LABEL159);
 end;
 
 procedure TSlavaNapSettings.cb_kill_idleuserClick(Sender: TObject);