• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonbathyscaphephpgamewindowsguic翻訳omegattwitterframeworktestbtronarduinovb.net計画中(planning stage)directxpreviewerゲームエンジンdom

ギコナビ


Commit MetaInfo

Revision2c5f2d4c4c0ac68b3fa17e22e09d58a2cc818664 (tree)
Time2011-02-22 22:37:51
Authorh677 <h677>
Commiterh677

Log Message

Beのログインに対応
Folder.iniに冒険の書が記録されている場合削除する処理を追加

Change Summary

Incremental Difference

--- /dev/null
+++ b/Belib.pas
@@ -0,0 +1,232 @@
1+{ Dolib‚ðƒRƒs[‚µ‚ÄBEƒƒOƒCƒ“ƒZƒbƒVƒ‡ƒ“ŠÇ—‚ðì¬ }
2+unit Belib;
3+
4+{$IOCHECKS ON}
5+
6+interface
7+
8+uses
9+ Windows, SysUtils, WinInet, YofUtils, Y_TextConverter;
10+
11+type
12+ TBelibSession = class(TObject)
13+ private
14+ FMDMD: string;
15+ FDMDM: string;
16+ FErrorCode: Integer;
17+ FErrorString: string;
18+ public
19+ property MDMD: string read FMDMD write FMDMD;
20+ property DMDM: string read FDMDM write FDMDM;
21+ property ErrorCode: Integer read FErrorCode write FErrorCode;
22+ property ErrorString: string read FErrorString write FErrorString;
23+ end;
24+
25+ TBelib = class(TObject)
26+ private
27+ FSession : TBelibSession;
28+ FConnected: boolean;
29+ FProxyPort: integer;
30+ FUserName: string;
31+ FPassword: string;
32+ FProxyAddress: string;
33+ FClientUA: string;
34+ function GetMDMD : string;
35+ function GetDMDM : string;
36+ function GetErrorCode: integer;
37+ function GetErrorMsg: string;
38+ procedure MakeError(Session: TBelibSession; Error: DWORD);
39+ procedure BELIB_LOGIN(Proxy: string; Port: Integer; ID: string; Pass: string);
40+ public
41+ constructor Create;
42+ destructor Destroy; override;
43+ function Connect: boolean;
44+ function Disconnect: boolean;
45+ property ProxyAddress: string read FProxyAddress write FProxyAddress;
46+ property ProxyPort: integer read FProxyPort write FProxyPort;
47+ property UserName: string read FUserName write FUserName;
48+ property Password: string read FPassword write FPassword;
49+ property ClientUA: string read FClientUA write FClientUA;
50+ property Connected: boolean read FConnected;
51+ property MDMD: string read GetMDMD;
52+ property DMDM: string read GetDMDM;
53+ property ErrorCode: integer read GetErrorCode;
54+ property ErrorMsg: string read GetErrorMsg;
55+ end;
56+
57+implementation
58+const
59+ BELIB_LOGIN_UA = 'BELIB/1.00';
60+ BELIB_LOGIN_HOST = 'be.2ch.net';
61+ BELIB_LOGIN_URL = '/test/login.php';
62+ BELIB_2CH_UA = 'X-2ch-UA:';
63+ BELIB_ENOMEM_STRING = 'ƒƒ‚ƒŠ‚ª‘«‚è‚Ü‚¹‚ñB';
64+ BELIB_LOGIN_ERROR = 'ERROR:';
65+// http:///@
66+
67+{ TBelib }
68+
69+constructor TBelib.Create;
70+begin
71+ FSession := nil;
72+ FConnected := False;
73+end;
74+
75+destructor TBelib.Destroy;
76+begin
77+ if Connected then
78+ Disconnect;
79+ inherited;
80+end;
81+
82+function TBelib.Connect: boolean;
83+begin
84+ Result := False;
85+ if not Connected then begin
86+ BELIB_LOGIN(FProxyAddress, FProxyPort, FUserName, FPassword);
87+ FConnected := True;
88+ if (Length(MDMD)=0) and (Length(DMDM)=0) then begin
89+ Disconnect;
90+ Result := False;
91+ end else if ErrorCode <> 0 then begin
92+ Disconnect;
93+ Result := False;
94+ end else begin
95+ Result := True;
96+// Result := (ErrorCode = 0);
97+ end;
98+ end;
99+end;
100+
101+function TBelib.Disconnect: boolean;
102+begin
103+ Result := True;
104+ if FSession <> nil then
105+ FreeAndNil(FSession);
106+ FConnected := False;
107+end;
108+
109+function TBelib.GetMDMD : string;
110+begin
111+ if Connected then
112+ Result := FSession.FMDMD
113+ else
114+ Result := '';
115+end;
116+
117+function TBelib.GetDMDM : string;
118+begin
119+ if Connected then
120+ Result := FSession.FDMDM
121+ else
122+ Result := '';
123+end;
124+
125+
126+function TBelib.GetErrorMsg: string;
127+begin
128+ if Connected then
129+ Result := FSession.FErrorString
130+ else
131+ Result := 'Error: ƒ[ƒ‹ƒAƒhƒŒƒX‚©ƒpƒXƒ[ƒh‚ª³‚µ‚­‚ ‚è‚Ü‚¹‚ñB';
132+end;
133+
134+function TBelib.GetErrorCode: integer;
135+begin
136+ if Connected then
137+ Result := FSession.ErrorCode
138+ else
139+ Result := 0;
140+end;
141+
142+procedure TBelib.MakeError(Session: TBelibSession; Error: DWORD);
143+var
144+ Buf: array[0..4096] of Char;
145+begin
146+ Session.ErrorCode := Error;
147+ if Error = ERROR_NOT_ENOUGH_MEMORY then
148+ Session.ErrorString := BELIB_ENOMEM_STRING
149+ else begin
150+ FillChar(Buf, SizeOf(Buf), #0);
151+ FormatMessage({FORMAT_MESSAGE_ALLOCATE_BUFFER or}
152+ FORMAT_MESSAGE_IGNORE_INSERTS or
153+ FORMAT_MESSAGE_FROM_SYSTEM or
154+ FORMAT_MESSAGE_FROM_HMODULE,
155+ Pointer(GetModuleHandle('wininet')), Error,
156+ (((Word(SUBLANG_DEFAULT)) shl 10) or Word(LANG_NEUTRAL)), //Delphi‚ÉMAKELANGIDƒ}ƒNƒ‚ª–³‚©‚Á‚½‚́B(L¥ƒÖ¥`)¼®ÎÞ°Ý
157+// MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
158+ Buf, SizeOf(Buf), nil);
159+ Session.ErrorString := Buf;
160+ end;
161+end;
162+
163+{DOLIB‚ðŽQl‚É‚µ‚Ä‚Ü‚·
164+}
165+procedure TBelib.BELIB_LOGIN(Proxy: string; Port: Integer; ID: string; Pass: string);
166+var
167+ hSession: HINTERNET;
168+ hConnect: HINTERNET;
169+ hRequest: HINTERNET;
170+ ProxyHostPort: string;
171+ Buf: array[0..4096] of Char;
172+ UserInfo: string;
173+ UserAgent: string;
174+ Header: string;
175+ cb: DWORD;
176+ Delim: Integer;
177+ body: string;
178+begin
179+ FSession := TBelibSession.Create;
180+
181+ if Proxy <> '' then begin
182+ ProxyHostPort := Format('%s:%d', [Proxy, Port]);
183+ hSession := InternetOpen(BELIB_LOGIN_UA, INTERNET_OPEN_TYPE_PROXY, PChar(ProxyHostPort), '', 0);
184+ end else begin
185+ hSession := InternetOpen(BELIB_LOGIN_UA, INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
186+ end;
187+
188+ if not Assigned(hSession) then
189+ MakeError(FSession, GetLastError())
190+ else begin
191+ hConnect := InternetConnect(hSession, BELIB_LOGIN_HOST,
192+ INTERNET_DEFAULT_HTTP_PORT, nil, nil,
193+ INTERNET_SERVICE_HTTP, 0, 0);
194+ if not Assigned(hConnect) then
195+ MakeError(FSession, GetLastError())
196+ else begin
197+ hRequest := HttpOpenRequest(hConnect, 'POST', BELIB_LOGIN_URL,
198+ nil, nil, nil,
199+ INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_NO_COOKIES or
200+ INTERNET_FLAG_NO_UI, 0);
201+ if not Assigned(hRequest) then
202+ MakeError(FSession, GetLastError())
203+ else begin
204+ UserInfo := Format('m=%s&p=%s&submit=%s', [HttpEncode(ID), HttpEncode(Pass), HttpEncode(SJIStoEUC('“o˜^'))]);
205+ Header := 'Content-Type: application/x-www-form-urlencoded'#13#10;
206+ UserAgent := Format('%s %s', [BELIB_2CH_UA, ClientUA]) + #13#10;
207+ Header := Header + UserAgent;
208+ if not HttpSendRequest(hRequest, PChar(Header), DWORD(-1), PChar(UserInfo), Length(UserInfo)) then
209+ MakeError(FSession, GetLastError())
210+ else begin
211+ if not InternetReadFile(hRequest, @Buf, SizeOf(Buf), cb) then
212+ MakeError(FSession, GetLastError())
213+ else if (Pos('cookie', Buf) = 0) or (Pos('"DMDM=', Buf) = 0)
214+ or (Pos('"MDMD=', Buf) = 0) then
215+ MakeError(FSession, ERROR_INVALID_DATA)
216+ else begin
217+ body := Buf;
218+ FSession.FDMDM := Copy(body, Pos('"DMDM=', body) + 6, Length(body));
219+ FSession.FDMDM := Copy(FSession.FDMDM, 1, Pos(';', FSession.FDMDM) - 1);
220+ FSession.FMDMD := Copy(body, Pos('"MDMD=', body) + 6, Length(body));
221+ FSession.FMDMD := Copy(FSession.FMDMD, 1, Pos(';', FSession.FMDMD) - 1);
222+ end;
223+ end;
224+ InternetCloseHandle(hRequest);
225+ end;
226+ InternetCloseHandle(hConnect);
227+ end;
228+ InternetCloseHandle(hSession);
229+ end;
230+end;
231+end.
232+
--- a/Editor.pas
+++ b/Editor.pas
@@ -298,7 +298,8 @@ implementation
298298
299299 uses
300300 Giko, ItemDownload, MojuUtils, IdGlobal, GikoMessage, Imm,
301- InputAssistDataModule, InputAssist, HTMLCreate, IdCookie;
301+ InputAssistDataModule, InputAssist, HTMLCreate, IdCookie, GikoDataModule,
302+ Belib;
302303 const
303304 CAPTION_NAME_NEW: string = 'ƒMƒRƒiƒr ƒXƒŒ—§‚ăGƒfƒBƒ^';
304305 CAPTION_NAME_RES: string = 'ƒMƒRƒiƒr ƒŒƒXƒGƒfƒBƒ^';
@@ -1888,18 +1889,13 @@ end;
18881889
18891890 procedure TEditorForm.BeLogInOutEActionExecute(Sender: TObject);
18901891 begin
1891- GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
1892+ GikoDM.BeLogInOutAction.Execute;
18921893 end;
18931894
18941895 procedure TEditorForm.BeLogInOutEActionUpdate(Sender: TObject);
18951896 begin
1896- if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
1897- if (GikoSys.Setting.BeLogin) then BeLogInOutEAction.Checked := true
1898- else BeLogInOutEAction.Checked := false;
1899- BeLogInOutEAction.Enabled := true
1900- end else
1901- BeLogInOutEAction.Enabled := false;
1902-
1897+ BeLogInOutEAction.Checked := GikoDM.BeLogInOutAction.Checked;
1898+ BeLogInOutEAction.Enabled := GikoDM.BeLogInOutAction.Enabled;
19031899 end;
19041900 // Cookie‚̎擾
19051901 procedure TEditorForm.GetCookie(CookieMng: TIdCookieManager; ABoard: TBoard);
@@ -1943,7 +1939,9 @@ begin
19431939 end;
19441940 for i := 0 to curCookies.Count - 1 do begin
19451941 if (curCookies.Strings[i] <> '') then begin
1946- ABoard.Cookie := ABoard.Cookie + curCookies.Strings[i] + '; ';
1942+ if (AnsiPos(VAL_HAP + '=', curCookies.Strings[i]) <> 1 ) then begin
1943+ ABoard.Cookie := ABoard.Cookie + curCookies.Strings[i] + '; ';
1944+ end;
19471945 end;
19481946 end;
19491947 finally
@@ -2458,7 +2456,6 @@ end;
24582456 }
24592457 function TEditorForm.getHeaderStr(const ACOOKIE: string; const SPID : string;
24602458 const PON : string; const HAP : string; Board : TBoard) : string;
2461-
24622459 begin
24632460 Result := ACOOKIE;
24642461 if SPID <> '' then
@@ -2475,9 +2472,9 @@ begin
24752472 // ƒzƒXƒg‚ª2ch‚̏ꍇCŒÅ’è‚̃NƒbƒL[‚ðH‚킹‚é
24762473 Result := Result + GikoSys.Setting.FixedCookie + '; ';
24772474 end;
2478- if (GikoSys.Setting.BeLogin) then begin
2479- Result := Result + 'MDMD=' + GikoSys.Setting.BeCode + '; '
2480- + 'DMDM=' + GikoSys.Setting.BeUserID + '; ';
2475+ if (GikoSys.Belib.Connected) then begin
2476+ Result := Result + 'MDMD=' + GikoSys.Belib.MDMD + '; '
2477+ + 'DMDM=' + GikoSys.Belib.DMDM + '; ';
24812478 end;
24822479 end;
24832480
@@ -2487,6 +2484,7 @@ begin
24872484 Result := Result + #13#10'Cookie: HAP=' + HAP + '; ';
24882485
24892486 end;
2487+
24902488 {
24912489 \brief fusianaŒxƒ_ƒCƒAƒƒO
24922490 \return IDYES ‘‚«ž‚Þ IDNO ’†Ž~
--- a/Giko.pas
+++ b/Giko.pas
@@ -1335,7 +1335,8 @@ begin
13351335 if GikoSys.Setting.AutoLogin then
13361336 GikoDM.LoginAction.Execute;
13371337
1338- GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
1338+ if GikoSys.Setting.BeAutoLogin then
1339+ GikoDM.BeLogInOutAction.Execute;
13391340
13401341 //ƒLƒƒƒvƒVƒ‡ƒ“‚ªã‘‚«‚³‚ê‚Ä‚µ‚Ü‚¤‚̂ŁA‚±‚±‚ōĐݒè
13411342 FavoriteAddToolButton.Caption := '’ljÁ...';
--- a/GikoDataModule.dfm
+++ b/GikoDataModule.dfm
@@ -1199,11 +1199,11 @@ object GikoDM: TGikoDM
11991199 end
12001200 object BeLogInOutAction: TAction
12011201 Category = #12501#12449#12452#12523
1202+ AutoCheck = True
12021203 Caption = 'Be2ch'#12395#12525#12464#12452#12531'/'#12525#12464#12450#12454#12488#12377#12427
12031204 Hint = 'Be2ch'#12395#12525#12464#12452#12531'/'#12525#12464#12450#12454#12488#12377#12427
12041205 ImageIndex = 53
12051206 OnExecute = BeLogInOutActionExecute
1206- OnUpdate = BeLogInOutActionUpdate
12071207 end
12081208 object UnSelectedListViewAction: TAction
12091209 Category = #34920#31034
--- a/GikoDataModule.pas
+++ b/GikoDataModule.pas
@@ -334,7 +334,6 @@ type
334334 procedure TabsSaveActionExecute(Sender: TObject);
335335 procedure TabsOpenActionExecute(Sender: TObject);
336336 procedure BeLogInOutActionExecute(Sender: TObject);
337- procedure BeLogInOutActionUpdate(Sender: TObject);
338337 procedure KokomadeActionExecute(Sender: TObject);
339338 procedure ZenbuActionExecute(Sender: TObject);
340339 procedure KokoResActionExecute(Sender: TObject);
@@ -2341,20 +2340,41 @@ end;
23412340 //! Be2ch‚ɃƒOƒCƒ“/ƒƒOƒAƒEƒg‚·‚é
23422341 // *************************************************************************
23432342 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2343+var
2344+ TmpCursor: TCursor;
2345+ msg : String;
23442346 begin
2345- GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2346-end;
2347-// *************************************************************************
2348-//! Be2ch‚ɃƒOƒCƒ“/ƒƒOƒAƒEƒg‚·‚é‚ÌUpdateƒCƒxƒ“ƒg
2349-// *************************************************************************
2350-procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2351-begin
2352- if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2353- if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2354- else BeLogInOutAction.Checked := false;
2355- BeLogInOutAction.Enabled := true
2356- end else
2357- BeLogInOutAction.Enabled := false;
2347+ if GikoSys.Belib.Connected then begin
2348+ //ƒƒOƒAƒEƒg
2349+ GikoSys.Belib.Disconnect;
2350+ BeLogInOutAction.Checked := False;
2351+ GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmBeLogout), nil, gmiOK);
2352+ end else begin
2353+ TmpCursor := GikoForm.ScreenCursor;
2354+ GikoForm.ScreenCursor := crHourGlass;
2355+ try
2356+ GikoSys.Belib.ClientUA := 'gikoNavi/1.00';
2357+ GikoSys.Belib.UserName := GikoSys.Setting.BeUserID;
2358+ GikoSys.Belib.Password := GikoSys.Setting.BePassword;
2359+ if GikoSys.Setting.ReadProxy then begin
2360+ GikoSys.Belib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
2361+ GikoSys.Belib.ProxyPort := GikoSys.Setting.ReadProxyPort;
2362+ end else begin
2363+ GikoSys.Belib.ProxyAddress := '';
2364+ GikoSys.Belib.ProxyPort := 0;
2365+ end;
2366+ if GikoSys.Belib.Connect then begin
2367+ GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmBeLogin) + GikoSys.Setting.BeUserID, nil, gmiOK);
2368+ BeLogInOutAction.Checked := True;
2369+ end else begin
2370+ GikoForm.AddMessageList(GikoSys.Belib.ErrorMsg, nil, gmiNG);
2371+ GikoForm.PlaySound('Error');
2372+ BeLogInOutAction.Checked := False;
2373+ end;
2374+ finally
2375+ GikoForm.ScreenCursor := TmpCursor;
2376+ end;
2377+ end;
23582378 end;
23592379 ////////////////////////////////ƒtƒ@ƒCƒ‹‚Ü‚Å‚¨‚µ‚Ü‚¢/////////////////////
23602380 // *************************************************************************
--- a/GikoMessage.pas
+++ b/GikoMessage.pas
@@ -9,7 +9,7 @@ type
99 //! MessageList
1010 TGikoMessageListType = (gmLogout, gmLogin, gmForceLogin, gmSureItiran,
1111 gmUnKnown, gmSureSyutoku, gmSureDiff, gmNotMod, gmAbort, gmError,
12- gmNewRes, gmNewSure, gmResError, gmSureError);
12+ gmNewRes, gmNewSure, gmResError, gmSureError, gmBeLogout, gmBeLogin);
1313
1414 TGikoMessage = class(THashedStringList)
1515 private
@@ -21,7 +21,7 @@ type
2121 implementation
2222
2323 const
24- DEF_MESSAGES : array[0..13] of string = ( 'ƒƒOƒAƒEƒg‚µ‚Ü‚µ‚½',
24+ DEF_MESSAGES : array[0..15] of string = ( 'ƒƒOƒAƒEƒg‚µ‚Ü‚µ‚½',
2525 'ƒƒOƒCƒ“‚µ‚Ü‚µ‚½ - ',
2626 '‹­§ƒƒOƒCƒ“‚µ‚Ü‚µ‚½ - ',
2727 '[ƒXƒŒˆê——Žæ“¾Š®—¹]',
@@ -34,15 +34,18 @@ const
3434 '[ƒŒƒX‘—MI—¹]',
3535 '[VƒXƒŒ‘—MI—¹]',
3636 '[ƒŒƒX‘—MŽ¸”s]',
37- '[VƒXƒŒ‘—MŽ¸”s]');
37+ '[VƒXƒŒ‘—MŽ¸”s]',
38+ 'BEƒƒOƒAƒEƒg‚µ‚Ü‚µ‚½',
39+ 'BEƒƒOƒCƒ“‚µ‚Ü‚µ‚½ - ');
3840
39- MESSAGE_KEYS : array[0..13] of String = ( 'Logout', 'Login',
41+ MESSAGE_KEYS : array[0..15] of String = ( 'Logout', 'Login',
4042 'ForceLogin', 'SureItiran',
4143 'UnKnown', 'SureSyutoku',
4244 'SureDiff', 'NotMod',
4345 'Abort', 'Error',
4446 'NewRes', 'NewSure',
45- 'ResError', 'SureError');
47+ 'ResError', 'SureError',
48+ 'BELogout', 'BELogin');
4649
4750 constructor TGikoMessage.Create;
4851 begin
@@ -54,7 +57,7 @@ end;
5457 function TGikoMessage.GetMessage(MesType: TGikoMessageListType): String;
5558 begin
5659 Result := '';
57- if MesType in [gmLogout..gmSureError] then begin
60+ if MesType in [gmLogout..gmBeLogin] then begin
5861 //Key‚ÅŒŸõ‚µ‚ÄŒ©‚‚©‚ê‚΂»‚ê‚ð•Ô‚·
5962 Result := Self.Values[MESSAGE_KEYS[Ord(MesType)]];
6063 if Result = '' then begin
--- a/GikoSystem.pas
+++ b/GikoSystem.pas
@@ -15,7 +15,7 @@ uses
1515 {HttpApp,} URLMon, IdGlobal, IdURI, {Masks,}
1616 Setting, BoardGroup, gzip, Dolib, bmRegExp, AbonUnit,
1717 ExternalBoardManager, ExternalBoardPlugInMain,
18- GikoBayesian, GikoMessage;
18+ GikoBayesian, GikoMessage, Belib;
1919
2020 type
2121 TVerResourceKey = (
@@ -112,6 +112,7 @@ type
112112 FBayesian : TGikoBayesian; //!< ƒxƒCƒWƒAƒ“ƒtƒBƒ‹ƒ^
113113 FVersion : String; //!< ƒtƒ@ƒCƒ‹ƒo[ƒWƒ‡ƒ“
114114 FGikoMessage: TGikoMessage;
115+ FBelib: TBelib;
115116 //! ‚ ‚éƒZƒpƒŒ[ƒ^‚Å‹æØ‚ç‚ꂽ•¶Žš—ñ‚©‚ç‚Ž”Ô–Ú‚Ì•¶Žš—ñ‚ðŽæ‚èo‚·
116117 function ChooseString(const Text, Separator: string; Index: integer): string;
117118 //! ˆêŽžƒtƒ@ƒCƒ‹‚©‚ç‚Ì•œ‹Œ
@@ -165,6 +166,7 @@ type
165166 function DivideSubject(Line: string): TSubjectRec;
166167 property Setting: TSetting read FSetting write FSetting;
167168 property Dolib: TDolib read FDolib write FDolib;
169+ property Belib: TBelib read FBelib write FBelib;
168170
169171 function UrlToID(url: string): string;
170172 function UrlToServer(url: string): string;
@@ -317,6 +319,7 @@ begin
317319 Inherited;
318320 FSetting := TSetting.Create;
319321 FDolib := TDolib.Create;
322+ FBelib := TBelib.Create;
320323 FAWKStr := TAWKStr.Create(nil);
321324 if DirectoryExists(GetConfigDir) = false then begin
322325 CreateDir(GetConfigDir);
@@ -370,6 +373,7 @@ begin
370373 FreeAndNil(FSelectResFilter);
371374 FreeAndNil(FAbon);
372375 FreeAndNil(FAWKStr);
376+ FreeAndNil(FBelib);
373377 FreeAndNil(FDolib);
374378 FreeAndNil(FSetting);
375379 inherited;
--- a/Option.dfm
+++ b/Option.dfm
@@ -253,7 +253,7 @@ object OptionDialog: TOptionDialog
253253 Top = 43
254254 Width = 417
255255 Height = 20
256- ItemHeight = 0
256+ ItemHeight = 12
257257 TabOrder = 0
258258 Text = 'BoardURLComboBox'
259259 end
@@ -1647,28 +1647,30 @@ object OptionDialog: TOptionDialog
16471647 object Label7: TLabel
16481648 Left = 8
16491649 Top = 24
1650- Width = 73
1650+ Width = 90
16511651 Height = 12
1652- Caption = #12513#12540#12523#12450#12489#12524#12473
1652+ Caption = #12513#12540#12523#12450#12489#12524#12473'(&M)'
1653+ FocusControl = BeUserIDEdit
16531654 end
16541655 object Label8: TLabel
16551656 Left = 18
16561657 Top = 48
1657- Width = 54
1658+ Width = 71
16581659 Height = 12
1659- Caption = #35469#35388#12467#12540#12489
1660+ Caption = #12497#12473#12527#12540#12489'(&W)'
1661+ FocusControl = BeCodeEdit
16601662 end
16611663 object BeUserIDEdit: TEdit
1662- Left = 88
1664+ Left = 104
16631665 Top = 20
1664- Width = 369
1666+ Width = 353
16651667 Height = 20
16661668 TabOrder = 0
16671669 end
16681670 object BeCodeEdit: TEdit
1669- Left = 88
1671+ Left = 104
16701672 Top = 45
1671- Width = 369
1673+ Width = 353
16721674 Height = 20
16731675 PasswordChar = '*'
16741676 TabOrder = 1
@@ -1678,7 +1680,7 @@ object OptionDialog: TOptionDialog
16781680 Top = 71
16791681 Width = 193
16801682 Height = 17
1681- Caption = #36215#21205#26178#12395#33258#21205#12525#12464#12452#12531#12377#12427'(&S)'
1683+ Caption = #36215#21205#26178#12395#33258#21205#12525#12464#12452#12531#12377#12427'(&T)'
16821684 TabOrder = 2
16831685 end
16841686 end
--- a/Option.pas
+++ b/Option.pas
@@ -886,7 +886,7 @@ begin
886886
887887 //Be2ch”FØ
888888 BeUserIDEdit.Text := GikoSys.Setting.BeUserID;
889- BeCodeEdit.Text := GikoSys.Setting.BeCode;
889+ BeCodeEdit.Text := GikoSys.Setting.BePassword;
890890 BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin;
891891 //—š—ð‚̍őå•Û‘¶”
892892 MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount);
@@ -1189,7 +1189,7 @@ begin
11891189 GikoSys.Setting.UseUndecided := UseUndecidedCheckBox.Checked;
11901190 //Be2ch
11911191 GikoSys.Setting.BeUserID := BeUserIDEdit.Text;
1192- GikoSys.Setting.BeCode := BeCodeEdit.Text;
1192+ GikoSys.Setting.BePassword := BeCodeEdit.Text;
11931193 GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked;
11941194 //—š—ð‚̍őå•Û‘¶”
11951195 GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1);
--- a/Setting.pas
+++ b/Setting.pas
@@ -414,7 +414,7 @@ type
414414 //Be2ch
415415 //”FØ—pƒ†[ƒUIDEƒpƒXƒ[ƒh
416416 FBeUserID: String;
417- FBeCode: String;
417+ FBePassword: String;
418418 FBeAutoLogin: Boolean;
419419 FBeLogin: Boolean;
420420 //—š—ð‚̍őå•Û‘¶Œ”
@@ -799,7 +799,7 @@ type
799799 property UseUndecided: Boolean read FUseUndecided write FUseUndecided;
800800
801801 property BeUserID: string read FBeUserID write FBeUserID;
802- property BeCode: string read FBeCode write FBeCode;
802+ property BePassword: string read FBePassword write FBePassword;
803803 property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;
804804 property BeLogin: Boolean read FBeLogin write FBeLogin;
805805 property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
@@ -1315,7 +1315,7 @@ begin
13151315 //Be2ch
13161316 //”FØ—pƒ†[ƒUIDE”FØƒR[ƒh
13171317 FBeUserID := ini.ReadString('Be', 'UserID', '');
1318- FBeCode := Decrypt(ini.ReadString('Be', 'Code', ''));
1318+ FBePassword := Decrypt(ini.ReadString('Be', 'Password', ''));
13191319 FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);
13201320 //—š—ð‚̍őå•Û‘¶Œ”
13211321 FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
@@ -1740,7 +1740,7 @@ begin
17401740
17411741 //”FØ—pƒ†[ƒUIDEƒpƒXƒ[ƒh
17421742 ini.WriteString('Be', 'UserID', FBeUserID);
1743- ini.WriteString('Be', 'Code', Encrypt(FBeCode));
1743+ ini.WriteString('Be', 'Password', Encrypt(FBePassword));
17441744 ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);
17451745
17461746 //—š—ð‚̍őå•Û‘¶Œ”
--- a/gikoNavi.dpr
+++ b/gikoNavi.dpr
@@ -83,7 +83,8 @@ uses
8383 UpdateCheck in 'UpdateCheck.pas' {UpdateCheckForm},
8484 SHA1Unit in 'SHA1Unit.pas',
8585 PopupMenuUtil in 'PopupMenuUtil.pas',
86- PopupMenuSetting in 'PopupMenuSetting.pas' {PopupMenuSettingDialog};
86+ PopupMenuSetting in 'PopupMenuSetting.pas' {PopupMenuSettingDialog},
87+ Belib in 'Belib.pas';
8788
8889 {$R *.RES}
8990 {$R gikoResource.res}
Binary files a/gikoNavi.res and b/gikoNavi.res differ