unit Setting;
+
interface
uses
- SysUtils, Classes, Graphics, Forms, Math, IniFiles, UCryptAuto, UBase64,
- ComCtrls;
+ SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}
+ ComCtrls, GestureModel, IniFiles, SkinFiles;
const
MAIN_COOLBAND_COUNT = 4; //\83\81\83C\83\93CoolBand\82Ì\90\94
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';
- MAX_POPUP_RES : Integer = 10;
+
type
TGikoTabPosition = (gtpTop, gtpBottom); // \83^\83u\88Ê\92u
- TGikoTabAppend = (gtaFirst, gtpLast); // \83^\83u\92Ç\89Á\88Ê\92u
+ TGikoTabAppend = (gtaFirst, gtaLast, gtaRight, gtaLeft); // \83^\83u\92Ç\89Á\88Ê\92u
TGikoTabStyle = (gtsTab, gtsButton, gtsFlat); // \83^\83u\83X\83^\83C\83\8b
TGikoListOrientation = (gloHorizontal, gloVertical); // \83\8a\83X\83g\90\82\92¼\81E\90\85\95½
TGikoListState = (glsMax, glsNormal, glsMin); // \83\8a\83X\83g\83T\83C\83Y\8fó\91Ô
// \83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92u
- TGikoPopupPosition = (gppRightTop, gppTop, gppLeftTop,
- gppRight, gppCenter, gppLeft,
- gppRightBottom, gppBottom, gppLeftBottom);
+ TGikoPopupPosition = (gppLeftTop = 0, gppTop, gppRightTop,
+ gppLeft, gppCenter, gppRight,
+ gppLeftBottom, gppBottom, gppRightBottom);
//\83v\83\8c\83r\83\85\81[\83T\83C\83Y
TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);
TGikoBrowserAutoMaximize = (gbmNone, gbmClick, gbmDoubleClick);
TGikoResRange = (grrAll, grrSelect, grrKoko, grrNew);
/// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
- TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew);
+ TGikoThreadRange = (gtrAll, gtrSelect, gtrLog, gtrNew, gtrLive, gtrArch);
+ //! \83X\83p\83\80\83t\83B\83\8b\83^\81[\83A\83\8b\83S\83\8a\83Y\83\80
+ TGikoSpamFilterAlgorithm = (
+ gsfaNone, gsfaPaulGraham, gsfaGaryRobinson, gsfaGaryRobinsonFisher);
+
+
+ /// \83J\83e\83S\83\8a\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
+ type TGikoBBSColumnID = (gbbscTitle);
+ /// \83J\83e\83S\83\8a\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
+ const GikoBBSColumnCaption : array[0..0] of string =
+ ( '\83J\83e\83S\83\8a\96¼' );
+ /// \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+ type TGikoBBSColumnList = class( TList )
+ private
+ function GetItem( index : integer ) : TGikoBBSColumnID;
+ procedure SetItem( index : integer; value : TGikoBBSColumnID);
+ public
+ constructor Create;
+ destructor Destroy; override;
+ function Add( value : TGikoBBSColumnID ) : Integer;
+ property Items[index : integer]: TGikoBBSColumnID read GetItem write SetItem; default;
+ end;
+ /// \94Â\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
+ type TGikoCategoryColumnID = (gccTitle, gccRoundName, gccLastModified);
+ /// \94Â\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
+ const GikoCategoryColumnCaption : array[0..2] of string =
+ ( '\94Â\96¼', '\8f\84\89ñ\97\\96ñ', '\8eæ\93¾\93ú\8e\9e' );
+ /// \94Â\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+ type TGikoCategoryColumnList = class( TList )
+ private
+ function GetItem( index : integer ) : TGikoCategoryColumnID;
+ procedure SetItem( index : integer; value : TGikoCategoryColumnID);
+ public
+ constructor Create;
+ destructor Destroy; override;
+ function Add( value : TGikoCategoryColumnID ) : Integer;
+ property Items[index : integer]: TGikoCategoryColumnID read GetItem write SetItem; default;
+ end;
+ /// \83X\83\8c\83\8a\83X\83g\82Ì\83J\83\89\83\80 ID
+ type TGikoBoardColumnID = (gbcTitle, gbcAllCount, gbcLocalCount, gbcNonAcqCount,
+ gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated, gbcLastModified, gbcVigor );{gbcLastModified,}
+ /// \83X\83\8c\83\8a\83X\83g\82Ì\83J\83\89\83\80\96¼
+ const GikoBoardColumnCaption : array[0..10] of string =
+ ( '\83X\83\8c\83b\83h\96¼', '\83J\83E\83\93\83g', '\8eæ\93¾', '\96¢\8eæ\93¾', '\90V\92\85',
+ '\96¢\93Ç', '\8f\84\89ñ\97\\96ñ', '\8eæ\93¾\93ú\8e\9e', '\83X\83\8c\8dì\90¬\93ú\8e\9e', '\8dÅ\8fI\8dX\90V\93ú\8e\9e', '\90¨\82¢' );
+ const GikoBoardColumnAlignment : array[0..10] of TAlignment = (
+ taLeftJustify, taRightJustify, taRightJustify, taRightJustify,
+ taRightJustify, taRightJustify, taLeftJustify, taLeftJustify,
+ taLeftJustify, taLeftJustify, taRightJustify);
+ /// \83X\83\8c\83\8a\83X\83g\83J\83\89\83\80\94z\97ñ
+ type TGikoBoardColumnList = class( TList )
+ private
+ function GetItem( index : integer ) : TGikoBoardColumnID;
+ procedure SetItem( index : integer; value : TGikoBoardColumnID);
+ public
+ constructor Create;
+ destructor Destroy; override;
+ function Add( value : TGikoBoardColumnID ) : Integer;
+ property Items[index : integer]: TGikoBoardColumnID read GetItem write SetItem; default;
+ end;
+
+type
//CoolBar\90Ý\92è\83\8c\83R\81[\83h
TCoolSet = record
FCoolID: Integer;
FEditWindowHeight: Integer;
FEditWindowWidth: Integer;
FEditWindowMax: Boolean;
- FEditWindowStay: Boolean;
- FEditWindowTranslucent: Boolean;
+ FEditWindowStay: Boolean;
+ FEditWindowTranslucent: Boolean;
//\83\8a\83X\83g\94Ô\8d\86\95\\8e¦
FListViewNo: Boolean;
//CSS\95\\8e¦
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;
+ //\82©\82¿\82ã\81`\82µ\82á\97p\82ÌSkin\82ð\97\98\97p\82·\82é\82©
+ FUseKatjushaType : Boolean;
//mail\97\93\95\\8e¦
FShowMail: Boolean;
/// \83\8c\83X\95\\8e¦\94Í\88Í
//\83\8d\83O\83t\83H\83\8b\83_
FLogFolder: string;
+ FLogFolderP: string; //\83p\83X\96¼\82ª\83p\83X\8bæ\90Ø\82è\8bL\8d\86\82Å\8fI\82í\82Á\82Ä\82¢\82é\81B
FNewLogFolder: string;
//\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..7] of Integer;
+ FCategoryColumnWidth: array[0..2] of Integer;
+ FBoardColumnWidth: array[0..10] of Integer;
+
+ /// \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+ FBBSColumnOrder : TGikoBBSColumnList;
+ /// \94Â\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+ FCategoryColumnOrder : TGikoCategoryColumnList;
+ /// \83X\83\8c\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+ FBoardColumnOrder : TGikoBoardColumnList;
//\83\\81[\83g\8f\87
FBBSSortIndex: Integer;
FUserID: string;
FPassword: string;
FAutoLogin: Boolean;
- FForcedLogin: Boolean;
+ FForcedLogin: Boolean;
FDolibURL: string;
//URL\83N\83\8a\83b\83N\8e\9e\8bN\93®\83A\83v\83\8a
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93\95\\8e¦
FListIconVisible: Boolean;
- //\8eæ\93¾\90\94\82Å\82Í\82È\82\96¢\8eæ\93¾\82ð\95\\8e¦\82·\82é
- FNonAcquiredCount: 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¢
+ //\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è
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ô
+ FDeleteSyria : Boolean; //\83V\83\8a\83A\8cê\83u\83\89\83N\83\89\91Î\8dô
+ FIgnoreKana : Boolean; //\91S\94¼\8ap\82Ð\82ç\83J\83i\82Ì\88á\82¢\82ð\96³\8e\8b\82·\82é\82©
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
FSelectComboBoxWidth : Integer;
//\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;
+ //\83\8c\83X\90\94\91\9d\8c¸\8b\92²\8e\9e\82É\81A\91I\91ð\83A\83C\83e\83\80\82É\83t\83H\81[\83J\83X\82ª\96³\82¢\82Æ\82«\82É\91¾\8e\9a\82É\82·\82é\82©
+ FUnFocusedBold : Boolean;
- //Samba24\91Î\8dô\8b@\94\\82ð\8eg\82¤\82©
- FUseSamba: Boolean;
+ //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;
//Tab\8e©\93®\95Û\91¶
FTabAutoLoadSave : Boolean;
+ //\8dÅ\8cã\82É\8aJ\82¢\82Ä\82¢\82½\83X\83\8c\83b\83h\82ÌURL
+ FLastCloseTabURL: String;
+ //\82É\82¿\82á\82ñ\8cê\88Ä\93à\83T\83|\81[\83g\8b@\94\
+ F2chSupport : Boolean;
+
// \83G\83f\83B\83^
FSpaceToNBSP : Boolean; ///< \94¼\8ap\83X\83y\81[\83X\81ATab \82ð \82É\92u\8a·
FAmpToCharRef : Boolean; ///< '&' \82ð & \82É\92u\8a·
//\83u\83\89\83E\83U\83^\83u\94ñ\95\\8e¦\82Ì\8e\9e\82Ì\83X\83\8c\88ê\97\97\82Å\82Ì\83J\81[\83\\83\8b\83L\81[\88Ú\93®\82Ì\96³\94½\89\9e\8e\9e\8aÔ
FSelectInterval : Integer;
-
+
+ //KuroutSettingTab \8fÚ\8d×\90Ý\92è\83^\83u\82ÌActiveTab
+ FKuroutSettingTabIndex: Integer;
+
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ FGestures : TGestureModel;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ FGestureEnabled : Boolean;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\83R\83\93\83e\83L\83X\83g\93\99\82Ì\8fã\82Å\96³\8cø
+ FGestureIgnoreContext : Boolean;
+ //\83t\83V\83A\83i\83g\83\89\83b\83v\90Ý\92è
+ FLocalTrapAtt : Boolean;
+ FRemoteTrapAtt : Boolean;
+ FReadTimeOut: Integer;
+
+ //! \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^\81[
+ FSpamFilterAlgorithm : TGikoSpamFilterAlgorithm;
+ //\83~\83\85\81[\83g\82µ\82Ä\82é\82©
+ FMute: Boolean;
+ //\83X\83\8c\8di\8d\9e\82Ý\82Å\96¢\8am\92è\95¶\8e\9a\82à\97L\8cø\82É\82·\82é\82©
+ FUseUndecided: Boolean;
+
+ //Be2ch
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
+ FBeUserID: String;
+ FBeCode: String;
+ FBeAutoLogin: Boolean;
+ FBeLogin: Boolean;
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ FMaxRecordCount : Integer;
+
+ //\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83\\81[\83g\82·\82é\82©
+ FAutoSortThreadList : Boolean;
+
+ //InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+ FInputAssistFormLeft :Integer;
+ FInputAssistFormTop :Integer;
+ //InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+ FInputAssistFormWidth: Integer;
+ FInputAssistFormHeight: Integer;
+
+ //! Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+ FFixedCookie: String;
+ //! \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Û\8e\9d\90\94
+ FMoveHistorySize : Integer;
+ //! \8dÅ\8f¬\89»\82µ\82½\82Æ\82«\82É\83^\83X\83N\83g\83\8c\83C\82É\8ai\94[\82·\82é\82©
+ FStoredTaskTray : Boolean;
+ //! \83^\83u\82Ì\88Ú\93®\82Å\83\8b\81[\83v\82ð\8b\96\89Â\82·\82é
+ FLoopBrowserTabs : Boolean;
+ //! 100\83\8c\83X\95\\8e¦\82Ì\90æ\93ª\95\\8e¦\83\8c\83X\90\94
+ FHeadResCount : Integer;
+ //! 100\83\8c\83X\95\\8e¦\90\94\81i\8ag\92£\97p\81j
+ FResRangeExCount: Integer;
+ //! \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
+ FAddKeywordLink: Boolean;
+ //! dat\92u\8a·\82ð\97L\8cø\82É\82·\82é
+ FReplaceDat: Boolean;
+ //! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
+ FSentIniFileSize: Integer;
+ //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
+ FExtList: String;
+ //! Skin\8aÖ\98A
+ FSkinFiles: TSkinFiles;
+ //! index\83t\83@\83C\83\8b\82ð\93Ç\82Ý\8e\9e\82Édat\82ð\8c\9f\8dõ\82·\82é
+ FCheckDatFile: Boolean;
+ //! \93¯ID\83\8c\83X\83A\83\93\83J\81[\95\\8e¦
+ FLimitResCountMessage: Boolean;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaX
+ FRespopupDeltaX: Integer;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaY
+ FRespopupDeltaY: Integer;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\83^\83C\83}\81[
+ FRespopupWait: Integer;
+ //! \83\81\81[\83\8b\97\93\83\8c\83X\83|\83b\83v\83A\83b\83v
+ FRespopupMailTo: Boolean;
+ //! \8cë\94\9a\83`\83F\83b\83N
+ FUseGobakuCheck: Boolean;
+
+ //! \96`\8c¯\82Ì\8f\91\97pCookie
+ FBoukenCookieList: TStringList;
+
function GetMainCoolSet(Index: Integer): TCoolSet;
function GetBoardCoolSet(Index: Integer): TCoolSet;
function GetBrowserCoolSet(Index: Integer): TCoolSet;
procedure SetUseCSS( value: Boolean );
procedure SetCSSFileName( fileName: string );
+ function GetCSSFileName: string;
+ //! \83v\83\8d\83L\83V\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+ procedure ReadProxySettings(memIni: TMemIniFile);
+ //! \8ae\8eí\83E\83B\83\93\83h\83E\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+ procedure ReadWindowSettings(memIni: TMemIniFile);
+ //! \93ü\97Í\97\9a\97ð\93Ç\82Ý\8d\9e\82Ý\81i\8c\9f\8dõ\81{\83\81\81[\83\8b\97\93\81{\96¼\91O\81j
+ procedure ReadInputHisotrys(memIni: TMemIniFile);
+ //! \83\8a\83X\83g\83J\83\89\83\80\95\9d\93Ç\82Ý\8d\9e\82Ý
+ procedure ReadListColumnWidth(memIni: TMemIniFile);
+ //! \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98\93Ç\82Ý\8d\9e\82Ý
+ procedure ReadOrdColumn(memIni: TMemIniFile);
protected
public
procedure WriteNameMailSettingFile;
procedure WriteFolderSettingFile();
procedure WriteBoardURLSettingFile;
+ procedure WriteBoukenSettingFile;
function GetSoundCount: Integer;
function FindSoundFileName(Name: string): 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;
-
+ function GetGestureFileName : string;
+ function GetSpamFilterFileName : string;
+ function GetLanguageFileName: string;
+ function GetMainKeyFileName: String;
+ function GetEditorKeyFileName: String;
+ procedure WriteLogFolder(AVal : String);
+ function GetInputAssistFileName : String;
+ function GetReplaceFileName: String;
+ function GetExtprevieFileName: String;
+ function GetBoukenCookie(AHostName: String): String;
+ procedure SetBoukenCookie(ACookieValue, AHostName: String);
+ {
+ \brief \83\8a\83\93\83N\97\9a\97ð\82Ì\95Û\8e\9d\83T\83C\83Y\82Ìsetter
+ \param AVal \90Ý\92è\82·\82é\83T\83C\83Y( >0)
+ }
+ procedure SetMoveHistorySize(AVal : Integer);
//\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
property RecvBufferSize: Integer read FRecvBufferSize write FRecvBufferSize;
//HTTP1.1\8eg\97p
property ListViewNo: Boolean read FListViewNo write FListViewNo;
property UseCSS: Boolean read FUseCSS write SetUseCSS;
- property CSSFileName: string read FCSSFileName write SetCSSFileName;
+ property CSSFileName: string read GetCSSFileName write SetCSSFileName;
+ property UseKatjushaType : Boolean read FUseKatjushaType write FUseKatjushaType;
property UseSkin: Boolean read FUseSkin;
property ShowMail: Boolean read FShowMail write FShowMail;
property UnActivePopup: Boolean read FUnActivePopup write FUnActivePopup;
property ResPopupHeaderBold: Boolean read FResPopupHeaderBold write FResPopupHeaderBold;
- property LogFolder: string read FLogFolder write FLogFolder;
+ property LogFolder: string read FLogFolder write WriteLogFolder;
+ property LogFolderP: string read FLogFolderP;
property NewLogFolder: string read FNewLogFolder write FNewLogFolder;
property BBSColumnWidth[index: Integer]: Integer read GetBBSColumnWidth write SetBBSColumnWidth;
property CategoryColumnWidth[index: Integer]: Integer read GetCategoryColumnWidth write SetCategoryColumnWidth;
property BoardColumnWidth[index: Integer]: Integer read GetBoardColumnWidth write SetBoardColumnWidth;
+ property BBSColumnOrder : TGikoBBSColumnList read FBBSColumnOrder write FBBSColumnOrder;
+ property CategoryColumnOrder : TGikoCategoryColumnList read FCategoryColumnOrder write FCategoryColumnOrder;
+ property BoardColumnOrder : TGikoBoardColumnList read FBoardColumnOrder write FBoardColumnOrder;
+
property SoundName[index: Integer]: string read GetSoundName;
property SoundViewName[index: Integer]: string read GetSoundViewName;
property SoundFileName[index: Integer]: string read GetSoundFileName write SetSoundFileName;
property BrowserAutoMaximize: TGikoBrowserAutoMaximize read FBrowserAutoMaximize write FBrowserAutoMaximize;
property ListIconVisible: Boolean read FListIconVisible write FListIconVisible;
- property NonAcquiredCount: Boolean read FNonAcquiredCount write FNonAcquiredCount;
property CreationTimeLogs: Boolean read FCreationTimeLogs write FCreationTimeLogs;
property FutureThread: Boolean read FFutureThread write FFutureThread;
property ShowNGLinesNum : Boolean read FShowNGLinesNum write FShowNGLinesNum;
property AddResAnchor : Boolean read FAddResAnchor write FAddResAnchor;
property DeleteSyria : Boolean read FDeleteSyria write FDeleteSyria;
+ property IgnoreKana : Boolean read FIgnoreKana write FIgnoreKana;
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
property SelectComboBoxWidth : Integer read FSelectComboBoxWidth write FSelectComboBoxWidth;
//\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 UnFocusedBold : Boolean read FUnFocusedBold write FUnFocusedBold;
property UseSamba: Boolean read FUseSamba write FUseSamba;
- property ResAnchorJamp: Boolean read FResAnchorJamp write FResAnchorJamp;
+ 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;
property SelectInterval : Integer read FSelectInterval write FSelectInterval;
- //Tab\95Û\91¶
- property TabAutoLoadSave: Boolean read FTabAutoLoadSave write FTabAutoLoadSave;
+ //Tab\95Û\91¶
+ property TabAutoLoadSave: Boolean read FTabAutoLoadSave write FTabAutoLoadSave;
+ //\83^\83u\82Ì\95\9c\8c³\82Æ\82©\97p
+ property LastCloseTabURL: String read FLastCloseTabURL write FLastCloseTabURL;
+ //property Gengo: TStringList read F2chLanguage write F2chLanguage;
+ property GengoSupport : Boolean read F2chSupport write F2chSupport;
+ property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ property Gestures : TGestureModel read FGestures write FGestures;
+ //! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ property GestureEnabled : Boolean read FGestureEnabled write FGestureEnabled;
+ property GestureIgnoreContext : Boolean read FGestureIgnoreContext write FGestureIgnoreContext;
+ //\83t\83V\83A\83i\83g\83\89\83b\83v\90Ý\92è
+ property LocalTrapAtt : Boolean read FLocalTrapAtt write FLocalTrapAtt;
+ property RemoteTrapAtt : Boolean read FRemoteTrapAtt write FRemoteTrapAtt;
+ property ReadTimeOut: Integer read FReadTimeOut write FReadTimeOut;
+ //! \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ property SpamFilterAlgorithm : TGikoSpamFilterAlgorithm
+ read FSpamFilterAlgorithm write FSpamFilterAlgorithm;
+ property Mute: Boolean read FMute write FMute;
+ property UseUndecided: Boolean read FUseUndecided write FUseUndecided;
+
+ property BeUserID: string read FBeUserID write FBeUserID;
+ property BeCode: string read FBeCode write FBeCode;
+ property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;
+ property BeLogin: Boolean read FBeLogin write FBeLogin;
+ property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
+ //! \83X\83\8c\83b\83h\88ê\97\97\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83X\83\8c\83b\83h\96¼\82Å\8f¸\8f\87\83\\81[\83g\82·\82é\82©
+ property AutoSortThreadList : Boolean read FAutoSortThreadList write FAutoSortThreadList;
+ //! InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+ property InputAssistFormLeft :Integer read FInputAssistFormLeft write FInputAssistFormLeft;
+ property InputAssistFormTop :Integer read FInputAssistFormTop write FInputAssistFormTop;
+ //! InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+ property InputAssistFormWidth: Integer read FInputAssistFormWidth write FInputAssistFormWidth;
+ property InputAssistFormHeight: Integer read FInputAssistFormHeight write FInputAssistFormHeight;
+ //! Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+ property FixedCookie: String read FFixedCookie write FFixedCookie;
+ //! \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Û\8e\9d\90\94
+ property MoveHistorySize : Integer read FMoveHistorySize write SetMoveHistorySize;
+ //! \8dÅ\8f¬\89»\8e\9e\82É\83^\83X\83N\83g\83\8c\83C\82É\8ai\94[\82·\82é\82©
+ property StoredTaskTray : Boolean read FStoredTaskTray write FStoredTaskTray;
+ //! \83u\83\89\83E\83U\83^\83u\82Ì\83\8b\81[\83v\82ð\8b\96\89Â\82·\82é
+ property LoopBrowserTabs : Boolean read FLoopBrowserTabs write FLoopBrowserTabs;
+ //! 100\83\8c\83X\95\\8e¦\82Ì\90æ\93ª\95\\8e¦\83\8c\83X\90\94
+ property HeadResCount : Integer read FHeadResCount write FHeadResCount;
+ //! 100\83\8c\83X\95\\8e¦\90\94\81i\8ag\92£\97p\81j
+ property ResRangeExCount: Integer read FResRangeExCount write FResRangeExCount;
+ //! \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
+ property AddKeywordLink: Boolean read FAddKeywordLink write FAddKeywordLink;
+ //! dat\82Ì\92u\8a·\82ð\97L\8cø\82É\82·\82é\82©
+ property ReplaceDat: Boolean read FReplaceDat write FReplaceDat;
+ //! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
+ property SentIniFileSize: Integer read FSentIniFileSize write FSentIniFileSize;
+ //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
+ property ExtList: String read FExtList write FExtList;
+ //! Skin\83t\83@\83C\83\8b\8aÇ\97\9d
+ property SkinFiles: TSkinFiles read FSkinFiles;
+ //! \83C\83\93\83f\83b\83N\83X\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83t\83@\83C\83\8b\83`\83F\83b\83N
+ property CheckDatFile: Boolean read FCheckDatFile write FCheckDatFile;
+ property LimitResCountMessage: Boolean read FLimitResCountMessage write FLimitResCountMessage;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaX
+ property RespopupDeltaX: Integer read FRespopupDeltaX write FRespopupDeltaX;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaY
+ property RespopupDeltaY: Integer read FRespopupDeltaY write FRespopupDeltaY;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\83^\83C\83}\81[
+ property RespopupWait: Integer read FRespopupWait write FRespopupWait;
+ property RespopupMailTo: Boolean read FRespopupMailTo write FRespopupMailTo;
+ //! \8cë\94\9a\83`\83F\83b\83N
+ property UseGobakuCheck: Boolean read FUseGobakuCheck write FUseGobakuCheck;
end;
+const
+// MAIN_COOLBAND_COUNT = 4; //\83\81\83C\83\93CoolBand\82Ì\90\94
+// 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';
+ 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';
+ MAX_POPUP_RES : Integer = 10;
+ GESTURE_FILE_NAME = 'Gestures.ini';
+ SPAMFILTER_FILE_NAME = 'SpamFilter.ini';
+ LANGUAGE_FILE_NAME = 'language.ini';
+ INPUTASSIST_FILE_NAME = 'InputAssist.ini';
+ FIXED_COOKIE = '';
+ REPLACE_FILE_NAME = 'replace.ini';
+ EXT_PREVIEW_FILE_NAME = 'extpreview.ini';
implementation
+uses
+ Math, UCryptAuto, UBase64, Windows,GikoUtil;
+
type
TSoundName = record
Name: string;
DEFAULT_WINDOW_COLOR: string = 'clWindow';
DEFAULT_TAB_FONT_NAME: string = '\82l\82r \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';
+ DEFAULT_2CH_BOARD_URL1: string = 'http://menu.2ch.net/bbsmenu.html';
GIKO_ENCRYPT_TEXT: string = 'gikoNaviEncryptText';
var
(Name: 'ResEnd'; ViewName: '\83\8c\83X\91\97\90M\8a®\97¹'; FileName: ''),
(Name: 'Error'; ViewName: '\83G\83\89\81['; FileName: ''));
+constructor TGikoBBSColumnList.Create;
+begin
+ inherited;
+end;
+
+destructor TGikoBBSColumnList.Destroy;
+begin
+ inherited;
+end;
+
+function TGikoBBSColumnList.GetItem( index : integer ) : TGikoBBSColumnID;
+begin
+ Result := TGikoBBSColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoBBSColumnList.SetItem( index : integer; value : TGikoBBSColumnID);
+begin
+ inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoBBSColumnList.Add( value : TGikoBBSColumnID ) : Integer;
+begin
+ Result := inherited Add( Pointer( value ) );
+end;
+
+constructor TGikoCategoryColumnList.Create;
+begin
+ inherited;
+end;
+
+destructor TGikoCategoryColumnList.Destroy;
+begin
+ inherited;
+end;
+
+function TGikoCategoryColumnList.GetItem( index : integer ) : TGikoCategoryColumnID;
+begin
+ Result := TGikoCategoryColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoCategoryColumnList.SetItem( index : integer; value : TGikoCategoryColumnID);
+begin
+ inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoCategoryColumnList.Add( value : TGikoCategoryColumnID ) : Integer;
+begin
+ Result := inherited Add( Pointer( value ) );
+end;
+
+constructor TGikoBoardColumnList.Create;
+begin
+ inherited;
+end;
+
+destructor TGikoBoardColumnList.Destroy;
+begin
+ inherited;
+end;
+
+function TGikoBoardColumnList.GetItem( index : integer ) : TGikoBoardColumnID;
+begin
+ Result := TGikoBoardColumnID( inherited Items[ index ] );
+end;
+
+procedure TGikoBoardColumnList.SetItem( index : integer; value : TGikoBoardColumnID);
+begin
+ inherited Items[ index ] := Pointer( value );
+end;
+
+function TGikoBoardColumnList.Add( value : TGikoBoardColumnID ) : Integer;
+begin
+ Result := inherited Add( Pointer( value ) );
+end;
+
//\83R\83\93\83X\83g\83\89\83N\83^
constructor TSetting.Create();
begin
FMailList := TStringList.Create;
FSelectTextList := TStringList.Create;
FBoardURLs := TStringList.Create;
+ FBBSColumnOrder := TGikoBBSColumnList.Create;
+ FCategoryColumnOrder := TGikoCategoryColumnList.Create;
+ FBoardColumnOrder := TGikoBoardColumnList.Create;
+ FGestures := TGestureModel.Create;
+ FSkinFiles := TSkinFiles.Create;
FNameList.Duplicates := dupIgnore;
FMailList.Duplicates := dupIgnore;
FBoardURLs.Duplicates := dupIgnore;
FSelectTextList.Duplicates := dupIgnore;
+ FBoukenCookieList := TStringList.Create;
ReadSettingFile();
ReadBoardURLsFile();
end;
//\83f\83X\83g\83\89\83N\83^
destructor TSetting.Destroy();
begin
+ FBoukenCookieList.Free;
+ FBoardColumnOrder.Free;
+ FCategoryColumnOrder.Free;
+ FBBSColumnOrder.Free;
+ FSelectTextList.Free;
+ FBoardURLs.Free;
+ FMailList.Free;
+ FNameList.Free;
+ FGestures.Free;
+ FSkinFiles.Free;
inherited;
- FSelectTextList.Free;
- FBoardURLs.Free;
- FMailList.Free;
- FNameList.Free;
end;
//\8f\89\8aú\89»\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
function TSetting.GetFileName(): string;
begin
- Result := ExtractFilePath(Application.ExeName) + INI_FILE_NAME;
+ Result := GetAppDir + 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;
+ Result := GetAppDir + 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..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;
- wkList: TStringList;
- wkStr: string;
Exists: Boolean;
- s: string;
-// id: Integer;
+ s: string;
CoolSet: TCoolSet;
+ msg: String;
+ hostList: TStringList;
begin
Exists := FileExists(GetFileName);
ini := TMemIniFile.Create(GetFileName);
//\83v\83\8d\83L\83V\90Ú\91±HTTP1.1\8eg\97p
FProxyProtocol := ini.ReadBool('HTTP', 'ProxyProtocol', False);
- FReadProxy := ini.ReadBool('ReadProxy', 'Proxy', false);
- FReadProxyAddress := ini.ReadString('ReadProxy', 'Address', '');
- FReadProxyPort := ini.ReadInteger('ReadProxy', 'Port', 0);
- FReadProxyUserID := ini.ReadString('ReadProxy', 'UserID', '');
- FReadProxyPassword := ini.ReadString('ReadProxy', 'Password', '');
-
- FWriteProxy := ini.ReadBool('WriteProxy', 'Proxy', false);
- FWriteProxyAddress := ini.ReadString('WriteProxy', 'Address', '');
- FWriteProxyPort := ini.ReadInteger('WriteProxy', 'Port', 0);
- 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);
- FCabinetFontItalic := ini.ReadBool('Window', 'CabinetFontItalic', False);
- FCabinetFontColor := StringToColor(ini.ReadString('Window', 'CabinetFontColor', DEFAULT_FONT_COLOR));
- FCabinetBackColor := StringToColor(ini.ReadString('Window', 'CabinetBackColor', DEFAULT_WINDOW_COLOR));
-
- FListFontName := ini.ReadString('Window', 'ListFontName', DEFAULT_FONT_NAME);
- FListFontSize := ini.ReadInteger('Window', 'ListFontSize', DEFAULT_FONT_SIZE);
- FListFontBold := ini.ReadBool('Window', 'ListFontBold', False);
- 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);
- FEditorFontBold := ini.ReadBool('Window', 'EditorFontBold', False);
- FEditorFontItalic := ini.ReadBool('Window', 'EditorFontItalic', False);
- FEditorFontColor := StringToColor(ini.ReadString('Window', 'EditorFontColor', DEFAULT_FONT_COLOR));
- FEditorBackColor := StringToColor(ini.ReadString('Window', 'EditorBackColor', DEFAULT_WINDOW_COLOR));
-
- FBrowserTabFontName := ini.ReadString('Window', 'BrowserTabFontName', DEFAULT_TAB_FONT_NAME);
- FBrowserTabFontSize := ini.ReadInteger('Window', 'BrowserTabFontSize', DEFAULT_TAB_FONT_SIZE);
- FBrowserTabFontBold := ini.ReadBool('Window', 'BrowserTabFontBold', False);
- FBrowserTabFontItalic := ini.ReadBool('Window', 'BrowserTabFontItalic', False);
-
- FHintFontName := ini.ReadString('Window', 'HintFontName', Screen.HintFont.Name);
- FHintFontSize := ini.ReadInteger('Window', 'HintFontSize', Screen.HintFont.Size);
- //FHintFontBold := ini.ReadBool('Window', 'HintFontBold', False);
- //FHintFontItalic := ini.ReadBool('Window', 'HintFontItalic', False);
- FHintFontColor := StringToColor(ini.ReadString('Window', 'HintFontColor', DEFAULT_FONT_COLOR));
- FHintBackColor := StringToColor(ini.ReadString('Window', 'HintBackColor', 'clInfoBk'));
+ // \83v\83\8d\83L\83V\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+ ReadProxySettings( ini );
+
+ // \8ae\8eí\83E\83B\83\93\83h\83E\82Ì\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+ ReadWindowSettings( ini );
FWindowTop := ini.ReadInteger('WindowSize', 'Top', -1);
FWindowLeft := ini.ReadInteger('WindowSize', 'Left', -1);
// FListHeightMax := ini.ReadBool('List', 'HeightMax', False);
// FListWidthMax := ini.ReadBool('List', 'WidthMax', False);
- wkList := TStringList.Create;
- try
- ini.ReadSection('Name', wkList);
- for i := 0 to wkList.Count - 1 do begin
- wkStr := ini.ReadString('Name', wkList[i], '');
- if (wkStr <> '') and (FNameList.IndexOf(wkStr) = -1) then
- FNameList.Add(wkStr);
- end;
- ini.ReadSection('Mail', wkList);
- for i := 0 to wkList.Count - 1 do begin
- wkStr := ini.ReadString('Mail', wkList[i], '');
- if (wkStr <> '') and (FMailList.IndexOf(wkStr) = -1) then
- FMailList.Add(wkStr);
- end;
- ini.ReadSection('SelectText', wkList);
- for i := 0 to wkList.Count - 1 do begin
- wkStr := ini.ReadString('SelectText', wkList[i], '');
- if (wkStr <> '') and (FSelectTextList.IndexOf(wkStr) = -1) then
- FSelectTextList.Add(wkStr);
- end;
- finally
- wkList.Free;
- end;
+ // \93ü\97Í\8d\80\96Ú\82Ì\97\9a\97ð\82ð\93Ç\82Ý\8d\9e\82Þ
+ ReadInputHisotrys( ini );
- //\83\8a\83X\83g\83J\83\89\83\80
- wkList := TStringList.Create;
- try
- ini.ReadSection('BBSColumnWidth', wkList);
- if Length(FBBSColumnWidth) <> wkList.Count then begin
- ini.EraseSection('BBSColumnWidth');
- 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
- ini.EraseSection('CategoryColumnWidth');
- 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
- ini.EraseSection('BoardColumnWidth');
- 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;
- end;
+ // \83\8a\83X\83g\83J\83\89\83\80\95\9d
+ ReadListColumnWidth( ini );
+
+ // \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
+ ReadOrdColumn( ini );
//\83\8a\83X\83g\94Ô\8d\86
FListViewNo := ini.ReadBool('Function', 'ListViewNo', True);
UseCSS := ini.ReadBool('CSS', 'UseCSS', True);
//CSS\83t\83@\83C\83\8b\96¼
CSSFileName := ini.ReadString('CSS', 'FileName', 'default.css');
+ //\82©\82µ\82ã\81`\82µ\82á\82Ì\83X\83L\83\93\82ð\8eg\82¤\82©
+ FUseKatjushaType := ini.ReadBool('CSS', 'UseKatjushaType', false);
//Mail\97\93\95\\8e¦
FShowMail := ini.ReadBool('Thread', 'ShowMail', True);
if ini.ReadBool('Thread', 'OnlyAHundredRes',false) then
FResRange := 100 // \8cÃ\82¢\90Ý\92è\82Ì\8cÝ\8a·\97p
else
- FResRange := ini.ReadInteger( 'Thread', 'ResRange', 100 );
+ FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) );
FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False );
+ FHeadResCount := ini.ReadInteger('Thread', 'HeadResCount', 1);
+ FResRangeExCount:= ini.ReadInteger('Thread','ResRangeExCount', 100);
// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) );
//\94ñ\83A\83N\83e\83B\83u\8e\9e\83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦
//ResAnchorjamp
ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);
//\83\8d\83O\83t\83H\83\8b\83_
- FLogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
+ LogFolder := ini.ReadString('Folder', 'LogFolder', GetAppDir + 'Log');
NewLogFolder := '';
//\94ÂURL
FOpenMailer := ini.ReadBool('Mailto', 'Open', True);
//\83|\83b\83v\83A\83b\83v\88Ê\92u
- FPopupPosition := TGikoPopupPosition(ini.ReadInteger('Browser', 'PopupPosition', Ord(gppLeftBottom)));
+ FPopupPosition := TGikoPopupPosition(ini.ReadInteger('Browser', 'PopupPosition', Ord(gppRightTop)));
+ // \83o\83^56\88È\91O\82©\82ç\82Ì\83A\83b\83v\83f\81[\83g\91Î\8dô
+ if (FPopupPosition = gppCenter) then begin
+ FPopupPosition := gppTop;
+ end;
+ FRespopupDeltaX := ini.ReadInteger('Browser', 'RespopupDelteX', 5);
+ FRespopupDeltaY := ini.ReadInteger('Browser', 'RespopupDelteY', 5);
+ FRespopupWait := ini.ReadInteger('Browser', 'RespopupWait', 1000);
+ FRespopupMailTo := ini.ReadBool('Browser', 'RespopupMailTo', true);
//\83A\83h\83\8c\83X\83o\81[
FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
FListIconVisible := ini.ReadBool('ThreadList', 'StateIconVisible', True);
- FNonAcquiredCount := ini.ReadBool('ThreadList', 'NonAcquiredCount', False);
FCreationTimeLogs := ini.ReadBool('ThreadList', 'CreationTimeLogs', True);
FFutureThread := ini.ReadBool('ThreadList', 'FutureThread', True);
FSelectInterval := ini.ReadInteger('ThreadList', 'SelectInterval', 110);
FCategorySortOrder := ini.ReadBool('ThreadList', 'CategorySortOrder', True);
FBoardSortIndex := ini.ReadInteger('ThreadList', 'BoardSortIndex', 0);
FBoardSortOrder := ini.ReadBool('ThreadList', 'BoardSortOrder', True);
+ // DL\8cã\82Ì\8e©\93®\83\\81[\83g
+ FAutoSortThreadList := ini.ReadBool('ThreadList', 'AutoSort', False);
//Dat\97\8e\82¿\83X\83\8c\83\\81[\83g\8f\87
FDatOchiSortIndex := ini.ReadInteger('ThreadList', 'DatOchiSortIndex', -1);
FDatOchiSortOrder := ini.ReadBool('ThreadList', 'DatOchiSortOrder', False);
//\83T\83E\83\93\83h
if Exists then begin
+ SetCurrentDir(ExtractFilePath(Application.ExeName));
for i := 0 to GetSoundCount - 1 do begin
SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');
- if not FileExists(SoundFileName[i]) then
- SoundFileName[i] := '';
+ // \91\8a\91Î\8eQ\8fÆ\91Î\8dô
+ // \83t\83@\83C\83\8b\82Ì\91¶\8dÝ\83`\83F\83b\83N
+ if not FileExists(ExpandFileName(SoundFileName[i])) then begin
+ SoundFileName[i] := '';
+ end;
end;
end else begin
- s := ExtractFileDir(Application.ExeName) + '\sound\';
+ s := 'Sound\';
SoundFileName[0] := s + '\8eæ\93¾\90¬\8c÷.wav';
SoundFileName[1] := s + '\8eæ\93¾\90¬\8c÷(\8d·\95ª).wav';
SoundFileName[2] := s + '\96¢\8dX\90V.wav';
FPopUpAbon := ini.ReadBool('Abon','Popup',false);
FShowNGLinesNum := ini.ReadBool('Abon','ShowNGLines',false);
FAddResAnchor := ini.ReadBool('Abon','AddResAnchor',false);
- FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false);
+ FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false);
+ FIgnoreKana := ini.ReadBool('Abon','IgnoreKana',false);
// \83G\83f\83B\83^
- FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', True );
+ FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', False );
FAmpToCharRef := ini.ReadBool( 'Editor', 'AmpToCharRef', False );
+ FUseGobakuCheck := ini.ReadBool( 'Editor', 'UseGobakuCheck', True );
+
+ //Tab\8e©\93®\95Û\91¶\81A\93Ç\82Ý\8d\9e\82Ý
+ FTabAutoLoadSave := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
+ FLastCloseTabURL := ini.ReadString('Thread', 'LastCloseTabURL', '');
+ FKuroutSettingTabIndex := ini.ReadInteger('OptionDialog', 'KuroutTabIndex' , 0);
+
+ // \83}\83E\83X\83W\83F\83X\83`\83\83\81[
+ FGestureEnabled := ini.ReadBool( 'Guesture', 'Enabled', False );
+ FGestureIgnoreContext := ini.ReadBool( 'Guesture', 'IgnoreContext', False );
+ //2ch\8c¾\8cê\83T\83|
+ F2chSupport := ini.ReadBool('2chSupport', 'Support', False);
+
+ //FusianaTrap
+ FLocalTrapAtt := ini.ReadBool('Trap', 'LocalTrap', False);
+ FRemoteTrapAtt := ini.ReadBool('Trap', 'RemoteTrap', False);
+ FReadTimeOut := ini.ReadInteger('HTTP', 'ReadTimeOut', 10000);
+
+ // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ FSpamFilterAlgorithm := TGikoSpamFilterAlgorithm(
+ ini.ReadInteger( 'Abon', 'SpamFilterAlgorithm', Ord( gsfaNone ) ) );
+ FMute := ini.ReadBool('Function', 'Mute', false);
+ FUseUndecided := ini.ReadBool('ThreadList', 'UseUndecided', False);
+
+ //Be2ch
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\94F\8fØ\83R\81[\83h
+ FBeUserID := ini.ReadString('Be', 'UserID', '');
+ FBeCode := Decrypt(ini.ReadString('Be', 'Code', ''));
+ FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
+
+ // \93ü\97Í\83A\83V\83X\83g
+ FInputAssistFormTop := ini.ReadInteger('IAtWindowsSize', 'Top', 0);
+ FInputAssistFormLeft := ini.ReadInteger('IAtWindowsSize', 'Left', 0);
+ FInputAssistFormWidth := ini.ReadInteger('IAtWindowsSize', 'Width', 400);
+ FInputAssistFormHeight := ini.ReadInteger('IAtWindowsSize', 'Height', 460);
+
+ // Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
+ FFixedCookie := ini.ReadString('Cookie', 'fixedString', FIXED_COOKIE);
+
+ // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\8dÅ\91å\95Û\8e\9d\90\94
+ FMoveHistorySize := ini.ReadInteger('MoveHisotry', 'Max', 20);
+
+ FStoredTaskTray := ini.ReadBool('Function', 'StroedTaskTray', false);
+ FLoopBrowserTabs := ini.ReadBool('Function', 'LoopBrowserTabs', false);
+ FAddKeywordLink := ini.ReadBool('Thread', 'AddKeywordLink', false);
+ if not (ini.ValueExists('Thread', 'ReplaceDat')) then begin
+ msg := '\83Z\83L\83\85\83\8a\83e\83B\83\\83t\83g\82Ì\8cë\94½\89\9e\91Î\8dô\82ð\82µ\82Ü\82·\82©\81H'+ #13#10 +
+ '\81i\90\84\8f§:\82Í\82¢\81j'+ #13#10+'\8fÚ\8d×\90Ý\92è\82©\82ç\95Ï\8dX\82Å\82«\82Ü\82·\81B';
+ if MsgBox(Application.Handle,
+ msg, '\83M\83R\83i\83r', MB_YESNO or MB_ICONQUESTION) = IDYES then begin
+ FReplaceDat := True;
+ end;
+ end else begin
+ FReplaceDat := ini.ReadBool('Thread', 'ReplaceDat', False);
+ end;
+
+ FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);
+ FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');
+
+ FCheckDatFile := ini.ReadBool('ThreadList', 'CheckDatFile', True);
+ FLimitResCountMessage := ini.ReadBool('Thread', 'LimitResCountMessage', True);
+
+ // \96`\8c¯\82Ì\8f\91Cookie\93Ç\82Ý\8d\9e\82Ý
+ hostList := TStringList.Create;
+ ini.ReadSection('Bouken', hostList);
+ for i := 0 to hostList.Count - 1 do begin
+ FBoukenCookieList.Add( hostList[i] + '=' +
+ ini.ReadString('Bouken', hostList[i], '') );
+ end;
+ hostList.Free;
+
+ // \83M\83R\83i\83r\8dX\90V\82Å\97\98\97p\82µ\82½\83C\83\93\83X\83g\81[\83\89\82Ì\8dí\8f\9c
+ s := ini.ReadString('Update', 'Remove0', '');
+ if (FileExists(s)) then begin
+ SysUtils.DeleteFile(s);
+ // \8dí\8f\9c\82É\8e¸\94s\82µ\82Ä\82à\96³\8e\8b\82·\82é
+ ini.DeleteKey('Update', 'Remove0');
+ end;
- //Tab\8e©\93®\95Û\91¶\81A\93Ç\82Ý\8d\9e\82Ý
- FTabAutoLoadSave := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
-
-
+ ini.UpdateFile;
finally
ini.Free;
end;
ini.WriteString('Window', 'CabinetFontName', FCabinetFontName);
ini.WriteInteger('Window', 'CabinetFontSize', FCabinetFontSize);
ini.WriteString('Window', 'CabinetFontColor', ColorToString(FCabinetFontColor));
+ ini.WriteBool('Window', 'CabinetFontBold', FCabinetFontBold);
+ ini.WriteBool('Window', 'CabinetFontItalic', FCabinetFontItalic);
ini.WriteString('Window', 'CabinetBackColor', ColorToString(FCabinetBackColor));
ini.WriteString('Window', 'ListFontName', FListFontName);
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.WriteBool('Window', 'ListFontBold', FListFontBold);
+ ini.WriteBool('Window', 'ListFontItalic', FListFontItalic);
+ ini.WriteBool('Window','UseOddColor',FUseOddColorOddResNum);
+ ini.WriteString('Window', 'OddColor',ColorToString(FOddColor));
+ ini.WriteBool('Window','UnFocusedBold', FUnFocusedBold);
ini.WriteString('Window', 'EditorFontName', FEditorFontName);
ini.WriteInteger('Window', 'EditorFontSize', FEditorFontSize);
i: Integer;
ini: TMemIniFile;
CoolSet: TCoolSet;
+ wkList : TStringList;
begin
ini := TMemIniFile.Create(GetFileName());
try
ini.WriteInteger('OptionDialog', 'TabIndex', FOptionDialogTabIndex);
+ // \93ü\97Í\83A\83V\83X\83g
+ ini.WriteInteger('IAtWindowsSize', 'Top', FInputAssistFormTop);
+ ini.WriteInteger('IAtWindowsSize', 'Left', FInputAssistFormLeft);
+ ini.WriteInteger('IAtWindowsSize', 'Width', FInputAssistFormWidth);
+ ini.WriteInteger('IAtWindowsSize', 'Height', FInputAssistFormHeight);
+
//\83c\81[\83\8b\83o\81[
ini.WriteBool('ToolBar', 'StdVisible', FStdToolBarVisible);
ini.WriteBool('ToolBar', 'AddressVisible', FAddressBarVisible);
ini.WriteBool('Function', 'ListViewNo', FListViewNo);
//CSS\8eg\97p
ini.WriteBool('CSS', 'UseCSS', FUseCSS);
+ //\82©\82µ\82ã\81`\82µ\82á\82Ì\83X\83L\83\93\82ð\8eg\82¤\82©
+ ini.WriteBool('CSS', 'UseKatjushaType', FUseKatjushaType);
//CSS\83t\83@\83C\83\8b\96¼
- ini.WriteString('CSS', 'FileName', FCSSFileName);
+ ini.WriteString('CSS', 'FileName', FSkinFiles.FileName);
//Mail\97\93\95\\8e¦
ini.WriteBool('Thread', 'ShowMail', FShowMail);
// \83\8c\83X\95\\8e¦\94Í\88Í
ini.DeleteKey( 'Thread', 'OnlyAHundredRes' ); // \8cÃ\82¢\90Ý\92è\82Ì\8dí\8f\9c
ini.WriteInteger('Thread', 'ResRange', FResRange);
ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold);
+ ini.WriteInteger('Thread', 'HeadResCount', FHeadResCount);
+ ini.WriteInteger('Thread','ResRangeExCount', FResRangeExCount);
// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
ini.WriteInteger('ThreadList', 'ThreadRange', Ord( FThreadRange ));
//\83\8d\83O\8dí\8f\9c\8am\94F
//\83|\83b\83v\83A\83b\83v\88Ê\92u
ini.WriteInteger('Browser', 'PopupPosition', Ord(FPopupPosition));
-
+ ini.WriteInteger('Browser', 'RespopupDelteX', FRespopupDeltaX);
+ ini.WriteInteger('Browser', 'RespopupDelteY', FRespopupDeltaY);
+ ini.WriteInteger('Browser', 'RespopupWait', FRespopupWait);
+ ini.WriteBool('Browser', 'RespopupMailTo', FRespopupMailTo);
+
//\83A\83h\83\8c\83X\83o\81[
ini.WriteBool('AddressBar', 'URLDisplay', FURLDisplay);
ini.WriteBool('AddressBar', 'TabStop', FAddressBarTabStop);
ini.WriteBool('Browser', 'PreviewVisible', FPreviewVisible);
ini.WriteInteger('Browser', 'PreviewSize', Ord(FPreviewSize));
ini.WriteInteger('Browser', 'PreviewWait', FPreviewWait);
- ini.WriteInteger('Browser', 'AutoMaximize', Ord( FBrowserAutoMaximize ) );
+
+ ini.WriteInteger('Window', 'BrowserAutoMaximize', Ord( BrowserAutoMaximize ) );
//\83X\83\8c\83b\83h\88ê\97\97\8dX\90V\83A\83C\83R\83\93
ini.WriteBool('ThreadList', 'StateIconVisible', FListIconVisible);
- ini.WriteBool('ThreadList', 'NonAcquiredCount', FNonAcquiredCount);
ini.WriteBool('ThreadList', 'CreationTimeLogs',FCreationTimeLogs);
ini.WriteBool('ThreadList', 'FutureThread', FFutureThread);
ini.WriteInteger('ThreadList', 'SelectInterval', FSelectInterval);
ini.WriteBool('ThreadList', 'BoardSortOrder', FBoardSortOrder);
ini.WriteInteger('ThreadList', 'DatOchiSortIndex', FDatOchiSortIndex);
ini.WriteBool('ThreadList', 'DatOchiSortOrder', FDatOchiSortOrder);
+ // DL\8cã\82Ì\8e©\93®\83\\81[\83g
+ ini.WriteBool('ThreadList', 'AutoSort', FAutoSortThreadList);
//\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);
ini.WriteInteger('PostTime', 'TimeAdjustSec', FTimeAdjustSec);
ini.WriteBool('PostTime', 'TimeAdjust', FTimeAdjust);
- //\83\8a\83X\83g\83J\83\89\83\80
+ // \83\8a\83X\83g\83J\83\89\83\80\95\9d
for i := 0 to Length(FBBSColumnWidth) - 1 do begin
ini.WriteInteger('BBSColumnWidth', 'ID' + IntToStr(i), FBBSColumnWidth[i]);
end;
ini.WriteInteger('BoardColumnWidth', 'ID' + IntToStr(i), FBoardColumnWidth[i]);
end;
+ wkList := TStringList.Create;
+ try
+ // \83J\83e\83S\83\8a\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'BBSColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'BBSColumnOrder', wkList[ i ] );
+ for i := 0 to FBBSColumnOrder.Count - 1 do
+ ini.WriteInteger( 'BBSColumnOrder', 'ID' + IntToStr( i ), Ord( FBBSColumnOrder[ i ] ) );
+
+ // \94Â\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'CategoryColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'CategoryColumnOrder', wkList[ i ] );
+ for i := 0 to FCategoryColumnOrder.Count - 1 do
+ ini.WriteInteger( 'CategoryColumnOrder', 'ID' + IntToStr( i ), Ord( FCategoryColumnOrder[ i ] ) );
+
+ // \83X\83\8c\83\8a\83X\83g\8f\87\8f\98
+ ini.ReadSection( 'BoardColumnOrder', wkList );
+ for i := wkList.Count - 1 downto 0 do
+ ini.DeleteKey( 'BoardColumnOrder', wkList[ i ] );
+ for i := 0 to FBoardColumnOrder.Count - 1 do
+ ini.WriteInteger( 'BoardColumnOrder', 'ID' + IntToStr( i ), Ord( FBoardColumnOrder[ i ] ) );
+ finally
+ wkList.Free;
+ end;
+
//\83T\83E\83\93\83h
for i := 0 to GetSoundCount - 1 do begin
if not FileExists(SoundFileName[i]) then
//\82 \82Ú\81`\82ñ
ini.WriteBool('Abon','Deleterlo',FAbonDeleterlo);
ini.WriteBool('Abon','Replaceul',FAbonReplaceul);
- ini.WriteBool('Abon','Popup',FPopUpAbon);
+ ini.WriteBool('Abon','Popup',FPopUpAbon);
ini.WriteBool('Abon','ShowNGLines',FShowNGLinesNum);
ini.WriteBool('Abon','AddResAnchor',FAddResAnchor);
- ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
+ ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
+ ini.WriteBool('Abon','IgnoreKana', FIgnoreKana);
// \83G\83f\83B\83^
ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );
ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );
+ ini.WriteBool( 'Editor', 'UseGobakuCheck', FUseGobakuCheck );
+
+ //\83^\83u\8e©\93®\95Û\91¶
+ ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
+ ini.WriteString('Thread', 'LastCloseTabURL', FLastCloseTabURL);
+ //\8fÚ\8d×\90Ý\92è
+ ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex);
+
+ //\82É\82¿\82á\82ñ\8cê\88Ä\93à\8b@\94\
+ ini.WriteBool('2chSupport', 'Support', F2chSupport);
+
+ // \83}\83E\83X\83W\83F\83X\83`\83\83\81[\82ð\8eg\97p\82·\82é\82©\82Ç\82¤\82©
+ ini.WriteBool( 'Guesture', 'Enabled', FGestureEnabled );
+ ini.WriteBool( 'Guesture', 'IgnoreContext', FGestureIgnoreContext );
+ //FusianaTrap
+ ini.WriteBool('Trap', 'LocalTrap', FLocalTrapAtt);
+ ini.WriteBool('Trap', 'RemoteTrap', FRemoteTrapAtt);
+ ini.WriteInteger('HTTP', 'ReadTimeOut', FReadTimeOut);
+
+ // \8eg\97p\82·\82é\83X\83p\83\80\83t\83B\83\8b\83^
+ ini.WriteInteger( 'Abon', 'SpamFilterAlgorithm', Ord( FSpamFilterAlgorithm ) );
+ ini.WriteBool('Function', 'Mute', FMute);
+ ini.WriteBool('ThreadList', 'UseUndecided', FUseUndecided);
+
+ //\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
+ ini.WriteString('Be', 'UserID', FBeUserID);
+ ini.WriteString('Be', 'Code', Encrypt(FBeCode));
+ ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);
+
+ //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
+ ini.WriteInteger('Recode', 'Max', FMaxRecordCount);
+ // \8cÅ\92è\82ÌCookie\95¶\8e\9a\97ñ
+ ini.WriteString('Cookie', 'fixedString', FFixedCookie);
+
+ // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\8dÅ\91å\95Û\8e\9d\90\94
+ ini.WriteInteger('MoveHisotry', 'Max', FMoveHistorySize);
- ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
+ ini.WriteBool('Function', 'StroedTaskTray', FStoredTaskTray);
+ ini.WriteBool('Function', 'LoopBrowserTabs', FLoopBrowserTabs);
+ ini.WriteBool('Thread', 'AddKeywordLink', FAddKeywordLink);
+ ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);
+ ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);
+ ini.WriteString('Function', 'ExtList', FExtList);
+ ini.WriteBool('ThreadList', 'CheckDatFile', FCheckDatFile);
+ ini.WriteBool('Thread', 'LimitResCountMessage', FLimitResCountMessage);
+
+ ini.UpdateFile;
+ finally
+ ini.Free;
+ end;
+end;
+//\90Ý\92è\83t\83@\83C\83\8b\95Û\91¶(\96`\8c¯\82Ì\8f\91)
+procedure TSetting.WriteBoukenSettingFile;
+var
+ i: Integer;
+ ini: TMemIniFile;
+begin
+ ini := TMemIniFile.Create(GetFileName());
+ try
+ ini.EraseSection('Bouken');
+ // \96`\8c¯\82Ì\8f\91Cookie\8f\91\82«\8d\9e\82Ý
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ ini.WriteString('Bouken', FBoukenCookieList.Names[i], FBoukenCookieList.Values[FBoukenCookieList.Names[i]]);
+ end;
ini.UpdateFile;
finally
ini.Free;
begin
ini := TMemIniFile.Create(GetFileName());
try
- if ExtractFilePath(Application.ExeName) + 'Log' = NewLogFolder then
+ if GetAppDir + 'Log' = NewLogFolder then
ini.DeleteKey('Folder', 'LogFolder')
else
ini.WriteString('Folder', 'LogFolder', NewLogFolder);
begin
for i := 0 to GetSoundCount - 1 do begin
if SoundName[i] = Name then begin
- Result := SoundFileName[i];
+ SysUtils.SetCurrentDir(GetAppDir);
+ Result := ExpandFileName(SoundFileName[i]);
Exit;
end;
end;
begin
ini := TMemIniFile.Create(GetBoardURLFileName());
try
- ini.WriteInteger('URL','count',2);
- ini.WriteInteger('URL','selected',2);
+ //\8dX\90VURL\82Ì\90\94
+ ini.WriteInteger('URL','count',1);
+ //\83f\83t\83H\83\8b\83g\82Å\8eg\97p\82·\82é\82t\82q\82k\82Ì\83C\83\93\83f\83b\83N\83X
+ ini.WriteInteger('URL','selected',1);
+ //\88È\89º\95K\97v\82È\90\94\82¾\82¯\81A\8dX\90V\82t\82q\82k\82ð\92Ç\89Á
ini.WriteString('URL','1',DEFAULT_2CH_BOARD_URL1);
- ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
+ //ini.WriteString('URL','2',DEFAULT_2CH_BOARD_URL2);
ini.UpdateFile;
finally
ini.Free;
*************************************************************************)
function TSetting.GetBoardFileName: string;
begin
- Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_FILE_NAME;
+ Result := GetConfigDir + BOARD_FILE_NAME;
end;
(*************************************************************************
*************************************************************************)
function TSetting.GetCustomBoardFileName: string;
begin
- Result := GetAppDir + CONFIG_DIR_NAME + '\' + CUSTOMBOARD_FILE_NAME;
+ Result := GetConfigDir + CUSTOMBOARD_FILE_NAME;
end;
(*************************************************************************
- *\83{\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾
+ *\83{\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
*************************************************************************)
function TSetting.GetBoardDir: string;
begin
- Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_DIR_NAME + '\';
+ Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_DIR_NAME);
end;
(*************************************************************************
(*************************************************************************
- *\8eÀ\8ds\83t\83@\83C\83\8b\83t\83H\83\8b\83_\8eæ\93¾
+ *\8eÀ\8ds\83t\83@\83C\83\8b\83t\83H\83\8b\83_\8eæ\93¾(\8dÅ\8cã\82É\\82ª\82 \82é)
*************************************************************************)
function TSetting.GetAppDir: string;
begin
end;
(*************************************************************************
- *Config\83t\83H\83\8b\83_\8eæ\93¾
+ *Config\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
*************************************************************************)
function TSetting.GetConfigDir: string;
begin
Result := IncludeTrailingPathDelimiter(GetAppDir + CONFIG_DIR_NAME);
end;
-
+(*************************************************************************
+ *CSS\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
function TSetting.GetStyleSheetDir: string;
begin
Result := IncludeTrailingPathDelimiter(GetConfigDir + CSS_DIR_NAME);
end;
-
+(*************************************************************************
+ *skin\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
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;
-
+(*************************************************************************
+ *NG\83\8f\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
function TSetting.GetNGWordsDir: string;
begin
Result := IncludeTrailingPathDelimiter(GetConfigDir + NGWORDs_DIR_NAME);
end;
-
+(*************************************************************************
+ *Board\83v\83\89\83O\83C\83\93\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
function TSetting.GetBoardPlugInDir: string;
begin
Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_PLUGIN_DIR_NAME);
begin
FUseCSS := value;
-
+ // Windows\93I\82É\83t\83@\83C\83\8b\83p\83X\82Ì\91å\95¶\8e\9a\8f¬\95¶\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82³\82ê\82é\82Ì\82Å\81A
+ // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95¶\8e\9a\8f¬\95¶\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
FUseSkin :=
UseCSS and
- (Pos( GetSkinDir, CSSFileName ) > 0) and
- FileExists( GetSkinHeaderFileName );
+ (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
+ FileExists( FSkinFiles.GetSkinHeaderFileName );
end;
procedure TSetting.SetCSSFileName( fileName: string );
begin
-
- FCSSFileName := fileName;
-
+ FSkinFiles.FileName := fileName;
+ // Windows\93I\82É\83t\83@\83C\83\8b\83p\83X\82Ì\91å\95¶\8e\9a\8f¬\95¶\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82³\82ê\82é\82Ì\82Å\81A
+ // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95¶\8e\9a\8f¬\95¶\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
FUseSkin :=
UseCSS and
- (Pos( GetSkinDir, CSSFileName ) > 0) and
- FileExists( GetSkinHeaderFileName );
+ (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
+ FileExists( FSkinFiles.GetSkinHeaderFileName );
end;
-
+(*************************************************************************
+ *samba\90Ý\92è\83t\83@\83C\83\8b\96¼\8eæ\93¾
+ *************************************************************************)
function TSetting.GetSambaFileName: string;
begin
Result := GetAppDir + SAMBATIME_FILE_NAME;
Result := GetConfigDir + IGNORE_FILE_NAME;
end;
-end.
+//! \83}\83E\83X\83W\83F\83X\83`\83\83\81[\83t\83@\83C\83\8b\83p\83X
+function TSetting.GetGestureFileName: string;
+begin
+ Result := GetConfigDir + GESTURE_FILE_NAME;
+end;
+
+//! \83X\83p\83\80\83t\83B\83\8b\83^\8aw\8fK\97\9a\97ð\83t\83@\83C\83\8b\83p\83X
+function TSetting.GetSpamFilterFileName: string;
+begin
+ Result := GetConfigDir + SPAMFILTER_FILE_NAME;
+end;
+
+function TSetting.GetLanguageFileName: string;
+begin
+ Result := GetConfigDir + LANGUAGE_FILE_NAME;
+end;
+procedure TSetting.WriteLogFolder(AVal : String);
+begin
+ FLogFolder := AVal;
+ FLogFolderP := IncludeTrailingPathDelimiter(LogFolder);
+end;
+function TSetting.GetMainKeyFileName: String;
+begin
+ Result := GetConfigDir + KEY_SETTING_FILE_NAME;
+end;
+function TSetting.GetEditorKeyFileName: String;
+begin
+ Result := GetConfigDir + EKEY_SETTING_FILE_NAME;
+end;
+function TSetting.GetInputAssistFileName : String;
+begin
+ Result := GetConfigDir + INPUTASSIST_FILE_NAME;
+end;
+function TSetting.GetReplaceFileName: String;
+begin
+ Result := GetConfigDir + REPLACE_FILE_NAME;
+end;
+function TSetting.GetExtprevieFileName: String;
+begin
+ Result := GetConfigDir + EXT_PREVIEW_FILE_NAME;
+end;
+procedure TSetting.SetMoveHistorySize(AVal : Integer);
+begin
+ if (AVal > 0) then begin
+ FMoveHistorySize := AVal;
+ end;
+end;
+{
+\brief \83v\83\8d\83L\83V\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+\param memIni ini\83t\83@\83C\83\8b
+}
+procedure TSetting.ReadProxySettings(memIni: TMemIniFile);
+const
+ READ_SECTION = 'ReadProxy';
+ WRITE_SECTION= 'WriteProxy';
+ PROXY_KEY = 'Proxy';
+ ADDRE_KEY = 'Address';
+ PORT_KEY = 'Port';
+ UID_KEY = 'UserID';
+ PASS_KEY = 'Password';
+begin
+ if (memIni <> nil) then begin
+ FReadProxy := memIni.ReadBool(READ_SECTION, PROXY_KEY, false);
+ FReadProxyAddress := memIni.ReadString(READ_SECTION, ADDRE_KEY, '');
+ FReadProxyPort := memIni.ReadInteger(READ_SECTION, PORT_KEY, 0);
+ FReadProxyUserID := memIni.ReadString(READ_SECTION, UID_KEY, '');
+ FReadProxyPassword := memIni.ReadString(READ_SECTION, PASS_KEY, '');
+
+ FWriteProxy := memIni.ReadBool(WRITE_SECTION, PROXY_KEY, false);
+ FWriteProxyAddress := memIni.ReadString(WRITE_SECTION, ADDRE_KEY, '');
+ FWriteProxyPort := memIni.ReadInteger(WRITE_SECTION, PORT_KEY, 0);
+ FWriteProxyUserID := memIni.ReadString(WRITE_SECTION, UID_KEY, '');
+ FWriteProxyPassword := memIni.ReadString(WRITE_SECTION, PASS_KEY, '');
+ end;
+end;
+{
+\brief \8ae\8eí\83E\83B\83\93\83h\83E\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
+\param menIni ini\83t\83@\83C\83\8b
+}
+procedure TSetting.ReadWindowSettings(memIni: TMemIniFile);
+const
+ WINDOW_SECTION = 'Window';
+begin
+ if (memIni <> nil) then begin
+ FBrowserFontName := memIni.ReadString(WINDOW_SECTION, 'BrowserFontName', '');
+ FBrowserFontSize := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontSize', 0);
+ FBrowserFontBold := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontBold', 0);
+ FBrowserFontItalic := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontItalic', 0);
+ FBrowserFontColor := memIni.ReadInteger(WINDOW_SECTION, 'BrowserFontColor', -1);
+ FBrowserBackColor := memIni.ReadInteger(WINDOW_SECTION, 'BrowserBackColor', -1);
+
+ FCabinetFontName := memIni.ReadString(WINDOW_SECTION, 'CabinetFontName', DEFAULT_FONT_NAME);
+ FCabinetFontSize := memIni.ReadInteger(WINDOW_SECTION, 'CabinetFontSize', DEFAULT_FONT_SIZE);
+ FCabinetFontBold := memIni.ReadBool(WINDOW_SECTION, 'CabinetFontBold', False);
+ FCabinetFontItalic := memIni.ReadBool(WINDOW_SECTION, 'CabinetFontItalic', False);
+ FCabinetFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'CabinetFontColor', DEFAULT_FONT_COLOR));
+ FCabinetBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'CabinetBackColor', DEFAULT_WINDOW_COLOR));
+
+ FListFontName := memIni.ReadString(WINDOW_SECTION, 'ListFontName', DEFAULT_FONT_NAME);
+ FListFontSize := memIni.ReadInteger(WINDOW_SECTION, 'ListFontSize', DEFAULT_FONT_SIZE);
+ FListFontBold := memIni.ReadBool(WINDOW_SECTION, 'ListFontBold', False);
+ FListFontItalic := memIni.ReadBool(WINDOW_SECTION, 'ListFontItalic', False);
+ FListFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'ListFontColor', DEFAULT_FONT_COLOR));
+ FListBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'ListBackColor', DEFAULT_WINDOW_COLOR));
+ FUseOddColorOddResNum := memIni.ReadBool(WINDOW_SECTION,'UseOddColor', False);
+ FOddColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'OddColor', DEFAULT_WINDOW_COLOR));
+ FUnFocusedBold := memIni.ReadBool(WINDOW_SECTION,'UnFocusedBold', False);
+
+ FEditorFontName := memIni.ReadString(WINDOW_SECTION, 'EditorFontName', DEFAULT_FONT_NAME);
+ FEditorFontSize := memIni.ReadInteger(WINDOW_SECTION, 'EditorFontSize', DEFAULT_FONT_SIZE);
+ FEditorFontBold := memIni.ReadBool(WINDOW_SECTION, 'EditorFontBold', False);
+ FEditorFontItalic := memIni.ReadBool(WINDOW_SECTION, 'EditorFontItalic', False);
+ FEditorFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'EditorFontColor', DEFAULT_FONT_COLOR));
+ FEditorBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'EditorBackColor', DEFAULT_WINDOW_COLOR));
+
+ FBrowserTabFontName := memIni.ReadString(WINDOW_SECTION, 'BrowserTabFontName', DEFAULT_TAB_FONT_NAME);
+ FBrowserTabFontSize := memIni.ReadInteger(WINDOW_SECTION, 'BrowserTabFontSize', DEFAULT_TAB_FONT_SIZE);
+ FBrowserTabFontBold := memIni.ReadBool(WINDOW_SECTION, 'BrowserTabFontBold', False);
+ FBrowserTabFontItalic := memIni.ReadBool(WINDOW_SECTION, 'BrowserTabFontItalic', False);
+
+ FHintFontName := memIni.ReadString(WINDOW_SECTION, 'HintFontName', Screen.HintFont.Name);
+ FHintFontSize := memIni.ReadInteger(WINDOW_SECTION, 'HintFontSize', Screen.HintFont.Size);
+ //FHintFontBold := memIni.ReadBool(WINDOW_SECTION, 'HintFontBold', False);
+ //FHintFontItalic := memIni.ReadBool(WINDOW_SECTION, 'HintFontItalic', False);
+ FHintFontColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'HintFontColor', DEFAULT_FONT_COLOR));
+ FHintBackColor := StringToColor(memIni.ReadString(WINDOW_SECTION, 'HintBackColor', 'clInfoBk'));
+ end;
+end;
+{
+\brief \93ü\97Í\97\9a\97ð\93Ç\82Ý\8d\9e\82Ý\81i\8c\9f\8dõ\81{\83\81\81[\83\8b\97\93\81{\96¼\91O\81j
+\param memIni ini\83t\83@\83C\83\8b
+}
+procedure TSetting.ReadInputHisotrys(memIni: TMemIniFile);
+const
+ SECTIONS : array[0..2] of string = ('Name', 'Mail', 'SelectText');
+var
+ wkList : TStringList;
+ wkStr : string;
+ i, j : Integer;
+ listArray : array[0..2] of TStringList;
+begin
+ if (memIni <> nil) then begin
+ listArray[0] := FNameList;
+ listArray[1] := FMailList;
+ listArray[2] := FSelectTextList;
+ wkList := TStringList.Create;
+ try
+ for i := 0 to High(listArray) do begin
+ memIni.ReadSection(SECTIONS[i], wkList);
+ for j := 0 to wkList.Count -1 do begin
+ wkStr := memIni.ReadString(SECTIONS[i], wkList[j], '');
+ if (wkStr <> '') and
+ (listArray[i].IndexOf(wkStr) = -1) then begin
+ listArray[i].Add(wkStr);
+ end;
+ end;
+ end;
+ finally
+ wkList.Free;
+ end;
+ end;
+end;
+{
+\breif \83\8a\83X\83g\83J\83\89\83\80\95\9d\93Ç\82Ý\8d\9e\82Ý
+\param memIni ini\83t\83@\83C\83\8b
+}
+procedure TSetting.ReadListColumnWidth(memIni: TMemIniFile);
+const
+ SECTIONS : array[0..2] of string =
+ ('BBSColumnWidth', 'CategoryColumnWidth', 'BoardColumnWidth');
+ 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..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60);
+ MAX_WIDTH: Integer = 2000;
+var
+ wkList : TStringList;
+ i : Integer;
+begin
+ if (memIni <> nil) then begin
+ // \83\8a\83X\83g\83J\83\89\83\80\95\9d
+ wkList := TStringList.Create;
+ try
+ memIni.ReadSection(SECTIONS[0], wkList);
+ if Length(FBBSColumnWidth) <> wkList.Count then begin
+ memIni.EraseSection(SECTIONS[0]);
+ end;
+ for i := 0 to High(FBBSColumnWidth) do begin
+ BBSColumnWidth[i] := memIni.ReadInteger(SECTIONS[0],
+ 'ID' + IntToStr(i), DEFAULT_BBS_WIDTH[i]);
+ if BBSColumnWidth[i] > MAX_WIDTH then
+ BBSColumnWidth[i] := DEFAULT_BBS_WIDTH[i];
+ end;
+ memIni.ReadSection(SECTIONS[1], wkList);
+ if Length(FCategoryColumnWidth) <> wkList.Count then begin
+ memIni.EraseSection(SECTIONS[1]);
+ end;
+ for i := 0 to High(FCategoryColumnWidth) do begin
+ CategoryColumnWidth[i] := memIni.ReadInteger(SECTIONS[1],
+ 'ID' + IntToStr(i), DEFAULT_CATEGORY_WIDTH[i]);
+ if CategoryColumnWidth[i] > MAX_WIDTH then
+ CategoryColumnWidth[i] := DEFAULT_CATEGORY_WIDTH[i];
+ end;
+ memIni.ReadSection(SECTIONS[2], wkList);
+ if Length(FBoardColumnWidth) <> wkList.Count then begin
+ memIni.EraseSection(SECTIONS[2]);
+ end;
+ for i := 0 to High(FBoardColumnWidth) do begin
+ BoardColumnWidth[i] := memIni.ReadInteger(SECTIONS[2],
+ 'ID' + IntToStr(i), DEFAULT_BOARD_WIDTH[i]);
+ if BoardColumnWidth[i] > MAX_WIDTH then
+ BoardColumnWidth[i] := DEFAULT_BOARD_WIDTH[i];
+ end;
+ finally
+ wkList.Free;
+ end;
+ end;
+end;
+//! \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98\93Ç\82Ý\8d\9e\82Ý
+procedure TSetting.ReadOrdColumn(memIni: TMemIniFile);
+var
+ wkList : TStringList;
+ wkStr : string;
+ i, id, code : Integer;
+begin
+ if (memIni <> nil) then begin
+ wkList := TStringList.Create;
+ try
+ memIni.ReadSection( 'BBSColumnOrder', wkList );
+ for i := 0 to wkList.Count - 1 do begin
+ wkStr := memIni.ReadString( 'BBSColumnOrder', 'ID' + IntToStr( i ), '' );
+ Val( wkStr, id, code );
+ if code = 0 then
+ FBBSColumnOrder.Add( TGikoBBSColumnID( id ) );
+ end;
+ if FBBSColumnOrder.Count = 0 then begin
+ // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+ for i := 0 to Integer( High( TGikoBBSColumnID ) ) do
+ FBBSColumnOrder.Add( TGikoBBSColumnID( i ) );
+ end;
+ memIni.ReadSection( 'CategoryColumnOrder', wkList );
+ for i := 0 to wkList.Count - 1 do begin
+ wkStr := memIni.ReadString( 'CategoryColumnOrder', 'ID' + IntToStr( i ), '' );
+ Val( wkStr, id, code );
+ if code = 0 then
+ FCategoryColumnOrder.Add( TGikoCategoryColumnID( id ) );
+ end;
+ if FCategoryColumnOrder.Count = 0 then begin
+ // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+ for i := 0 to Integer( High( TGikoCategoryColumnID ) ) do
+ FCategoryColumnOrder.Add( TGikoCategoryColumnID( i ) );
+ end;
+
+ memIni.ReadSection( 'BoardColumnOrder', wkList );
+ for i := 0 to wkList.Count - 1 do begin
+ wkStr := memIni.ReadString( 'BoardColumnOrder', 'ID' + IntToStr( i ), '' );
+ Val( wkStr, id, code );
+ if code = 0 then
+ FBoardColumnOrder.Add( TGikoBoardColumnID( id ) );
+ end;
+ if FBoardColumnOrder.Count = 0 then begin
+ // \90Ý\92è\82ª\96³\82¢\82Ì\82Å\8dì\90¬
+ for i := 0 to Integer( High( TGikoBoardColumnID ) ) do begin
+ // \90¨\82¢\82Ì\83J\83\89\83\80\82Í\83f\83t\83H\83\8b\83g\82Å\94ñ\95\\8e¦\82É\82·\82é
+ if ( i <> Ord(gbcVigor) ) then begin
+ FBoardColumnOrder.Add( TGikoBoardColumnID( i ) );
+ end;
+ end;
+ end;
+ finally
+ wkList.Free;
+ end;
+ end;
+end;
+
+function TSetting.GetCSSFileName: string;
+begin
+ Result := FSkinFiles.FileName;
+end;
+function TSetting.GetBoukenCookie(AHostName: String): String;
+var
+ i : Integer;
+begin
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ if ( AnsiPos(FBoukenCookieList.Names[i], AHostName) > 0 ) then begin
+ Result := FBoukenCookieList.Values[FBoukenCookieList.Names[i]];
+ Break;
+ end;
+ end;
+end;
+procedure TSetting.SetBoukenCookie(ACookieValue, AHostName: String);
+var
+ i : Integer;
+begin
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ if ( FBoukenCookieList.Names[i] = AHostName ) then begin
+ FBoukenCookieList[i] := AHostName + '=' + ACookieValue;
+ Break;
+ end;
+ end;
+ if ( i = FBoukenCookieList.Count ) then begin
+ FBoukenCookieList.Add(AHostName + '=' + ACookieValue);
+ end;
+end;
+end.