OSDN Git Service

845f43b216a048560306646cce9212b61cf88275
[gikonavigoeson/gikonavi.git] / KuroutSetting.pas
1 unit KuroutSetting;
2
3 interface
4
5 uses
6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7   Dialogs, StdCtrls, ComCtrls, GikoSystem, GikoUtil, ExtCtrls, StrUtils;
8
9 type
10   TKuroutOption = class(TForm)
11         PageControl1: TPageControl;
12         TabSheet1: TTabSheet;
13         GroupBox11: TGroupBox;
14         Label17: TLabel;
15         Label18: TLabel;
16         RecvBufferSize: TEdit;
17         ProxyProtocolCheckBox: TCheckBox;
18         ProtocolCheckBox: TCheckBox;
19         GroupBox13: TGroupBox;
20         Label24: TLabel;
21         Label25: TLabel;
22         PostTimeLabel: TLabel;
23         Label27: TLabel;
24         PostTimeCheckBox: TCheckBox;
25         PostTimeEdit: TEdit;
26         PutPostTimeRadioButton: TRadioButton;
27         BackPostTimeRadioButton: TRadioButton;
28         OkBotton: TButton;
29         CancelBotton: TButton;
30         ApplyButton: TButton;
31         ColumnTabSheet: TTabSheet;
32         CategoryColumnGroupBox: TGroupBox;
33         CUnVisibledListBox: TListBox;
34         CVisibledListBox: TListBox;
35         CAddButton: TButton;
36         CDeleteButton: TButton;
37         BoardColumnGroupBox: TGroupBox;
38         BUnVisibledListBox: TListBox;
39         BVisibledListBox: TListBox;
40         BAddButton: TButton;
41         BDeleteButton: TButton;
42         Label1: TLabel;
43         Label2: TLabel;
44         Label3: TLabel;
45         Label4: TLabel;
46         CUpButton: TButton;
47         CDownButton: TButton;
48         BUpButton: TButton;
49         BDownButton: TButton;
50     GroupBox1: TGroupBox;
51     GengoSupport: TCheckBox;
52     Label5: TLabel;
53     Label6: TLabel;
54     ReadTimeOut: TEdit;
55     Label7: TLabel;
56     KakikomiTabSheet: TTabSheet;
57     CookieGroupBox: TGroupBox;
58     Label8: TLabel;
59     FixedCookieEdit: TEdit;
60     Label9: TLabel;
61     GroupBox3: TGroupBox;
62     Label10: TLabel;
63     MoveHistoryMaxEdit: TEdit;
64     Label11: TLabel;
65     AHandredGroupBox: TGroupBox;
66     AHandredLabeledEdit: TLabeledEdit;
67     AHandredUpDown: TUpDown;
68     ThreadGroupBox: TGroupBox;
69     AddKeywordCheckBox: TCheckBox;
70     TabSheet2: TTabSheet;
71     SecurityGroupBox: TGroupBox;
72     GroupBox2: TGroupBox;
73     LocalTrapAtt: TCheckBox;
74     RemoteTrapAtt: TCheckBox;
75     ReplaceDatCheckBox: TCheckBox;
76     Label12: TLabel;
77     GroupBox4: TGroupBox;
78     SentIniFileSizeEdit: TEdit;
79     SentIniFileSizeUpDown: TUpDown;
80     Label13: TLabel;
81     Label14: TLabel;
82     ExtListLabeledEdit: TLabeledEdit;
83     Label15: TLabel;
84     LogGroupBox: TGroupBox;
85     CheckDatFileCheckBox: TCheckBox;
86         procedure OkBottonClick(Sender: TObject);
87         procedure FormCreate(Sender: TObject);
88         procedure CDeleteButtonClick(Sender: TObject);
89         procedure CAddButtonClick(Sender: TObject);
90         procedure BAddButtonClick(Sender: TObject);
91         procedure BDeleteButtonClick(Sender: TObject);
92     procedure CUpButtonClick(Sender: TObject);
93     procedure CDownButtonClick(Sender: TObject);
94     procedure BUpButtonClick(Sender: TObject);
95     procedure BDownButtonClick(Sender: TObject);
96     procedure MoveHistoryMaxEditExit(Sender: TObject);
97     procedure AHandredLabeledEditExit(Sender: TObject);
98     procedure ExtListLabeledEditExit(Sender: TObject);
99   private
100         { Private \90é\8c¾ }
101         procedure SetValue;
102         procedure SaveSetting;
103         procedure RecvBufferSizeExit(Sender: TObject);
104         procedure PostTimeEditExit(Sender: TObject);
105         procedure PostTimeCheckBoxClick(Sender: TObject);
106         procedure SetColumnData();
107         procedure PostColumnData();
108   public
109         { Public \90é\8c¾ }
110   end;
111
112 var
113   KuroutOption: TKuroutOption;
114
115 implementation
116
117 uses
118         Giko, Setting;
119
120 {$R *.dfm}
121
122 procedure TKuroutOption.SetValue;
123 begin
124         //\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
125         RecvBufferSize.Text := IntToStr(Gikosys.Setting.RecvBufferSize);
126         //HTTP1.1\8eg\97p
127         ProtocolCheckBox.Checked := GikoSys.Setting.Protocol;
128         //\83v\83\8d\83L\83V\90Ú\91±HTTP1.1\8eg\97p
129         ProxyProtocolCheckBox.Checked := Gikosys.Setting.ProxyProtocol;
130         ReadTimeOut.Text := IntToStr(GikoSys.Setting.ReadTimeOut);
131
132                 //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
133         PostTimeCheckBox.Checked := GikoSys.Setting.UseMachineTime;
134         PostTimeEdit.Text := IntToStr(GikoSys.Setting.TimeAdjustSec);
135         if GikoSys.Setting.TimeAdjust then
136                 PutPostTimeRadioButton.Checked := True
137         else
138                 BackPostTimeRadioButton.Checked := True;
139
140         SetColumnData();
141
142         PageControl1.ActivePageIndex := GikoSys.Setting.KuroutSettingTabIndex;
143
144         //2chAnnai
145         GengoSupport.Checked := GikoSys.Setting.GengoSupport;
146         //FusianaSet
147         LocalTrapAtt.Checked := GikoSys.Setting.LocalTrapAtt;
148         RemoteTrapAtt.Checked := GikoSys.Setting.RemoteTrapAtt;
149         // Cookie
150     FixedCookieEdit.Text := GikoSys.Setting.FixedCookie;
151     // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð
152     MoveHistoryMaxEdit.Text := IntToStr( GikoSys.Setting.MoveHistorySize );
153     //\81@\90æ\93ª\95\\8e¦\83\8c\83X\90\94
154     AHandredUpDown.Position := GikoSys.Setting.HeadResCount;
155     // \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
156     AddKeywordCheckBox.Checked := GikoSys.Setting.AddKeywordLink;
157     // \8cë\94½\89\9e\91Î\8dô
158     ReplaceDatCheckBox.Checked := GikoSys.Setting.ReplaceDat;
159     SentIniFileSizeUpDown.Position := GikoSys.Setting.SentIniFileSize;
160     ExtListLabeledEdit.Text := GikoSys.Setting.ExtList;
161     // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
162     CheckDatFileCheckBox.Checked := GikoSys.Setting.CheckDatFile;
163 end;
164
165 procedure TKuroutOption.SaveSetting;
166 begin
167         //\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
168         Gikosys.Setting.RecvBufferSize := StrToIntDef(RecvBufferSize.Text, Gikosys.Setting.RecvBufferSize);
169         GikoSys.Setting.ReadTimeOut := StrToIntDef(ReadTimeOut.Text, GikoSys.Setting.ReadTimeOut);
170         //HTTP1.1\8eg\97p
171         GikoSys.Setting.Protocol := ProtocolCheckBox.Checked;
172         //\83v\83\8d\83L\83V\90Ú\91±HTTP1.1\8eg\97p
173         Gikosys.Setting.ProxyProtocol := ProxyProtocolCheckBox.Checked;
174         //\8f\91\82«\8d\9e\82Ý\8e\9e\83}\83V\83\93\8e\9e\8aÔ\8eg\97p\90Ý\92è
175         GikoSys.Setting.UseMachineTime := PostTimeCheckBox.Checked;
176         if GikoSys.IsNumeric(PostTimeEdit.Text) then
177                 GikoSys.Setting.TimeAdjustSec := StrToIntDef(PostTimeEdit.Text, GikoSys.Setting.TimeAdjustSec)
178         else
179                 GikoSys.Setting.TimeAdjustSec := 0;
180         GikoSys.Setting.TimeAdjust := PutPostTimeRadioButton.Checked;
181         //2ch\8c¾\8cê\83T\83|\81[\83g
182         GikoSys.Setting.GengoSupport := GengoSupport.Checked;
183         GikoSys.SetGikoMessage;
184         //\83\8d\81[\83J\83\8b\81E\83\8a\83\82\81[\83g̼±Å\8cx\8d\90
185         GikoSys.Setting.LocalTrapAtt := LocalTrapAtt.Checked;
186         GikoSys.Setting.RemoteTrapAtt := RemoteTrapAtt.Checked;
187         // Cookie
188         GikoSys.Setting.FixedCookie := FixedCookieEdit.Text;
189
190     // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð
191     GikoSys.Setting.MoveHistorySize :=
192         StrToIntDef( MoveHistoryMaxEdit.Text, 20 );
193
194     //\81@\90æ\93ª\95\\8e¦\83\8c\83X\90\94
195     GikoSys.Setting.HeadResCount :=
196         StrToIntDef( AHandredLabeledEdit.Text , 1);
197
198         GikoSys.Setting.KuroutSettingTabIndex := PageControl1.ActivePageIndex;
199     // \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
200     GikoSys.Setting.AddKeywordLink := AddKeywordCheckBox.Checked;
201     // \8cë\94½\89\9e\91Î\8dô
202     GikoSys.Setting.ReplaceDat := ReplaceDatCheckBox.Checked;
203     GikoSys.Setting.SentIniFileSize := SentIniFileSizeUpDown.Position;
204     GikoSys.Setting.ExtList := ExtListLabeledEdit.Text;
205     // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
206     GikoSys.Setting.CheckDatFile := CheckDatFileCheckBox.Checked;
207 end;
208
209 procedure TKuroutOption.RecvBufferSizeExit(Sender: TObject);
210 begin
211         if not GikoSys.IsNumeric(RecvBufferSize.Text) then
212                 RecvBufferSize.Text := '4096';
213         if StrToInt(RecvBufferSize.Text) < 256 then
214                 RecvBufferSize.Text := '4096';
215 end;
216
217 procedure TKuroutOption.PostTimeEditExit(Sender: TObject);
218 begin
219         if not GikoSys.IsNumeric(PostTimeEdit.Text) then
220                 PostTimeEdit.Text := '0';
221 end;
222
223 procedure TKuroutOption.PostTimeCheckBoxClick(Sender: TObject);
224 begin
225         PostTimeLabel.Enabled := PostTimeCheckBox.Checked;
226         PostTimeEdit.Enabled := PostTimeCheckBox.Checked;
227         PutPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
228         BackPostTimeRadioButton.Enabled := PostTimeCheckBox.Checked;
229 end;
230
231 procedure TKuroutOption.OkBottonClick(Sender: TObject);
232 begin
233         RecvBufferSizeExit(Sender);
234         PostTimeEditExit(Sender);
235     MoveHistoryMaxEditExit(Sender);
236     AHandredLabeledEditExit(Sender);
237     ExtListLabeledEditExit(Sender);
238     PostColumnData();
239         SaveSetting;
240 end;
241
242 procedure TKuroutOption.FormCreate(Sender: TObject);
243 begin
244         SetValue;
245         PostTimeCheckBoxClick(Sender);
246
247 end;
248 procedure TKuroutOption.SetColumnData();
249 var
250         i, j : Integer;
251         flag : Boolean;
252 begin
253
254         //===== \94Â\83\8a\83X\83g =====
255         for i := 0 to GikoSys.Setting.CategoryColumnOrder.Count - 1 do begin
256                 for j := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
257                         if GikoSys.Setting.CategoryColumnOrder[ i ] = TGikoCategoryColumnID( j ) then begin
258                                 CVisibledListBox.AddItem(GikoCategoryColumnCaption[ j ], nil);
259                                 break;
260                         end;
261                 end;
262         end;
263
264         for i := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
265                 flag := false;
266                 for j := 0 to GikoSys.Setting.CategoryColumnOrder.Count - 1 do begin
267                         if GikoSys.Setting.CategoryColumnOrder[ j ] = TGikoCategoryColumnID( i ) then begin
268                                 flag := true;
269                                 break;
270                         end;
271                 end;
272                 if not flag then
273                         CUnVisibledListBox.AddItem(GikoCategoryColumnCaption[ i ], nil);
274         end;
275
276         //===== \83X\83\8c\83\8a\83X\83g =====
277         for i := 0 to GikoSys.Setting.BoardColumnOrder.Count - 1 do begin
278                 for j := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
279                         if GikoSys.Setting.BoardColumnOrder[ i ] = TGikoBoardColumnID( j ) then begin
280                                 BVisibledListBox.AddItem(GikoBoardColumnCaption[ j ], nil);
281                                 Break;
282                         end;
283                 end;
284         end;
285
286         for i := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
287                 flag := false;
288                 for j := GikoSys.Setting.BoardColumnOrder.Count - 1 downto 0 do begin
289                         if GikoSys.Setting.BoardColumnOrder[ j ] = TGikoBoardColumnID( i ) then begin
290                                 flag := true;
291                                 Break;
292                         end;
293                 end;
294                 if not flag then
295                         BUnVisibledListBox.AddItem(GikoBoardColumnCaption[ i ], nil);
296
297         end;
298 end;
299 procedure TKuroutOption.CDeleteButtonClick(Sender: TObject);
300 var
301         i: Integer;
302 begin
303         for i := 0 to CVisibledListBox.Count - 1 do begin
304                 if CVisibledListBox.Selected[i] then begin
305                         CUnVisibledListBox.AddItem(     CVisibledListBox.Items.Strings[ i ], nil);
306                         CVisibledListBox.DeleteSelected;
307                         break;
308                 end;
309         end;
310 end;
311
312 procedure TKuroutOption.CAddButtonClick(Sender: TObject);
313 var
314         i: Integer;
315 begin
316         for i := 0 to CUnVisibledListBox.Count - 1 do begin
317                 if CUnVisibledListBox.Selected[i] then begin
318                         CVisibledListBox.AddItem(       CUnVisibledListBox.Items.Strings[ i ], nil);
319                         CUnVisibledListBox.DeleteSelected;
320                         break;
321                 end;
322         end;
323 end;
324
325 procedure TKuroutOption.BAddButtonClick(Sender: TObject);
326 var
327         i: Integer;
328 begin
329         for i := 0 to BUnVisibledListBox.Count - 1 do begin
330                 if BUnVisibledListBox.Selected[i] then begin
331                         BVisibledListBox.AddItem(       BUnVisibledListBox.Items.Strings[ i ], nil);
332                         BUnVisibledListBox.DeleteSelected;
333                         break;
334                 end;
335         end;
336 end;
337
338 procedure TKuroutOption.BDeleteButtonClick(Sender: TObject);
339 var
340         i: Integer;
341 begin
342         for i := 0 to BVisibledListBox.Count - 1 do begin
343                 if BVisibledListBox.Selected[i] then begin
344                         BUnVisibledListBox.AddItem(     BVisibledListBox.Items.Strings[ i ], nil);
345                         BVisibledListBox.DeleteSelected;
346                         break;
347                 end;
348         end;
349 end;
350
351 procedure TKuroutOption.CUpButtonClick(Sender: TObject);
352 var
353         i: Integer;
354 begin
355         for i := 1 to CVisibledListBox.Count - 1 do begin
356                 if CVisibledListBox.Selected[i] then begin
357                         CVisibledListBox.Items.Exchange(i, i -1);
358                         break;
359                 end;
360         end;
361 end;
362
363 procedure TKuroutOption.CDownButtonClick(Sender: TObject);
364 var
365         i: Integer;
366 begin
367         for i := 0 to CVisibledListBox.Count - 2 do begin
368                 if CVisibledListBox.Selected[i] then begin
369                         CVisibledListBox.Items.Exchange(i, i + 1);
370                         break;
371                 end;
372         end;
373 end;
374
375 procedure TKuroutOption.BUpButtonClick(Sender: TObject);
376 var
377         i: Integer;
378 begin
379         for i := 1 to BVisibledListBox.Count - 1 do begin
380                 if BVisibledListBox.Selected[i] then begin
381                         BVisibledListBox.Items.Exchange(i, i -1);
382                         break;
383                 end;
384         end;
385 end;
386
387 procedure TKuroutOption.BDownButtonClick(Sender: TObject);
388 var
389         i: Integer;
390 begin
391         for i := 0 to BVisibledListBox.Count - 2 do begin
392                 if BVisibledListBox.Selected[i] then begin
393                         BVisibledListBox.Items.Exchange(i, i + 1);
394                         break;
395                 end;
396         end;
397 end;
398
399
400 procedure TKuroutOption.PostColumnData();
401 var
402         i, j : Integer;
403 begin
404         GikoForm.ActiveListColumnSave;
405
406         //===== \94Â\83\8a\83X\83g =====
407         for i := GikoSys.Setting.CategoryColumnOrder.Count -1 downto 1 do
408                 GikoSys.Setting.CategoryColumnOrder.Delete(i);
409
410         for i := 0 to CVisibledListBox.Count - 1 do begin
411                 for j := 1 to Length( GikoCategoryColumnCaption ) - 1 do begin
412                         if CVisibledListBox.Items.Strings[ i ] = GikoCategoryColumnCaption[ j ] then begin
413                                 GikoSys.Setting.CategoryColumnOrder.Add(  TGikoCategoryColumnID(j) );
414                                 break;
415                         end;
416                 end;
417         end;
418
419         //===== \83X\83\8c\83\8a\83X\83g =====
420         for i := GikoSys.Setting.BoardColumnOrder.Count - 1 downto 1 do
421                 GikoSys.Setting.BoardColumnOrder.Delete(i);
422
423         for i := 0 to BVisibledListBox.Count - 1 do begin
424                 for j := 1 to Length( GikoBoardColumnCaption ) - 1 do begin
425                         if BVisibledListBox.Items.Strings[ i ] = GikoBoardColumnCaption[ j ] then begin
426                                 GikoSys.Setting.BoardColumnOrder.Add( TGikoBoardColumnID(j) );
427                                 Break;
428                         end;
429                 end;
430         end;
431         //\83X\83\8c\88ê\97\97\82Ì\95`\89æ\82Ì\8dX\90V
432         GikoForm.SetActiveList(GikoForm.ActiveList);
433 end;
434 // \83\8a\83\93\83N\88Ú\93®\97\9a\97ð\82Ì\95Ò\8fW\8cã\82Ì\90Ý\92è\95\8e\9a\97ñ\83`\83F\83b\83N
435 procedure TKuroutOption.MoveHistoryMaxEditExit(Sender: TObject);
436 begin
437         if not GikoSys.IsNumeric(MoveHistoryMaxEdit.Text) then
438                 MoveHistoryMaxEdit.Text := '20';
439     if StrToInt(MoveHistoryMaxEdit.Text) < 1 then
440         MoveHistoryMaxEdit.Text := '1';
441 end;
442 // \90æ\93ª\95\\8e¦\83\8c\83X\90\94\82Ì\95Ò\8fW\8cã\82Ì\90Ý\92è\95\8e\9a\97ñ\83`\83F\83b\83N
443 procedure TKuroutOption.AHandredLabeledEditExit(Sender: TObject);
444 begin
445         if not GikoSys.IsNumeric(AHandredLabeledEdit.Text) then
446                 AHandredLabeledEdit.Text := '1';
447     if StrToInt(AHandredLabeledEdit.Text) < 1 then
448         AHandredLabeledEdit.Text := '1';
449
450 end;
451
452 procedure TKuroutOption.ExtListLabeledEditExit(Sender: TObject);
453 begin
454     if AnsiEndsStr(';', ExtListLabeledEdit.Text) then begin
455         ExtListLabeledEdit.Text :=
456             Copy(ExtListLabeledEdit.Text, 0,
457                 Length(ExtListLabeledEdit.Text) - 1); 
458     end;
459 end;
460
461 end.