OSDN Git Service

まちBBSで削除レスがあるレス番号とスレの件数がずれる不具合を修正
[gikonavigoeson/gikonavi.git] / KuroutSetting.pas
index 8caa42a..bf4b88d 100644 (file)
@@ -4,39 +4,125 @@ interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
-  Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil;
+  Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil, ExtCtrls, StrUtils;
 
 type
   TKuroutOption = class(TForm)
-    PageControl1: TPageControl;
-    TabSheet1: TTabSheet;
-    GroupBox11: TGroupBox;
-    Label17: TLabel;
-    Label18: TLabel;
-    RecvBufferSize: TEdit;
-    ProxyProtocolCheckBox: TCheckBox;
-    ProtocolCheckBox: TCheckBox;
-    GroupBox13: TGroupBox;
-    Label24: TLabel;
-    Label25: TLabel;
-    PostTimeLabel: TLabel;
-    Label27: TLabel;
-    PostTimeCheckBox: TCheckBox;
-    PostTimeEdit: TEdit;
-    PutPostTimeRadioButton: TRadioButton;
-    BackPostTimeRadioButton: TRadioButton;
-    OkBotton: TButton;
-    CancelBotton: TButton;
-    ApplyButton: TButton;
-    procedure OkBottonClick(Sender: TObject);
-    procedure FormCreate(Sender: TObject);
+       PageControl1: TPageControl;
+       TabSheet1: TTabSheet;
+       GroupBox11: TGroupBox;
+       Label17: TLabel;
+       Label18: TLabel;
+       RecvBufferSize: TEdit;
+       ProxyProtocolCheckBox: TCheckBox;
+       ProtocolCheckBox: TCheckBox;
+       GroupBox13: TGroupBox;
+       Label24: TLabel;
+       Label25: TLabel;
+       PostTimeLabel: TLabel;
+       Label27: TLabel;
+       PostTimeCheckBox: TCheckBox;
+       PostTimeEdit: TEdit;
+       PutPostTimeRadioButton: TRadioButton;
+       BackPostTimeRadioButton: TRadioButton;
+       OkBotton: TButton;
+       CancelBotton: TButton;
+       ApplyButton: TButton;
+       ColumnTabSheet: TTabSheet;
+       CategoryColumnGroupBox: TGroupBox;
+       CUnVisibledListBox: TListBox;
+       CVisibledListBox: TListBox;
+       CAddButton: TButton;
+       CDeleteButton: TButton;
+       BoardColumnGroupBox: TGroupBox;
+       BUnVisibledListBox: TListBox;
+       BVisibledListBox: TListBox;
+       BAddButton: TButton;
+       BDeleteButton: TButton;
+       Label1: TLabel;
+       Label2: TLabel;
+       Label3: TLabel;
+       Label4: TLabel;
+       CUpButton: TButton;
+       CDownButton: TButton;
+       BUpButton: TButton;
+       BDownButton: TButton;
+    GroupBox1: TGroupBox;
+    GengoSupport: TCheckBox;
+    Label5: TLabel;
+    Label6: TLabel;
+    ReadTimeOut: TEdit;
+    Label7: TLabel;
+    KakikomiTabSheet: TTabSheet;
+    CookieGroupBox: TGroupBox;
+    Label8: TLabel;
+    FixedCookieEdit: TEdit;
+    Label9: TLabel;
+    GroupBox3: TGroupBox;
+    Label10: TLabel;
+    MoveHistoryMaxEdit: TEdit;
+    Label11: TLabel;
+    AHandredGroupBox: TGroupBox;
+    AHandredLabeledEdit: TLabeledEdit;
+    AHandredUpDown: TUpDown;
+    ThreadGroupBox: TGroupBox;
+    AddKeywordCheckBox: TCheckBox;
+    TabSheet2: TTabSheet;
+    SecurityGroupBox: TGroupBox;
+    GroupBox2: TGroupBox;
+    LocalTrapAtt: TCheckBox;
+    RemoteTrapAtt: TCheckBox;
+    ReplaceDatCheckBox: TCheckBox;
+    Label12: TLabel;
+    GroupBox4: TGroupBox;
+    SentIniFileSizeEdit: TEdit;
+    SentIniFileSizeUpDown: TUpDown;
+    Label13: TLabel;
+    Label14: TLabel;
+    ExtListLabeledEdit: TLabeledEdit;
+    Label15: TLabel;
+    LogGroupBox: TGroupBox;
+    CheckDatFileCheckBox: TCheckBox;
+    RespopupTabSheet: TTabSheet;
+    RespopuGroupBox: TGroupBox;
+    DeltaXLabeledEdit: TLabeledEdit;
+    DeltaYLabeledEdit: TLabeledEdit;
+    DeltaXUpDown: TUpDown;
+    DeltaYUpDown: TUpDown;
+    Label16: TLabel;
+    RespopupWaitLabeledEdit: TLabeledEdit;
+    RespopupWaitUpDown: TUpDown;
+    Label19: TLabel;
+    RespopupMailToCheckBox: TCheckBox;
+    ResRangeLabeledEdit: TLabeledEdit;
+    ResRangeCountUpDown: TUpDown;
+    UseGobakuCheckBox: TCheckBox;
+       procedure OkBottonClick(Sender: TObject);
+       procedure FormCreate(Sender: TObject);
+       procedure CDeleteButtonClick(Sender: TObject);
+       procedure CAddButtonClick(Sender: TObject);
+       procedure BAddButtonClick(Sender: TObject);
+       procedure BDeleteButtonClick(Sender: TObject);
+    procedure CUpButtonClick(Sender: TObject);
+    procedure CDownButtonClick(Sender: TObject);
+    procedure BUpButtonClick(Sender: TObject);
+    procedure BDownButtonClick(Sender: TObject);
+    procedure MoveHistoryMaxEditExit(Sender: TObject);
+    procedure AHandredLabeledEditExit(Sender: TObject);
+    procedure ExtListLabeledEditExit(Sender: TObject);
+    procedure DeltaXLabeledEditExit(Sender: TObject);
+    procedure DeltaYLabeledEditExit(Sender: TObject);
+    procedure RespopupWaitLabeledEditExit(Sender: TObject);
+    procedure ResRangeLabeledEditExit(Sender: TObject);
   private
-    { Private \90é\8c¾ }
+       { Private \90é\8c¾ }
        procedure SetValue;
        procedure SaveSetting;
        procedure RecvBufferSizeExit(Sender: TObject);
        procedure PostTimeEditExit(Sender: TObject);
        procedure PostTimeCheckBoxClick(Sender: TObject);
+       procedure SetColumnData();
+       procedure PostColumnData();
   public
        { Public \90é\8c¾ }
   end;
@@ -46,6 +132,9 @@ var
 
 implementation
 
+uses
+       Giko, Setting;
+
 {$R *.dfm}
 
 procedure TKuroutOption.SetValue;
@@ -56,6 +145,7 @@ begin
        ProtocolCheckBox.Checked := GikoSys.Setting.Protocol;
        //\83v\83\8d\83L\83V\90Ú\91±HTTP1.1\8eg\97p
        ProxyProtocolCheckBox.Checked := Gikosys.Setting.ProxyProtocol;
+       ReadTimeOut.Text := IntToStr(GikoSys.Setting.ReadTimeOut);
 
                //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
        PostTimeCheckBox.Checked := GikoSys.Setting.UseMachineTime;
@@ -64,12 +154,45 @@ begin
                PutPostTimeRadioButton.Checked := True
        else
                BackPostTimeRadioButton.Checked := True;
+
+       SetColumnData();
+
+       PageControl1.ActivePageIndex := GikoSys.Setting.KuroutSettingTabIndex;
+
+       //2chAnnai
+       GengoSupport.Checked := GikoSys.Setting.GengoSupport;
+       //FusianaSet
+       LocalTrapAtt.Checked := GikoSys.Setting.LocalTrapAtt;
+       RemoteTrapAtt.Checked := GikoSys.Setting.RemoteTrapAtt;
+       // Cookie
+    FixedCookieEdit.Text := GikoSys.Setting.FixedCookie;
+    // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð
+    MoveHistoryMaxEdit.Text := IntToStr( GikoSys.Setting.MoveHistorySize );
+    //\81@\90æ\93ª\95\\8e¦\83\8c\83X\90\94
+    AHandredUpDown.Position := GikoSys.Setting.HeadResCount;
+    // \95\\8e¦\83\8c\83X\90\94
+    ResRangeCountUpDown.Position := GikoSys.Setting.ResRangeExCount;
+    // \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
+    AddKeywordCheckBox.Checked := GikoSys.Setting.AddKeywordLink;
+    // \8cë\94½\89\9e\91Î\8dô
+    ReplaceDatCheckBox.Checked := GikoSys.Setting.ReplaceDat;
+    SentIniFileSizeUpDown.Position := GikoSys.Setting.SentIniFileSize;
+    ExtListLabeledEdit.Text := GikoSys.Setting.ExtList;
+    // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
+    CheckDatFileCheckBox.Checked := GikoSys.Setting.CheckDatFile;
+    DeltaXUpDown.Position := GikoSys.Setting.RespopupDeltaX;
+    DeltaYUpDown.Position := GikoSys.Setting.RespopupDeltaY;
+    RespopupWaitUpDown.Position := GikoSys.Setting.RespopupWait;
+    RespopupMailToCheckBox.Checked := GikoSys.Setting.RespopupMailTo;
+    // \8cë\94\9a\83`\83F\83b\83N
+    UseGobakuCheckBox.Checked := GikoSys.Setting.UseGobakuCheck;
 end;
 
 procedure TKuroutOption.SaveSetting;
 begin
        //\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
-       Gikosys.Setting.RecvBufferSize := StrToInt(RecvBufferSize.Text);
+       Gikosys.Setting.RecvBufferSize := StrToIntDef(RecvBufferSize.Text, Gikosys.Setting.RecvBufferSize);
+       GikoSys.Setting.ReadTimeOut := StrToIntDef(ReadTimeOut.Text, GikoSys.Setting.ReadTimeOut);
        //HTTP1.1\8eg\97p
        GikoSys.Setting.Protocol := ProtocolCheckBox.Checked;
        //\83v\83\8d\83L\83V\90Ú\91±HTTP1.1\8eg\97p
@@ -77,10 +200,46 @@ begin
        //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
        GikoSys.Setting.UseMachineTime := PostTimeCheckBox.Checked;
        if GikoSys.IsNumeric(PostTimeEdit.Text) then
-               GikoSys.Setting.TimeAdjustSec := StrToInt(PostTimeEdit.Text)
+               GikoSys.Setting.TimeAdjustSec := StrToIntDef(PostTimeEdit.Text, GikoSys.Setting.TimeAdjustSec)
        else
                GikoSys.Setting.TimeAdjustSec := 0;
        GikoSys.Setting.TimeAdjust := PutPostTimeRadioButton.Checked;
+       //2ch\8c¾\8cê\83T\83|\81[\83g
+       GikoSys.Setting.GengoSupport := GengoSupport.Checked;
+       GikoSys.SetGikoMessage;
+       //\83\8d\81[\83J\83\8b\81E\83\8a\83\82\81[\83g̼±Å\8cx\8d\90
+       GikoSys.Setting.LocalTrapAtt := LocalTrapAtt.Checked;
+       GikoSys.Setting.RemoteTrapAtt := RemoteTrapAtt.Checked;
+       // Cookie
+       GikoSys.Setting.FixedCookie := FixedCookieEdit.Text;
+
+    // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð
+    GikoSys.Setting.MoveHistorySize :=
+        StrToIntDef( MoveHistoryMaxEdit.Text, 20 );
+
+    //\81@\90æ\93ª\95\\8e¦\83\8c\83X\90\94
+    GikoSys.Setting.HeadResCount :=
+        StrToIntDef( AHandredLabeledEdit.Text , 1);
+    GikoSys.Setting.ResRangeExCount :=
+        StrToIntDef( ResRangeLabeledEdit.Text , 100 );
+       GikoSys.Setting.KuroutSettingTabIndex := PageControl1.ActivePageIndex;
+    // \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
+    GikoSys.Setting.AddKeywordLink := AddKeywordCheckBox.Checked;
+    // \8cë\94½\89\9e\91Î\8dô
+    GikoSys.Setting.ReplaceDat := ReplaceDatCheckBox.Checked;
+    GikoSys.Setting.SentIniFileSize := SentIniFileSizeUpDown.Position;
+    GikoSys.Setting.ExtList := ExtListLabeledEdit.Text;
+    // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
+    GikoSys.Setting.CheckDatFile := CheckDatFileCheckBox.Checked;
+
+    GikoSys.Setting.RespopupDeltaX := StrToInt(DeltaXLabeledEdit.Text);
+    GikoSys.Setting.RespopupDeltaY := StrToInt(DeltaYLabeledEdit.Text);
+    GikoSys.Setting.RespopupWait := StrToInt(RespopupWaitLabeledEdit.Text);
+    GikoForm.ResPopupClearTimer.Interval := GikoSys.Setting.RespopupWait;
+    GikoSys.Setting.RespopupMailTo := RespopupMailToCheckBox.Checked;
+    // \8cë\94\9a\83`\83F\83b\83N
+    GikoSys.Setting.UseGobakuCheck := UseGobakuCheckBox.Checked;
+
 end;
 
 procedure TKuroutOption.RecvBufferSizeExit(Sender: TObject);
@@ -109,14 +268,284 @@ procedure TKuroutOption.OkBottonClick(Sender: TObject);
 begin
        RecvBufferSizeExit(Sender);
        PostTimeEditExit(Sender);
+    MoveHistoryMaxEditExit(Sender);
+    AHandredLabeledEditExit(Sender);
+    ExtListLabeledEditExit(Sender);
+    DeltaXLabeledEditExit(Sender);
+    DeltaYLabeledEditExit(Sender);
+    RespopupWaitLabeledEditExit(Sender);
+    PostColumnData();
        SaveSetting;
 end;
 
 procedure TKuroutOption.FormCreate(Sender: TObject);
+var
+    CenterForm: TCustomForm;
 begin
+    CenterForm := TCustomForm(Owner);
+    if Assigned(CenterForm) then begin
+        Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
+        Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
+    end else begin
+        Left := (Screen.Width - Width) div 2;
+        Top := (Screen.Height - Height) div 2;
+    end;
+
        SetValue;
        PostTimeCheckBoxClick(Sender);
 
 end;
+procedure TKuroutOption.SetColumnData();
+var
+       i, j : Integer;
+       flag : Boolean;
+begin
+
+       //===== \94Â\83\8a\83X\83g =====
+       for i := 0 to GikoSys.Setting.CategoryColumnOrder.Count - 1 do begin
+               for j := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
+                       if GikoSys.Setting.CategoryColumnOrder[ i ] = TGikoCategoryColumnID( j ) then begin
+                               CVisibledListBox.AddItem(GikoCategoryColumnCaption[ j ], nil);
+                               break;
+                       end;
+               end;
+       end;
+
+       for i := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
+               flag := false;
+               for j := 0 to GikoSys.Setting.CategoryColumnOrder.Count - 1 do begin
+                       if GikoSys.Setting.CategoryColumnOrder[ j ] = TGikoCategoryColumnID( i ) then begin
+                               flag := true;
+                               break;
+                       end;
+               end;
+               if not flag then
+                       CUnVisibledListBox.AddItem(GikoCategoryColumnCaption[ i ], nil);
+       end;
+
+       //===== \83X\83\8c\83\8a\83X\83g =====
+       for i := 0 to GikoSys.Setting.BoardColumnOrder.Count - 1 do begin
+               for j := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
+                       if GikoSys.Setting.BoardColumnOrder[ i ] = TGikoBoardColumnID( j ) then begin
+                               BVisibledListBox.AddItem(GikoBoardColumnCaption[ j ], nil);
+                               Break;
+                       end;
+               end;
+       end;
+
+       for i := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
+               flag := false;
+               for j := GikoSys.Setting.BoardColumnOrder.Count - 1 downto 0 do begin
+                       if GikoSys.Setting.BoardColumnOrder[ j ] = TGikoBoardColumnID( i ) then begin
+                               flag := true;
+                               Break;
+                       end;
+               end;
+               if not flag then
+                       BUnVisibledListBox.AddItem(GikoBoardColumnCaption[ i ], nil);
+
+       end;
+end;
+procedure TKuroutOption.CDeleteButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to CVisibledListBox.Count - 1 do begin
+               if CVisibledListBox.Selected[i] then begin
+                       CUnVisibledListBox.AddItem(     CVisibledListBox.Items.Strings[ i ], nil);
+                       CVisibledListBox.DeleteSelected;
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.CAddButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to CUnVisibledListBox.Count - 1 do begin
+               if CUnVisibledListBox.Selected[i] then begin
+                       CVisibledListBox.AddItem(       CUnVisibledListBox.Items.Strings[ i ], nil);
+                       CUnVisibledListBox.DeleteSelected;
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.BAddButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to BUnVisibledListBox.Count - 1 do begin
+               if BUnVisibledListBox.Selected[i] then begin
+                       BVisibledListBox.AddItem(       BUnVisibledListBox.Items.Strings[ i ], nil);
+                       BUnVisibledListBox.DeleteSelected;
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.BDeleteButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to BVisibledListBox.Count - 1 do begin
+               if BVisibledListBox.Selected[i] then begin
+                       BUnVisibledListBox.AddItem(     BVisibledListBox.Items.Strings[ i ], nil);
+                       BVisibledListBox.DeleteSelected;
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.CUpButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 1 to CVisibledListBox.Count - 1 do begin
+               if CVisibledListBox.Selected[i] then begin
+                       CVisibledListBox.Items.Exchange(i, i -1);
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.CDownButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to CVisibledListBox.Count - 2 do begin
+               if CVisibledListBox.Selected[i] then begin
+                       CVisibledListBox.Items.Exchange(i, i + 1);
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.BUpButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 1 to BVisibledListBox.Count - 1 do begin
+               if BVisibledListBox.Selected[i] then begin
+                       BVisibledListBox.Items.Exchange(i, i -1);
+                       break;
+               end;
+       end;
+end;
+
+procedure TKuroutOption.BDownButtonClick(Sender: TObject);
+var
+       i: Integer;
+begin
+       for i := 0 to BVisibledListBox.Count - 2 do begin
+               if BVisibledListBox.Selected[i] then begin
+                       BVisibledListBox.Items.Exchange(i, i + 1);
+                       break;
+               end;
+       end;
+end;
+
+
+procedure TKuroutOption.PostColumnData();
+var
+       i, j : Integer;
+begin
+       GikoForm.ActiveListColumnSave;
+
+       //===== \94Â\83\8a\83X\83g =====
+       for i := GikoSys.Setting.CategoryColumnOrder.Count -1 downto 1 do
+               GikoSys.Setting.CategoryColumnOrder.Delete(i);
+
+       for i := 0 to CVisibledListBox.Count - 1 do begin
+               for j := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
+                       if CVisibledListBox.Items.Strings[ i ] = GikoCategoryColumnCaption[ j ] then begin
+                               GikoSys.Setting.CategoryColumnOrder.Add(  TGikoCategoryColumnID(j) );
+                               break;
+                       end;
+               end;
+       end;
+
+       //===== \83X\83\8c\83\8a\83X\83g =====
+       for i := GikoSys.Setting.BoardColumnOrder.Count - 1 downto 1 do
+               GikoSys.Setting.BoardColumnOrder.Delete(i);
+
+       for i := 0 to BVisibledListBox.Count - 1 do begin
+               for j := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
+                       if BVisibledListBox.Items.Strings[ i ] = GikoBoardColumnCaption[ j ] then begin
+                               GikoSys.Setting.BoardColumnOrder.Add( TGikoBoardColumnID(j) );
+                               Break;
+                       end;
+               end;
+       end;
+       //\83X\83\8c\88ê\97\97\82Ì\95`\89æ\82Ì\8dX\90V
+       GikoForm.SetActiveList(GikoForm.ActiveList);
+end;
+// \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Ò\8fW\8cã\82Ì\90Ý\92è\95\8e\9a\97ñ\83`\83F\83b\83N
+procedure TKuroutOption.MoveHistoryMaxEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(MoveHistoryMaxEdit.Text) then
+               MoveHistoryMaxEdit.Text := '20';
+    if StrToInt(MoveHistoryMaxEdit.Text) < 1 then
+        MoveHistoryMaxEdit.Text := '1';
+end;
+// \90æ\93ª\95\\8e¦\83\8c\83X\90\94\82Ì\95Ò\8fW\8cã\82Ì\90Ý\92è\95\8e\9a\97ñ\83`\83F\83b\83N
+procedure TKuroutOption.AHandredLabeledEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(AHandredLabeledEdit.Text) then
+               AHandredLabeledEdit.Text := '1';
+    if StrToInt(AHandredLabeledEdit.Text) < 1 then
+        AHandredLabeledEdit.Text := '1';
+
+end;
+
+procedure TKuroutOption.ExtListLabeledEditExit(Sender: TObject);
+begin
+    if AnsiEndsStr(';', ExtListLabeledEdit.Text) then begin
+        ExtListLabeledEdit.Text :=
+            Copy(ExtListLabeledEdit.Text, 0,
+                Length(ExtListLabeledEdit.Text) - 1);
+    end;
+end;
+// \83\8c\83X\83|\83b\83v\83A\83b\83v\88Ê\92uX
+procedure TKuroutOption.DeltaXLabeledEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(DeltaXLabeledEdit.Text) then
+               DeltaXLabeledEdit.Text := IntToStr(GikoSys.Setting.RespopupDeltaX);
+    if StrToInt(DeltaXLabeledEdit.Text) < DeltaXUpDown.Min then
+        DeltaXLabeledEdit.Text := IntToStr(DeltaXUpDown.Min);
+    if StrToInt(DeltaXLabeledEdit.Text) > DeltaXUpDown.Max then
+        DeltaXLabeledEdit.Text:= IntToStr(DeltaXUpDown.Max);
+end;
+// \83\8c\83X\83|\83b\83v\83A\83b\83v\88Ê\92uY
+procedure TKuroutOption.DeltaYLabeledEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(DeltaYLabeledEdit.Text) then
+        DeltaYLabeledEdit.Text := IntToStr(GikoSys.Setting.RespopupDeltaY);
+    if StrToInt(DeltaYLabeledEdit.Text) < DeltaYUpDown.Min then
+        DeltaYLabeledEdit.Text := IntToStr(DeltaYUpDown.Min);
+    if StrToInt(DeltaYLabeledEdit.Text) > DeltaYUpDown.Max then
+        DeltaYLabeledEdit.Text := IntToStr(DeltaYUpDown.Max);
+end;
+
+procedure TKuroutOption.RespopupWaitLabeledEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(RespopupWaitLabeledEdit.Text) then
+               RespopupWaitLabeledEdit.Text := IntToStr(GikoSys.Setting.RespopupWait);
+    if StrToInt(RespopupWaitLabeledEdit.Text) < RespopupWaitUpDown.Min then
+               RespopupWaitLabeledEdit.Text := IntToStr(RespopupWaitUpDown.Min);
+    if StrToInt(RespopupWaitLabeledEdit.Text) > RespopupWaitUpDown.Max then
+               RespopupWaitLabeledEdit.Text := IntToStr(RespopupWaitUpDown.Max);
+end;
+
+procedure TKuroutOption.ResRangeLabeledEditExit(Sender: TObject);
+begin
+       if not GikoSys.IsNumeric(ResRangeLabeledEdit.Text) then
+               ResRangeLabeledEdit.Text := '100';
+    if StrToInt(ResRangeLabeledEdit.Text) < 100 then
+        ResRangeLabeledEdit.Text := '100';
+    if StrToInt(ResRangeLabeledEdit.Text) > 9999 then
+        ResRangeLabeledEdit.Text := '9999';
+end;
 
 end.