OSDN Git Service

あまりにも読み込み処理が長くなったので多少分割
authorh677 <h677>
Mon, 7 Aug 2006 15:30:11 +0000 (15:30 +0000)
committerh677 <h677>
Mon, 7 Aug 2006 15:30:11 +0000 (15:30 +0000)
Setting.pas

index f50e858..4e1d1f0 100644 (file)
@@ -5,7 +5,7 @@ interface
 
 uses
        SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}
-       ComCtrls, GestureModel;
+       ComCtrls, GestureModel, IniFiles;
 
 const
        MAIN_COOLBAND_COUNT = 4;                //\83\81\83C\83\93CoolBand\82Ì\90\94
@@ -461,6 +461,16 @@ type
 
                procedure SetUseCSS( value: Boolean );
                procedure SetCSSFileName( fileName: 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
@@ -811,7 +821,7 @@ const
 implementation
 
 uses
-       Math, IniFiles, UCryptAuto, UBase64;
+       Math, UCryptAuto, UBase64;
 
 type
        TSoundName = record
@@ -964,20 +974,11 @@ 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..10] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130, 60);
-       MAX_WIDTH: Integer = 2000;
 var
        ini: TMemIniFile;
        i: Integer;
-       id, code : Integer;
-       wkList: TStringList;
-       wkStr: string;
        Exists: Boolean;
        s: string;                                               
-//     id: Integer;
        CoolSet: TCoolSet;
 begin
        Exists := FileExists(GetFileName);
@@ -990,60 +991,11 @@ begin
                //\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));
-               FUnFocusedBold := ini.ReadBool('Window','UnFocusedBold', False);
-
-               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);
@@ -1100,112 +1052,14 @@ begin
 //             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\95\9d
-               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;
+        ReadListColumnWidth( ini );
 
                // \83J\83e\83S\83\8a\83\8a\83X\83g\83J\83\89\83\80\8f\87\8f\98
-               wkList := TStringList.Create;
-               try
-                       ini.ReadSection( 'BBSColumnOrder', wkList );
-                       for i := 0 to wkList.Count - 1 do begin
-                               wkStr := ini.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;
-
-                       ini.ReadSection( 'CategoryColumnOrder', wkList );
-                       for i := 0 to wkList.Count - 1 do begin
-                               wkStr := ini.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;
-
-                       ini.ReadSection( 'BoardColumnOrder', wkList );
-                       for i := 0 to wkList.Count - 1 do begin
-                               wkStr := ini.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;
+        ReadOrdColumn( ini );
 
                //\83\8a\83X\83g\94Ô\8d\86
                FListViewNo := ini.ReadBool('Function', 'ListViewNo', True);
@@ -2252,6 +2106,232 @@ begin
         FMoveHistorySize := AVal;
     end;
 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;
+end.