OSDN Git Service

boardファイルで、拡張子が".bak"or ".BAK"のものを無視するようにした
[gikonavigoeson/gikonavi.git] / Setting.pas
index cd015b3..ede32d0 100644 (file)
@@ -11,6 +11,28 @@ const
        LIST_COOLBAND_COUNT = 2;                //\94ÂCoolBand\82Ì\90\94
        BROWSER_COOLBAND_COUNT = 3;     //\83u\83\89\83E\83UCoolBand\82Ì\90\94
 
+       BOARD_FILE_NAME                                                         = 'board.2ch';
+       CUSTOMBOARD_FILE_NAME                                   = 'custom.2ch';
+       BOARD_DIR_NAME                                                          = 'Board';
+       KEY_SETTING_FILE_NAME                                   = 'key.ini';
+       EKEY_SETTING_FILE_NAME                          = 'Ekey.ini';
+       TEMP_FOLDER                                                                             = 'Temp';
+       OUTBOX_FILE_NAME                                                        = 'outbox.ini';
+       SENT_FILE_NAME                                                          = 'sent.ini';
+       CONFIG_DIR_NAME                                                         = 'config';
+       CSS_DIR_NAME                                                                    = 'css';
+       SKIN_DIR_NAME                                                                   = 'skin';
+       SKIN_HEADER_FILE_NAME                                   = 'Header.html';
+       SKIN_FOOTER_FILE_NAME                                   = 'Footer.html';
+       SKIN_NEWRES_FILE_NAME                                   = 'NewRes.html';
+       SKIN_RES_FILE_NAME                                              = 'Res.html';
+       SKIN_BOOKMARK_FILE_NAME                         = 'Bookmark.html';
+       SKIN_NEWMARK_FILE_NAME                          = 'Newmark.html';
+       NGWORDs_DIR_NAME : String               = 'NGwords';
+       BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';
+       SAMBATIME_FILE_NAME : String    = 'Samba.ini';
+       IGNORE_FILE_NAME : String               = 'Ignore.txt';
+//     DOLIB_LOGIN_URL     = '/~tora3n2c/futen.cgi';
 type
        TGikoTabPosition = (gtpTop, gtpBottom);                                                         // \83^\83u\88Ê\92u
        TGikoTabAppend = (gtaFirst, gtpLast);                                                                   // \83^\83u\92Ç\89Á\88Ê\92u
@@ -23,6 +45,8 @@ type
                                                                                                gppRightBottom, gppBottom, gppLeftBottom);
                                                                                                                                                                                                                                //\83v\83\8c\83r\83\85\81[\83T\83C\83Y
        TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);
+       TGikoBrowserAutoMaximize        = (gbmNone, gbmClick, gbmDoubleClick);
+                                                                                                                                                                                                                               // \83u\83\89\83E\83U\82ð\8e©\93®\93I\82É\8dÅ\91å\89»\82·\82é\8fð\8c\8f
 
        //CoolBar\90Ý\92è\83\8c\83R\81[\83h
        TCoolSet = record
@@ -71,9 +95,12 @@ type
                FListBackColor: TColor;
 
                //\83u\83\89\83E\83U
-               //FBrowserFontColor: TColor;
-               //FBrowserBackColor: TColor;
-               //FBrowserFontSize: Integer;
+               FBrowserFontName: string;                       // ''...default
+               FBrowserFontSize: Integer;              // 0...default
+               FBrowserFontBold: Integer;              // 0...default, -1...False, 1...True
+               FBrowserFontItalic: Integer;    // \8fã\82É\93¯\82
+               FBrowserFontColor: Integer;             // -1...default
+               FBrowserBackColor: Integer;             // \8fã\82É\93¯\82
 
                //\83G\83f\83B\83^
                FEditorFontName: string;
@@ -151,6 +178,8 @@ type
                FEditWindowHeight: Integer;
                FEditWindowWidth: Integer;
                FEditWindowMax: Boolean;
+        FEditWindowStay: Boolean;
+        FEditWindowTranslucent: Boolean;
 
                //\83\8a\83X\83g\94Ô\8d\86\95\\8e¦
                FListViewNo: Boolean;
@@ -158,10 +187,16 @@ type
                FUseCSS: Boolean;
                //CSS\83t\83@\83C\83\8b\96¼
                FCSSFileName: string;
+               // \83X\83L\83\93\95\\8e¦(\88ê\8e\9e\93I\82È\82à\82Ì\82Å ini \82É\95Û\91\82Í\82³\82ê\82È\82¢)
+               FUseSkin: Boolean;
                //mail\97\93\95\\8e¦
                FShowMail: Boolean;
-               //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
+               //\8bN\93®\8e\9e\8dÅ\90V100\83\8c\83X\95\\8e¦
+               FOnlyAHundredRes : Boolean;
+               //\94ñ\83A\83N\83e\83B\83u\8e\9e\83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦
                FUnActivePopup: Boolean;
+               //\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
+               FResPopupHeaderBold: Boolean;
 
                //\83\8d\83O\83t\83H\83\8b\83_
                FLogFolder: string;
@@ -170,18 +205,22 @@ type
                //\83\8a\83X\83g\83J\83\89\83\80\83w\83b\83_\81[\83T\83C\83Y
                FBBSColumnWidth: array[0..0] of Integer;
                FCategoryColumnWidth: array[0..3] of Integer;
-               FBoardColumnWidth: array[0..6] of Integer;
+               FBoardColumnWidth: array[0..7] of Integer;
 
                //\8di\8d\9e\82Ý\95\8e\9a\97ñ
                FSelectTextList: TStringList;
 
                //\94Â\88ê\97\97URL
-               FBoardURL2ch: string;
+               //FBoardURL2ch: string;
+               FBoardURLs: TStringList;
+               FBoardURLSelected: Integer;
 
                //\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
                FUserID: string;
                FPassword: string;
                FAutoLogin: Boolean;
+        FForcedLogin: Boolean;
+               FDolibURL: string;
 
                //URL\83N\83\8a\83b\83N\8e\9e\8bN\93®\83A\83v\83\8a
                FURLApp: Boolean;
@@ -195,7 +234,7 @@ type
 
                //CoolBar\81i\83\81\83C\83\93\81E\94Â\81E\83u\83\89\83E\83U\81j
                FMainCoolBar: array[0..MAIN_COOLBAND_COUNT - 1] of TCoolSet;
-               FListCoolBar: array[0..LIST_COOLBAND_COUNT] of TCoolSet;
+               FListCoolBar: array[0..LIST_COOLBAND_COUNT - 1] of TCoolSet;
                FBrowserCoolBar: array[0..BROWSER_COOLBAND_COUNT - 1] of TCoolSet;
 
                //ToolBar Wrapable
@@ -216,14 +255,57 @@ type
                FPreviewSize: TGikoPreviewSize;
                FPreviewWait: Integer;
 
+               // \83u\83\89\83E\83U
+               FBrowserAutoMaximize: TGikoBrowserAutoMaximize;
+
                //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93\95\\8e¦
                FListIconVisible: Boolean;
 
+        //\83X\83\8c\83b\83h\88ê\97\97\82ÅLog\82Ì\82 \82é\83X\83\8c\83b\83h\82Ì\82Ý\83X\83\8c\8dì\90¬\93ú\82ð\95\\8e¦\82·\82é\82©
+        FCreationTimeLogs: Boolean;
+        //\83X\83\8c\83b\83h\88ê\97\97\82Ì\83X\83\8c\90\90¬\93ú\82Å\96¢\97\88\82Ì\83X\83\8c\82Ì\90\90¬\93ú\82ð\95\\8e¦\82µ\82È\82¢
+        FFutureThread: Boolean;
+
                //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
                FUseMachineTime: Boolean;
                FTimeAdjustSec: Integer;
                FTimeAdjust: Boolean;
 
+               //\82 \82Ú\81`\82ñ
+               FAbonDeleterlo : Boolean; //&rlo;\82ð\8dí\82é\82©
+               FAbonReplaceul : Boolean; //<ul>\83^\83O\82ð<br>\83^\83O\82É\92u\8a·\82·\82é\82©
+               FPopUpAbon               : Boolean; //\83\8c\83X\83|\83b\83v\83A\83b\83v\8e\9e\82Ì\82 \82Ú\81`\82ñ\97L\8cø
+               FShowNGLinesNum : Boolean; //\8aY\93\96\82µ\82½\82m\82f\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8ds\90\94\82ð\95\\8e¦
+               FAddResAnchor : Boolean; //NG\83\8c\83X\82Ö\82Ì\83\8c\83X\83A\83\93\83J\81[\82ð\92Ç\89Á\82·\82é
+        FDeleteSyria : Boolean;        //\83V\83\8a\83A\8cê\83u\83\89\83N\83\89\91Î\8dô
+
+               // \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
+               FSelectComboBoxWidth : Integer;
+
+               // \8dÅ\8cã\82É\91I\91ð\82³\82ê\82½\83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82Ì\83^\83u
+               FOptionDialogTabIndex: Integer;
+
+               // \8dÅ\8cã\82É\91I\91ð\82³\82ê\82½\83L\83\83\83r\83l\83b\83g
+               FCabinetIndex: Integer;
+
+               //\8fI\97¹\8e\9e\82É\8am\94F\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é\82©
+               FShowDialogForEnd : Boolean;
+               //\91S\82Ä\82Ì\83^\83u\95Â\82\82é\82Ì\82Æ\82«\82É\8am\94F\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
+               FShowDialogForAllTabClose: Boolean;
+               //\8eæ\93¾\83\8c\83X\90\94\82Æ\83X\83\8c\83b\83h\82Ì\83\8c\83X\90\94\82ª\88Ù\82È\82Á\82½\82Æ\82«\82É\92Ê\8fí\94w\8ci\90F\82Æ\88á\82Á\82½\90F\82Ì\94w\8ci\90F\82ð\8eg\97p\82·\82é\82©
+               FUseOddColorOddResNum: Boolean;
+               FOddColor: TColor;
+
+        //Samba24\91Î\8dô\8b@\94\\82ð\8eg\82¤\82©
+        FUseSamba: Boolean;
+
+               //\83\8c\83X\83A\83\93\83J\81[\82ð\83N\83\8a\83b\83N\82µ\82Ä\83W\83\83\83\93\83v\82·\82é\82©
+               FResAnchorJamp: Boolean;
+
+               // \83G\83f\83B\83^
+               FSpaceToNBSP    : Boolean;      ///< \94¼\8ap\83X\83y\81[\83X\81ATab \82ð &nbsp; \82É\92u\8a·
+               FAmpToCharRef   : Boolean;      ///< '&' \82ð &amp; \82É\92u\8a·
+               
                function GetMainCoolSet(Index: Integer): TCoolSet;
                function GetBoardCoolSet(Index: Integer): TCoolSet;
                function GetBrowserCoolSet(Index: Integer): TCoolSet;
@@ -244,20 +326,50 @@ type
                procedure SetSoundFileName(Index: Integer; value: string);
                function Encrypt(s: string): string;
                function Decrypt(s: string): string;
+
+               procedure MakeURLIniFile();
+
+               procedure SetUseCSS( value: Boolean );
+               procedure SetCSSFileName( fileName: string );
        protected
 
        public
                constructor Create;
                destructor Destroy; override;
                function GetFileName: string;
+               function GetBoardURLFileName: string;
                procedure ReadSettingFile;
+               procedure ReadBoardURLsFile;
                procedure WriteSystemSettingFile;
                procedure WriteWindowSettingFile;
                procedure WriteNameMailSettingFile;
                procedure WriteFolderSettingFile();
+               procedure WriteBoardURLSettingFile;
                function GetSoundCount: Integer;
                function FindSoundFileName(Name: string): string;
 
+               function GetBoardFileName: string;
+               function GetCustomBoardFileName: string;
+               function GetBoardDir: string;
+               function GetHtmlTempFileName: string;
+               function GetAppDir: string;
+               function GetTempFolder: string;
+               function GetSentFileName: string;
+               function GetConfigDir: string;
+               function GetSkinDir: string;
+               function GetSkinHeaderFileName: string;
+               function GetSkinFooterFileName: string;
+               function GetSkinResFileName: string;
+               function GetSkinNewResFileName: string;
+               function GetSkinBookmarkFileName: string;
+               function GetSkinNewmarkFileName: string;
+               function GetStyleSheetDir: string;
+               function GetOutBoxFileName: string;
+               function GetNGWordsDir: string;
+               function GetBoardPlugInDir: string;
+               function GetSambaFileName: string;
+               function GetIgnoreFileName: string;
+
                //\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
                property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize;
                //HTTP1.1\8eg\97p
@@ -291,9 +403,12 @@ type
                property ListFontColor: TColor read FListFontColor write FListFontColor;
                property ListBackColor: TColor read FListBackColor write FListBackColor;
 
-//             property BrowserFontColor: TColor read FBrowserFontColor write FBrowserFontColor;
-//             property BrowserBackColor: TColor read FBrowserBackColor write FBrowserBackColor;
-//             property BrowserFontSize: Integer read FBrowserFontSize write FBrowserFontSize;
+               property BrowserFontName: string read FBrowserFontName write FBrowserFontName;
+               property BrowserFontSize: Integer read FBrowserFontSize write FBrowserFontSize;
+               property BrowserFontBold: Integer read FBrowserFontBold write FBrowserFontBold;
+               property BrowserFontItalic: Integer read FBrowserFontItalic write FBrowserFontItalic;
+               property BrowserFontColor: Integer read FBrowserFontColor write FBrowserFontColor;
+               property BrowserBackColor: Integer read FBrowserBackColor write FBrowserBackColor;
 
                property EditorFontName: string read FEditorFontName write FEditorFontName;
                property EditorFontSize: Integer read FEditorFontSize write FEditorFontSize;
@@ -359,13 +474,18 @@ type
                property EditWindowHeight: Integer read FEditWindowHeight write FEditWindowHeight;
                property EditWindowWidth: Integer read FEditWindowWidth write FEditWindowWidth;
                property EditWindowMax: Boolean read FEditWindowMax write FEditWindowMax;
+               property EditWindowStay: Boolean read FEditWindowStay write FEditWindowStay;
+               property EditWindowTranslucent: Boolean read FEditWindowTranslucent write FEditWindowTranslucent;
 
                property ListViewNo: Boolean read FListViewNo write FListViewNo;
-               property UseCSS: Boolean read FUseCSS write FUseCSS;
-               property CSSFileName: string read FCSSFileName write FCSSFileName;
+               property UseCSS: Boolean read FUseCSS write SetUseCSS;
+               property CSSFileName: string read FCSSFileName write SetCSSFileName;
+               property UseSkin: Boolean read FUseSkin;
 
                property ShowMail: Boolean read FShowMail write FShowMail;
+               property OnlyAHundredRes : Boolean read FOnlyAHundredRes write FOnlyAHundredRes;
                property UnActivePopup: Boolean read FUnActivePopup write FUnActivePopup;
+               property ResPopupHeaderBold: Boolean read FResPopupHeaderBold write FResPopupHeaderBold;
 
                property LogFolder: string read FLogFolder write FLogFolder;
                property NewLogFolder: string read FNewLogFolder write FNewLogFolder;
@@ -378,11 +498,14 @@ type
                property SoundViewName[index: Integer]: string read GetSoundViewName;
                property SoundFileName[index: Integer]: string read GetSoundFileName write SetSoundFileName;
 
-               property BoardURL2ch: string read FBoardURL2ch write FBoardURL2ch;
-
+               //property BoardURL2ch: string read FBoardURL2ch write FBoardURL2ch;
+               property BoardURLs: TStringList read FBoardURLs write FBoardURLs;
+               property BoardURLSelected: Integer read FBoardURLSelected write FBoardURLSelected;
                property UserID: string read FUserID write FUserID;
                property Password: string read FPassword write FPassword;
                property AutoLogin: Boolean read FAutoLogin write FAutoLogin;
+               property ForcedLogin: Boolean read FForcedLogin write FForcedLogin;
+               property DolibURL: string read FDolibURL write FDolibURL;
 
                property URLApp: Boolean read FURLApp write FURLApp;
                property URLAppFile: string read FURLAppFile write FURLAppFile;
@@ -408,13 +531,46 @@ type
                property PreviewVisible: Boolean read FPreviewVisible write FPreviewVisible;
                property PreviewSize: TGikoPreviewSize read FPreviewSize write FPreviewSize;
                property PreviewWait: Integer read FPreviewWait write FPreviewWait;
+               property BrowserAutoMaximize: TGikoBrowserAutoMaximize read FBrowserAutoMaximize write FBrowserAutoMaximize;
 
                property ListIconVisible: Boolean read FListIconVisible write FListIconVisible;
+               property CreationTimeLogs: Boolean read FCreationTimeLogs write FCreationTimeLogs;
+               property FutureThread: Boolean read FFutureThread write FFutureThread;
 
                property UseMachineTime: Boolean read FUseMachineTime write FUseMachineTime;
                property TimeAdjustSec: Integer read FTimeAdjustSec write FTimeAdjustSec;
                property TimeAdjust: Boolean read FTimeAdjust write FTimeAdjust;
-       end;
+
+               //\82 \82Ú\81`\82ñ
+               property AbonDeleterlo : Boolean read FAbonDeleterlo write FAbonDeleterlo;
+               property AbonReplaceul : Boolean read FAbonReplaceul write FAbonReplaceul;
+               property PopUpAbon               : Boolean read FPopUpAbon write FPopUpAbon;
+               property ShowNGLinesNum : Boolean read FShowNGLinesNum write FShowNGLinesNum;
+               property AddResAnchor : Boolean read FAddResAnchor write FAddResAnchor;
+               property DeleteSyria : Boolean read FDeleteSyria write FDeleteSyria;
+               // \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
+               property SelectComboBoxWidth : Integer read FSelectComboBoxWidth write FSelectComboBoxWidth;
+
+               // \8dÅ\8cã\82É\91I\91ð\82³\82ê\82½\83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82Ì\83^\83u
+               property OptionDialogTabIndex : Integer read FOptionDialogTabIndex write FOptionDialogTabIndex;
+
+               // \8dÅ\8cã\82É\91I\91ð\82³\82ê\82½\83L\83\83\83r\83l\83b\83g
+               property CabinetIndex : Integer read FCabinetIndex write FCabinetIndex;
+
+               //\8fI\97¹\8e\9e\82É\8am\94F\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é\82©
+               property ShowDialogForEnd : Boolean read FShowDialogForEnd write FShowDialogForEnd;
+               property ShowDialogForAllTabClose: Boolean read FShowDialogForAllTabClose write FShowDialogForAllTabClose;
+               //\8eæ\93¾\83\8c\83X\90\94\82Æ\83X\83\8c\83b\83h\82Ì\83\8c\83X\90\94\82ª\88Ù\82È\82Á\82½\82Æ\82«\82É\92Ê\8fí\94w\8ci\90F\82Æ\88á\82Á\82½\90F\82Ì\94w\8ci\90F\82ð\8eg\97p\82·\82é\82©
+               property UseOddColorOddResNum: Boolean read FUseOddColorOddResNum write FUseOddColorOddResNum;
+               property OddColor: TColor read FOddColor write FOddColor;
+               property UseSamba: Boolean read FUseSamba write FUseSamba;
+        property ResAnchorJamp: Boolean read FResAnchorJamp write FResAnchorJamp;
+
+               // \83G\83f\83B\83^
+               property SpaceToNBSP    : Boolean       read FSpaceToNBSP               write FSpaceToNBSP;
+               property AmpToCharRef   : Boolean       read FAmpToCharRef      write FAmpToCharRef;
+end;
+
 
 
 implementation
@@ -427,26 +583,29 @@ type
        end;
 
 const
-       INI_FILE_NAME: string         = 'gikoNavi.ini';
-       DEFAULT_FONT_NAME: string     = '\82l\82\82o\83S\83V\83b\83N';
-       DEFAULT_FONT_SIZE: Integer    = 9;
-       DEFAULT_FONT_COLOR: string    = 'clWindowText';
-       DEFAULT_WINDOW_COLOR: string  = 'clWindow';
-       DEFAULT_TAB_FONT_NAME: string     = '\82l\82\82o\83S\83V\83b\83N';
-       DEFAULT_TAB_FONT_SIZE: Integer    = 9;
-       DEFAULT_2CH_BOARD_URL: string = 'http://www6.ocn.ne.jp/~mirv/2chmenu.html';
+       INI_FILE_NAME: string                            = 'gikoNavi.ini';
+       BOARD_URL_INI_FILE_NAME: string = 'url.ini';
+       DEFAULT_FONT_NAME: string                = '\82l\82\82o\83S\83V\83b\83N';
+       DEFAULT_FONT_SIZE: Integer              = 9;
+       DEFAULT_FONT_COLOR: string              = 'clWindowText';
+       DEFAULT_WINDOW_COLOR: string    = 'clWindow';
+       DEFAULT_TAB_FONT_NAME: string            = '\82l\82\82o\83S\83V\83b\83N';
+       DEFAULT_TAB_FONT_SIZE: Integer          = 9;
+       DEFAULT_2CH_BOARD_URL1: string = 'http://www6.ocn.ne.jp/~mirv/2chmenu.html';
+       DEFAULT_2CH_BOARD_URL2: string = 'http://www.ff.iij4u.or.jp/~ch2/bbsmenu.html';
+                                     //http://menu.2ch.net/bbsmenu.html //\82à\82¤\82·\82®\82±\82ê\82ª\90³\8e®\82È\94Â\88ê\97\97\82É\82È\82é\82æ\82¤
                                                                                                                                //'http://www.2ch.net/newbbsmenu.html';
-       GIKO_ENCRYPT_TEXT: string     = 'gikoNaviEncryptText';
+       GIKO_ENCRYPT_TEXT: string                = 'gikoNaviEncryptText';
 
 var
        SOUND_NAME: array[0..4] of TSoundName = (
-               (Name: 'New';        ViewName: '\8eæ\93¾\90¬\8c÷';           FileName: ''),
-               (Name: 'NewDiff';    ViewName: '\8eæ\93¾\90¬\8c÷(\8d·\95ª)';     FileName: ''),
-               (Name: 'NoChange';   ViewName: '\96¢\8dX\90V';             FileName: ''),
-//             (Name: 'RoundEnd';   ViewName: '\8f\84\89ñ\8fI\97¹(\8eæ\93¾\82 \82è)'; FileName: ''),
-//             (Name: 'RoundNone';  ViewName: '\8f\84\89ñ\8fI\97¹(\8eæ\93¾\82È\82µ)'; FileName: ''),
-               (Name: 'ResEnd';     ViewName: '\83\8c\83X\91\97\90M\8a®\97¹';       FileName: ''),
-               (Name: 'Error';      ViewName: '\83G\83\89\81[';             FileName: ''));
+               (Name: 'New';                           ViewName: '\8eæ\93¾\90¬\8c÷';                                    FileName: ''),
+               (Name: 'NewDiff';               ViewName: '\8eæ\93¾\90¬\8c÷(\8d·\95ª)';              FileName: ''),
+               (Name: 'NoChange';       ViewName: '\96¢\8dX\90V';                                             FileName: ''),
+//             (Name: 'RoundEnd';       ViewName: '\8f\84\89ñ\8fI\97¹(\8eæ\93¾\82 \82è)'; FileName: ''),
+//             (Name: 'RoundNone';     ViewName: '\8f\84\89ñ\8fI\97¹(\8eæ\93¾\82È\82µ)'; FileName: ''),
+               (Name: 'ResEnd';                 ViewName: '\83\8c\83X\91\97\90M\8a®\97¹';                       FileName: ''),
+               (Name: 'Error';                 ViewName: '\83G\83\89\81[';                                              FileName: ''));
 
 //\83R\83\93\83X\83g\83\89\83N\83^
 constructor TSetting.Create();
@@ -454,11 +613,13 @@ begin
        FNameList := TStringList.Create;
        FMailList := TStringList.Create;
        FSelectTextList := TStringList.Create;
-
+       FBoardURLs := TStringList.Create;
        FNameList.Duplicates := dupIgnore;
        FMailList.Duplicates := dupIgnore;
+       FBoardURLs.Duplicates := dupIgnore;
        FSelectTextList.Duplicates := dupIgnore;
        ReadSettingFile();
+       ReadBoardURLsFile();
 end;
 
 //\83f\83X\83g\83\89\83N\83^
@@ -466,6 +627,7 @@ destructor TSetting.Destroy();
 begin
        inherited;
        FSelectTextList.Free;
+       FBoardURLs.Free;
        FMailList.Free;
        FNameList.Free;
 end;
@@ -476,12 +638,19 @@ begin
        Result := ExtractFilePath(Application.ExeName) + INI_FILE_NAME;
 end;
 
+//\94Â\8dX\90V\97pURL\90Ý\92è\83t\83@\83C\83\8b\96¼\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+function TSetting.GetBoardURLFileName(): string;
+begin
+       Result := ExtractFilePath(Application.ExeName) + BOARD_URL_INI_FILE_NAME;
+end;
+
 //\90Ý\92è\83t\83@\83C\83\8b\93Ç\8d\9e
 procedure TSetting.ReadSettingFile();
 const
        DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140);
-       DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130);
-       DEFAULT_BOARD_WIDTH: array[0..6] of Integer = (350, 60, 60, 60, 60, 80, 130);
+       DEFAULT_CATEGORY_WIDTH: array[0..3] of Integer = (150, 80, 130, 130);
+       DEFAULT_BOARD_WIDTH: array[0..7] of Integer = (350, 60, 60, 60, 60, 80, 130, 130);
+       MAX_WIDTH: Integer = 2000;
 var
        ini: TMemIniFile;
        i: Integer;
@@ -514,6 +683,13 @@ begin
                FWriteProxyUserID := ini.ReadString('WriteProxy', 'UserID', '');
                FWriteProxyPassword := ini.ReadString('WriteProxy', 'Password', '');
 
+               FBrowserFontName := ini.ReadString('Window', 'BrowserFontName', '');
+               FBrowserFontSize := ini.ReadInteger('Window', 'BrowserFontSize', 0);
+               FBrowserFontBold := ini.ReadInteger('Window', 'BrowserFontBold', 0);
+               FBrowserFontItalic := ini.ReadInteger('Window', 'BrowserFontItalic', 0);
+               FBrowserFontColor := ini.ReadInteger('Window', 'BrowserFontColor', -1);
+               FBrowserBackColor := ini.ReadInteger('Window', 'BrowserBackColor', -1);
+
                FCabinetFontName := ini.ReadString('Window', 'CabinetFontName', DEFAULT_FONT_NAME);
                FCabinetFontSize := ini.ReadInteger('Window', 'CabinetFontSize', DEFAULT_FONT_SIZE);
                FCabinetFontBold := ini.ReadBool('Window', 'CabinetFontBold', False);
@@ -527,6 +703,8 @@ begin
                FListFontItalic := ini.ReadBool('Window', 'ListFontItalic', False);
                FListFontColor := StringToColor(ini.ReadString('Window', 'ListFontColor', DEFAULT_FONT_COLOR));
                FListBackColor := StringToColor(ini.ReadString('Window', 'ListBackColor', DEFAULT_WINDOW_COLOR));
+        FUseOddColorOddResNum := ini.ReadBool('Window','UseOddColor', False);
+        FOddColor := StringToColor(ini.ReadString('Window', 'OddColor', DEFAULT_WINDOW_COLOR));
 
                FEditorFontName := ini.ReadString('Window', 'EditorFontName', DEFAULT_FONT_NAME);
                FEditorFontSize := ini.ReadInteger('Window', 'EditorFontSize', DEFAULT_FONT_SIZE);
@@ -563,6 +741,10 @@ begin
                FEditWindowHeight := ini.ReadInteger('EditorWindowSize', 'Height', -1);
                FEditWindowWidth := ini.ReadInteger('EditorWindowSize', 'Width', -1);
                FEditWindowMax := ini.ReadBool('EditorWindowSize', 'Max', False);
+               FEditWindowStay := ini.ReadBool('EditorWindowSize', 'Stay', False);
+        FEditWindowTranslucent := ini.ReadBool('EditorWindowSize', 'Translucent', False);
+
+               FOptionDialogTabIndex := ini.ReadInteger('OptionDialog', 'TabIndex', 0);
 
                //\83c\81[\83\8b\83o\81[
                FStdToolBarVisible := ini.ReadBool('ToolBar', 'StdVisible', True);
@@ -588,6 +770,7 @@ begin
 
                FCabinetVisible := ini.ReadBool('Cabinet', 'Visible', True);
                FCabinetWidth := ini.ReadInteger('Cabinet', 'Width', 200);
+               FCabinetIndex := ini.ReadInteger('Cabinet', 'Index', 0);
 
                FListOrientation := TGikoListOrientation(ini.ReadInteger('List', 'Orientation', Ord(gloHorizontal)));
                FListHeight := ini.ReadInteger('List', 'Height', 180);
@@ -630,6 +813,8 @@ begin
                        end;
                        for i := 0 to Length(FBBSColumnWidth) - 1 do begin
                                BBSColumnWidth[i] := ini.ReadInteger('BBSColumnWidth', 'ID' + IntToStr(i), DEFAULT_BBS_WIDTH[i]);
+                               if BBSColumnWidth[i] > MAX_WIDTH then
+                                       BBSColumnWidth[i] := DEFAULT_BBS_WIDTH[i];
                        end;
                        ini.ReadSection('CategoryColumnWidth', wkList);
                        if Length(FCategoryColumnWidth) <> wkList.Count then begin
@@ -637,6 +822,8 @@ begin
                        end;
                        for i := 0 to Length(FCategoryColumnWidth) - 1 do begin
                                CategoryColumnWidth[i] := ini.ReadInteger('CategoryColumnWidth', 'ID' + IntToStr(i), DEFAULT_CATEGORY_WIDTH[i]);
+                               if CategoryColumnWidth[i] > MAX_WIDTH then
+                                       CategoryColumnWidth[i] := DEFAULT_CATEGORY_WIDTH[i];
                        end;
                        ini.ReadSection('BoardColumnWidth', wkList);
                        if Length(FBoardColumnWidth) <> wkList.Count then begin
@@ -644,6 +831,8 @@ begin
                        end;
                        for i := 0 to Length(FBoardColumnWidth) - 1 do begin
                                BoardColumnWidth[i] := ini.ReadInteger('BoardColumnWidth', 'ID' + IntToStr(i), DEFAULT_BOARD_WIDTH[i]);
+                               if BoardColumnWidth[i] > MAX_WIDTH then
+                                       BoardColumnWidth[i] := DEFAULT_BOARD_WIDTH[i];
                        end;
                finally
                        wkList.Free;
@@ -653,29 +842,42 @@ begin
                //\83\8a\83X\83g\94Ô\8d\86
                FListViewNo := ini.ReadBool('Function', 'ListViewNo', True);
                //CSS
-               FUseCSS := ini.ReadBool('CSS', 'UseCSS', True);
+               UseCSS := ini.ReadBool('CSS', 'UseCSS', True);
                //CSS\83t\83@\83C\83\8b\96¼
-               FCSSFileName := ini.ReadString('CSS', 'FileName', 'default.css');
+               CSSFileName := ini.ReadString('CSS', 'FileName', 'default.css');
 
                //Mail\97\93\95\\8e¦
                FShowMail := ini.ReadBool('Thread', 'ShowMail', True);
-               //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
+               //\8dÅ\90V100\83\8c\83X\95\\8e¦
+               FOnlyAHundredRes := ini.ReadBool('Thread', 'OnlyAHundredRes',false);
+               //\94ñ\83A\83N\83e\83B\83u\8e\9e\83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦
                FUnActivePopup := ini.ReadBool('Thread', 'UnActivePopup', False);
-
+               //\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
+               FResPopupHeaderBold := ini.ReadBool('Thread', 'ResPopupHeaderBold', True);
                //\8dí\8f\9c\8am\94F
                FDeleteMsg := ini.ReadBool('Function', 'LogDeleteMessage', True);
-
+               //\8fI\97¹\8am\94F
+               FShowDialogForEnd := ini.ReadBool('Function','ShowDialogForEnd',false);
+               //AllTabClose
+               FShowDialogForAllTabClose := ini.ReadBool('Function','ShowDialogForAllTabClose',false);
+        //Samba
+               FUseSamba := ini.ReadBool('Function','UseSamba', True);
+               //ResAnchorjamp
+               ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);
                //\83\8d\83O\83t\83H\83\8b\83_
                FLogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
                NewLogFolder := '';
 
                //\94ÂURL
-               FBoardURL2ch := ini.ReadString('BoardURL', '2ch', DEFAULT_2CH_BOARD_URL);
+               //\95¡\90\94\93o\98^\82Å\82«\82é\82æ\82¤\82É\82µ\82ÄFBoardURLs\82É\82µ\82½\81@2003/10/05
+               //FBoardURL2ch := ini.ReadString('BoardURL', '2ch', DEFAULT_2CH_BOARD_URL);
 
                //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
                FUserID := ini.ReadString('Attestation', 'UserID', '');
                FPassword := Decrypt(ini.ReadString('Attestation', 'Password', ''));
                FAutoLogin := ini.ReadBool('Attestation', 'AutoLogin', False);
+               FForcedLogin := ini.ReadBool('Attestation', 'FForcedLogin', False);
+//             FDolibURL       := ini.ReadString('Attestation', 'FDolibURL', DOLIB_LOGIN_URL);
 
                //URL\83N\83\8a\83b\83N\8e\9e\8bN\93®\83A\83v\83\8a
                FURLApp := ini.ReadBool('URLApp', 'Select', False);
@@ -698,8 +900,14 @@ begin
                FPreviewSize := TGikoPreviewSize(ini.ReadInteger('Browser', 'PreviewSize', Ord(gpsMedium)));
                FPreviewWait := ini.ReadInteger('Browser', 'PreviewWait', 500);
 
+               // \83u\83\89\83E\83U
+               FBrowserAutoMaximize := TGikoBrowserAutoMaximize(
+                       ini.ReadInteger('Window', 'BrowserAutoMaximize', Ord(gbmDoubleClick)) );
+
                //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
                FListIconVisible := ini.ReadBool('ThreadList', 'StateIconVisible', True);
+        FCreationTimeLogs := ini.ReadBool('ThreadList', 'CreationTimeLogs', True);
+        FFutureThread := ini.ReadBool('ThreadList', 'FutureThread', True);
 
                //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8d\8f\8eg\97p\90Ý\92è
                FUseMachineTime := ini.ReadBool('PostTime', 'UseMachineTime', False);
@@ -729,11 +937,12 @@ begin
                        CoolSet.FCoolBreak := ini.ReadBool('MainCoolBar', 'Break' + IntToStr(i), False);
                        MainCoolSet[i] := CoolSet;
                end;
+               FSelectComboBoxWidth := ini.ReadInteger( 'ListCoolBar', 'SelectWidth', 127 );
                for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
                        CoolSet.FCoolID := ini.ReadInteger('ListCoolBar', 'ID' + IntToStr(i), -1);
                        CoolSet.FCoolWidth := ini.ReadInteger('ListCoolBar', 'Width' + IntToStr(i), -1);
                        CoolSet.FCoolBreak := ini.ReadBool('ListCoolBar', 'Break' + IntToStr(i), False);
-                       LIstCoolSet[i] := CoolSet;
+                       ListCoolSet[i] := CoolSet;
                end;
                for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
                        CoolSet.FCoolID := ini.ReadInteger('BrowserCoolBar', 'ID' + IntToStr(i), -1);
@@ -741,11 +950,43 @@ begin
                        CoolSet.FCoolBreak := ini.ReadBool('BrowserCoolBar', 'Break' + IntToStr(i), False);
                        BrowserCoolSet[i] := CoolSet;
                end;
+
+               //\82 \82Ú\81`\82ñ
+               FAbonDeleterlo := ini.ReadBool('Abon','Deleterlo',false);
+               FAbonReplaceul := ini.ReadBool('Abon','Replaceul',false);
+               FPopUpAbon               := ini.ReadBool('Abon','Popup',false);
+               FShowNGLinesNum := ini.ReadBool('Abon','ShowNGLines',false);
+               FAddResAnchor := ini.ReadBool('Abon','AddResAnchor',false);
+        FDeleteSyria :=  ini.ReadBool('Abon','DeleteSyria',false);
+
+               // \83G\83f\83B\83^
+               FSpaceToNBSP    := ini.ReadBool( 'Editor', 'SpaceToNBSP', True );
+               FAmpToCharRef   := ini.ReadBool( 'Editor', 'AmpToCharRef', False );
        finally
                ini.Free;
        end;
 end;
+//\94Â\8dX\90V\97pURL\93Ç\82Ý\8d\9e\82Ý
+procedure TSetting.ReadBoardURLsFile();
+var
+       ini: TMemIniFile;
+       urlNum: Integer;
+       i : Integer;
+begin
+       if not FileExists(GetBoardURLFileName()) then
+       MakeURLIniFile();
+       ini := TMemIniFile.Create(GetBoardURLFileName());
+       try
+               urlNum := ini.ReadInteger('URL','count',0);
+               BoardURLSelected := ini.ReadInteger('URL','selected',0);
+               for i := 0 to urlNum - 1 do begin
+                       FBoardURLs.Append(ini.ReadString('URL',IntToStr(i+1),''));
+               end;
+       finally
+               ini.Free;
+       end;
 
+end;
 //\90Ý\92è\83t\83@\83C\83\8b\95Û\91¶(system)
 procedure TSetting.WriteSystemSettingFile();
 var
@@ -772,6 +1013,14 @@ begin
                ini.WriteString('WriteProxy', 'UserID', FWriteProxyUserID);
                ini.WriteString('WriteProxy', 'Password', FWriteProxyPassword);
 
+               ini.WriteString('Window', 'BrowserFontName', FBrowserFontName);
+               ini.WriteInteger('Window', 'BrowserFontSize', FBrowserFontSize);
+               ini.WriteInteger('Window', 'BrowserFontSize', FBrowserFontSize);
+               ini.WriteInteger('Window', 'BrowserFontBold', FBrowserFontBold);
+               ini.WriteInteger('Window', 'BrowserFontItalic', FBrowserFontItalic);
+               ini.WriteInteger('Window', 'BrowserFontColor', FBrowserFontColor);
+               ini.WriteInteger('Window', 'BrowserBackColor', FBrowserBackColor);
+
                ini.WriteString('Window', 'CabinetFontName', FCabinetFontName);
                ini.WriteInteger('Window', 'CabinetFontSize', FCabinetFontSize);
                ini.WriteString('Window', 'CabinetFontColor', ColorToString(FCabinetFontColor));
@@ -781,6 +1030,8 @@ begin
                ini.WriteInteger('Window', 'ListFontSize', FListFontSize);
                ini.WriteString('Window', 'ListFontColor', ColorToString(FListFontColor));
                ini.WriteString('Window', 'ListBackColor', ColorToString(FListBackColor));
+        ini.WriteBool('Window','UseOddColor',FUseOddColorOddResNum);
+        ini.WriteString('Window', 'OddColor',ColorToString(FOddColor));
 
                ini.WriteString('Window', 'EditorFontName', FEditorFontName);
                ini.WriteInteger('Window', 'EditorFontSize', FEditorFontSize);
@@ -825,6 +1076,10 @@ begin
                ini.WriteInteger('EditorWindowSize', 'Height', EditWindowHeight);
                ini.WriteInteger('EditorWindowSize', 'Width', EditWindowWidth);
                ini.WriteBool('EditorWindowSize', 'Max', EditWindowMax);
+               ini.WriteBool('EditorWindowSize', 'Stay', EditWindowStay);
+               ini.WriteBool('EditorWindowSize', 'Translucent', EditWindowTranslucent);
+
+               ini.WriteInteger('OptionDialog', 'TabIndex', FOptionDialogTabIndex);
 
                //\83c\81[\83\8b\83o\81[
                ini.WriteBool('ToolBar', 'StdVisible', FStdToolBarVisible);
@@ -854,6 +1109,7 @@ begin
                //\83L\83\83\83r\83l\83b\83g
                ini.WriteBool('Cabinet', 'Visible', FCabinetVisible);
                ini.WriteInteger('Cabinet', 'Width', FCabinetWidth);
+               ini.WriteInteger('Cabinet', 'Index', FCabinetIndex);
 
                //\83\8a\83X\83g\82Ì\83T\83C\83Y\82Æ\90\82\92¼\90\85\95½
                ini.WriteInteger('List', 'Orientation', Ord(FListOrientation));
@@ -875,17 +1131,31 @@ begin
                ini.WriteString('CSS', 'FileName', FCSSFileName);
                //Mail\97\93\95\\8e¦
                ini.WriteBool('Thread', 'ShowMail', FShowMail);
+               //\8dÅ\90V100\83\8c\83X\95\\8e¦
+               ini.WriteBool('Thread', 'OnlyAHundredRes', FOnlyAHundredRes);
                //\83\8d\83O\8dí\8f\9c\8am\94F
                ini.WriteBool('Function', 'LogDeleteMessage', FDeleteMsg);
+               //\8fI\97¹\8am\94F
+               ini.WriteBool('Function','ShowDialogForEnd',FShowDialogForEnd);
+               //AllTabClose
+               ini.WriteBool('Function','ShowDialogForAllTabClose', FShowDialogForAllTabClose);
+               //Samba
+               ini.WriteBool('Function','UseSamba', FUseSamba);
+               //ResAnchorjamp
+               ini.WriteBool('Function', 'ResAnchoJamp', ResAnchorJamp);
+
                //\94ñ\83A\83N\83e\83B\83u\8e\9e\83|\83b\83v\83A\83b\83v\95\\8e¦
                ini.WriteBool('Thread', 'UnActivePopup', FUnActivePopup);
-
-               ini.WriteString('BoardURL', '2ch', FBoardURL2ch);
+               //\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
+               ini.WriteBool('Thread', 'ResPopupHeaderBold', FResPopupHeaderBold);
+               //ini.WriteString('BoardURL', '2ch', FBoardURL2ch);
 
                //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
                ini.WriteString('Attestation', 'UserID', FUserID);
                ini.WriteString('Attestation', 'Password', Encrypt(FPassword));
                ini.WriteBool('Attestation', 'AutoLogin', FAutoLogin);
+               ini.WriteBool('Attestation', 'FForcedLogin', FForcedLogin);
+               ini.WriteString('Attestation', 'FDolibURL', FDolibURL);
 
                //URL\83N\83\8a\83b\83N\8e\9e\8bN\93®\83A\83v\83\8a
                ini.WriteBool('URLApp', 'Select', FURLApp);
@@ -907,9 +1177,12 @@ begin
                ini.WriteBool('Browser', 'PreviewVisible', FPreviewVisible);
                ini.WriteInteger('Browser', 'PreviewSize', Ord(FPreviewSize));
                ini.WriteInteger('Browser', 'PreviewWait', FPreviewWait);
+               ini.WriteInteger('Browser', 'AutoMaximize', Ord( FBrowserAutoMaximize ) );
 
                //\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
                ini.WriteBool('ThreadList', 'StateIconVisible', FListIconVisible);
+               ini.WriteBool('ThreadList', 'CreationTimeLogs',FCreationTimeLogs);
+               ini.WriteBool('ThreadList', 'FutureThread', FFutureThread);
 
                //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8d\8f\8eg\97p\90Ý\92è
                ini.WriteBool('PostTime', 'UseMachineTime', FUseMachineTime);
@@ -942,7 +1215,8 @@ begin
                        ini.WriteInteger('MainCoolBar', 'Width' + IntToStr(i), CoolSet.FCoolWidth);
                        ini.WriteBool('MainCoolBar', 'Break' + IntToStr(i), CoolSet.FCoolBreak);
                end;
-               ini.EraseSection('BoardCoolBar');
+               ini.EraseSection('ListCoolBar');
+               ini.WriteInteger( 'ListCoolBar', 'SelectWidth', FSelectComboBoxWidth );
                for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
                        CoolSet := ListCoolSet[i];
                        ini.WriteInteger('ListCoolBar', 'ID' + IntToStr(i), CoolSet.FCoolID);
@@ -957,6 +1231,18 @@ begin
                        ini.WriteBool('BrowserCoolBar', 'Break' + IntToStr(i), CoolSet.FCoolBreak);
                end;
 
+               //\82 \82Ú\81`\82ñ
+               ini.WriteBool('Abon','Deleterlo',FAbonDeleterlo);
+               ini.WriteBool('Abon','Replaceul',FAbonReplaceul);
+                               ini.WriteBool('Abon','Popup',FPopUpAbon);
+               ini.WriteBool('Abon','ShowNGLines',FShowNGLinesNum);
+               ini.WriteBool('Abon','AddResAnchor',FAddResAnchor);
+                               ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
+
+               // \83G\83f\83B\83^
+               ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );
+               ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );
+
                ini.UpdateFile;
        finally
                ini.Free;
@@ -1010,7 +1296,33 @@ begin
                ini.Free;
        end;
 end;
+//\94Â\8dX\90V\97pBoardURL\82ð\95Û\91
+procedure TSetting.WriteBoardURLSettingFile();
+var
+       ini: TMemIniFile;
+               i : Integer;
+               oldcount : Integer;
+begin
+       ini := TMemIniFile.Create(GetBoardURLFileName());
+       try
+               oldcount := ini.ReadInteger('URL','count',FBoardURLs.Count);
+               ini.WriteInteger('URL','count',FBoardURLs.Count);
+               ini.WriteInteger('URL','selected',BoardURLSelected);
+               for i := 0 to FBoardURLs.Count -1 do begin
+                                       ini.WriteString('URL',IntToStr(i+1),FBoardURLs.Strings[i]);
+               end;
+               if oldcount > FBoardURLs.Count then begin
+                       for i := FBoardURLs.Count to oldcount do begin
+                               ini.DeleteKey('URL',IntToStr(i+1));
+                       end;
+               end;
+               ini.UpdateFile;
+       finally
+               ini.Free;
+       end;
+end;
 
+{$R-}
 //\83\8a\83X\83g\83J\83\89\83\80\83w\83b\83_\81[
 function TSetting.GetBBSColumnWidth(index: Integer): Integer;
 begin
@@ -1026,6 +1338,9 @@ function TSetting.GetBoardColumnWidth(index: Integer): Integer;
 begin
        Result := IfThen(index in [0..Length(FBoardColumnWidth) - 1], FBoardColumnWidth[index], 0);
 end;
+{$IFDEF DEBUG}
+{$R+}
+{$ENDIF}
 
 procedure TSetting.SetBBSColumnWidth(index: Integer; value: Integer);
 begin
@@ -1189,6 +1504,180 @@ begin
                FBrowserCoolBar[Index] := CoolSet;
 end;
 
+//url.ini\82ª\82È\82¢\82Æ\82«\82É\90\90¬\82·\82é
+procedure TSetting.MakeURLIniFile();
+var
+       ini: TMemIniFile;
+begin
+       ini := TMemIniFile.Create(GetBoardURLFileName());
+       try
+               ini.WriteInteger('URL','count',2);
+               ini.WriteInteger('URL','selected',2);
+               ini.WriteString('URL','1',DEFAULT_2CH_BOARD_URL1);
+               ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
+               ini.UpdateFile;
+       finally
+               ini.Free;
+       end;
+end;
+
+(*************************************************************************
+ *\83{\81[\83h\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetBoardFileName: string;
+begin
+       Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_FILE_NAME;
+end;
+
+(*************************************************************************
+ *\83{\81[\83h\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetCustomBoardFileName: string;
+begin
+       Result := GetAppDir + CONFIG_DIR_NAME + '\' + CUSTOMBOARD_FILE_NAME;
+end;
+
+(*************************************************************************
+ *\83{\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾
+ *************************************************************************)
+function TSetting.GetBoardDir: string;
+begin
+       Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_DIR_NAME + '\';
+end;
+
+(*************************************************************************
+ *\83e\83\93\83|\83\89\83\8a\83t\83H\83\8b\83_\81[\96¼\8eæ\93¾
+ *************************************************************************)
+function TSetting.GetHtmlTempFileName: string;
+begin
+       Result := TEMP_FOLDER;
+end;
+
+
+(*************************************************************************
+ *\8eÀ\8ds\83t\83@\83C\83\8b\83t\83H\83\8b\83_\8eæ\93¾
+ *************************************************************************)
+function TSetting.GetAppDir: string;
+begin
+       Result := ExtractFilePath(Application.ExeName);
+end;
+
+(*************************************************************************
+ *TempHtml\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetTempFolder: string;
+begin
+       Result := GetAppDir + TEMP_FOLDER;
+end;
+
+(*************************************************************************
+ *sent.ini\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetSentFileName: string;
+begin
+       Result := GetAppDir + SENT_FILE_NAME;
+end;
+
+(*************************************************************************
+ *outbox.ini\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetOutBoxFileName: string;
+begin
+       Result := GetAppDir + OUTBOX_FILE_NAME;
+end;
+
+(*************************************************************************
+ *Config\83t\83H\83\8b\83_\8eæ\93¾
+ *************************************************************************)
+function TSetting.GetConfigDir: string;
+begin
+       Result := IncludeTrailingPathDelimiter(GetAppDir + CONFIG_DIR_NAME);
+end;
+
+function TSetting.GetStyleSheetDir: string;
+begin
+       Result := IncludeTrailingPathDelimiter(GetConfigDir + CSS_DIR_NAME);
+end;
+
+function TSetting.GetSkinDir: string;
+begin
+       Result := IncludeTrailingPathDelimiter(GetConfigDir + SKIN_DIR_NAME);
+end;
+
+function TSetting.GetSkinHeaderFileName: string;
+begin
+       Result := CSSFileName + SKIN_HEADER_FILE_NAME;
+end;
+
+function TSetting.GetSkinFooterFileName: string;
+begin
+       Result := CSSFileName + SKIN_FOOTER_FILE_NAME;
+end;
+
+function TSetting.GetSkinNewResFileName: string;
+begin
+       Result := CSSFileName + SKIN_NEWRES_FILE_NAME;
+end;
+
+function TSetting.GetSkinResFileName: string;
+begin
+       Result := CSSFileName + SKIN_RES_FILE_NAME;
+end;
+
+function TSetting.GetSkinBookmarkFileName: string;
+begin
+       Result := CSSFileName + SKIN_BOOKMARK_FILE_NAME;
+end;
+
+function TSetting.GetSkinNewmarkFileName: string;
+begin
+       Result := CSSFileName + SKIN_NEWMARK_FILE_NAME;
+end;
+
+function TSetting.GetNGWordsDir: string;
+begin
+       Result := IncludeTrailingPathDelimiter(GetConfigDir + NGWORDs_DIR_NAME);
+end;
+
+function TSetting.GetBoardPlugInDir: string;
+begin
+       Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_PLUGIN_DIR_NAME);
+end;
+
+procedure TSetting.SetUseCSS( value: Boolean );
+begin
+
+       FUseCSS := value;
+
+       FUseSkin :=
+               UseCSS and
+               (Pos( GetSkinDir, CSSFileName ) > 0) and
+               FileExists( GetSkinHeaderFileName );
+
+end;
+
+procedure TSetting.SetCSSFileName( fileName: string );
+begin
+
+       FCSSFileName := fileName;
+
+       FUseSkin :=
+               UseCSS and
+               (Pos( GetSkinDir, CSSFileName ) > 0) and
+               FileExists( GetSkinHeaderFileName );
+
+end;
+
+function TSetting.GetSambaFileName: string;
+begin
+       Result := GetAppDir + SAMBATIME_FILE_NAME;
+end;
+//\94Â\8dX\90V\8f\9c\8aO\83J\83e\83S\83\8a\83\8a\83X\83g\95Û\91\83t\83@\83C\83\8b
+function TSetting.GetIgnoreFileName: string;
+begin
+       Result := GetConfigDir + IGNORE_FILE_NAME;
+end;
 
 end.
 
+