Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.228 - (hide annotations) (download) (as text)
Wed Mar 31 08:57:08 2004 UTC (20 years ago) by h677
Branch: MAIN
Changes since 1.227: +2 -0 lines
File MIME type: text/x-pascal
ItemDownload関係のメモリリークの解消

1 hi_ 1.1 unit Giko;
2    
3     interface
4    
5     uses
6     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7 yoffy 1.117 OleCtrls, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem, DateUtils, Math,
8 hi_ 1.4 {$IF Defined(DELPRO) }
9 yoffy 1.138 SHDocVw,
10 hi_ 1.4 MSHTML,
11     {$ELSE}
12     SHDocVw_TLB,
13     MSHTML_TLB,
14     {$IFEND}
15 h677 1.183 IdHTTP, ActiveX, ActnList, ImgList,
16     ToolWin, Buttons, {Clipbrd,} {HTTPApp,} YofUtils, IdComponent,
17     ShellAPI, UrlMon, Tabs, IdGlobal, StrUtils,
18 h677 1.170 CommCtrl, IniFiles, Dialogs,
19 hi_ 1.1 GikoSystem, GikoUtil, Setting, BoardGroup, ThreadControl, ItemDownload,
20     Editor, RoundData, RoundName, KeySetting, GikoPanel, Favorite, FavoriteAdd,
21     FavoriteArrange, AddressHistory, Preview, HTMLDocumentEvent, Kotehan,
22 h677 1.35 HintWindow, GikoCoolBar, GikoListView, ToolBarSetting, ToolBarUtil,
23 h677 1.170 IndividualAbon, Search, ExternalBoardManager, ExternalBoardPlugInMain,
24 yoffy 1.135 StdActns, GikoXMLDoc;
25 hi_ 1.1
26     type
27 yoffy 1.138 TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
28 hi_ 1.1
29     TGikoForm = class(TForm)
30     StatusBar: TStatusBar;
31     MainPanel: TPanel;
32     ClientPanel: TPanel;
33     TreeSplitter: TSplitter;
34     CabinetPanel: TPanel;
35     TreeView: TTreeView;
36     ThreadMainPanel: TPanel;
37     ListSplitter: TSplitter;
38     ViewPanel: TPanel;
39 yoffy 1.51 ListView: TGikoListView;
40 hi_ 1.1 ThreadPanel: TPanel;
41     MessagePanel: TPanel;
42     MessageBar: TPanel;
43     MessageHideButton: TSpeedButton;
44     MessageListView: TListView;
45     MessageSplitter: TSplitter;
46     Panel3: TPanel;
47     SpeedButton1: TSpeedButton;
48     ToolBar1: TToolBar;
49     CabinetSelectToolButton: TToolButton;
50     HistoryToolBar: TToolBar;
51     ToolButton15: TToolButton;
52     ToolButton18: TToolButton;
53     ItemIcon16: TImageList;
54     ItemIcon32: TImageList;
55 yoffy 1.2 HotToobarImageList: TImageList;
56 yoffy 1.51 ToobarImageList: TImageList;
57 hi_ 1.1 ItemImageList: TImageList;
58 yoffy 1.2 ActionList: TActionList;
59 hi_ 1.1 LogDeleteAction: TAction;
60     KidokuAction: TAction;
61     StdToolBarVisibleAction: TAction;
62     SearchAction: TAction;
63 yoffy 1.51 GikoNaviWebPageAction: TAction;
64 hi_ 1.1 AboutAction: TAction;
65     ExitAction: TAction;
66 yoffy 1.51 MsgBarVisibleAction: TAction;
67 hi_ 1.1 StatusBarVisibleAction: TAction;
68     LargeIconAction: TAction;
69     SmallIconAction: TAction;
70     ListIconAction: TAction;
71 yoffy 1.51 DetailIconAction: TAction;
72 yoffy 1.141 CabinetBBSAction: TAction;
73 hi_ 1.1 CabinetHistoryAction: TAction;
74 yoffy 1.51 CabinetVisibleAction: TAction;
75     MidokuAction: TAction;
76 hi_ 1.1 AllSelectAction: TAction;
77     UpFolderAction: TAction;
78 yoffy 1.51 ListNumberVisibleAction: TAction;
79 hi_ 1.1 AllItemAction: TAction;
80 yoffy 1.51 LogItemAction: TAction;
81     NewItemAction: TAction;
82 hi_ 1.1 SelectItemAction: TAction;
83     ShowThreadAction: TAction;
84     StopAction: TAction;
85     MainMenu: TMainMenu;
86     FileMenu: TMenuItem;
87 yoffy 1.51 DeleteMenu: TMenuItem;
88     ExitMenu: TMenuItem;
89     KidokuMenu: TMenuItem;
90 hi_ 1.1 MidokuMenu: TMenuItem;
91 yoffy 1.51 AllSelectMenu: TMenuItem;
92 hi_ 1.1 ViewMenu: TMenuItem;
93     StdToolBarMenu: TMenuItem;
94     CabinetMenu: TMenuItem;
95 yoffy 1.51 H1: TMenuItem;
96 hi_ 1.1 N4: TMenuItem;
97 yoffy 1.51 CabinetVisibleMenu: TMenuItem;
98 hi_ 1.1 MessageMenu: TMenuItem;
99     StatusBarMenu: TMenuItem;
100     MMSep03: TMenuItem;
101 yoffy 1.51 LargeIconMenu: TMenuItem;
102 hi_ 1.1 SmallIconMenu: TMenuItem;
103     ListMenu: TMenuItem;
104     DetailMenu: TMenuItem;
105 yoffy 1.51 ToolMenu: TMenuItem;
106 hi_ 1.1 Find1: TMenuItem;
107     RoundMenu: TMenuItem;
108     MMSep04: TMenuItem;
109     OptionMenu: TMenuItem;
110     HelpMenu: TMenuItem;
111     G1: TMenuItem;
112 yoffy 1.51 N1: TMenuItem;
113 hi_ 1.1 AboutMenu: TMenuItem;
114 yoffy 1.51 IconStyle: TAction;
115 hi_ 1.1 BrowserPopupMenu: TPopupMenu;
116 yoffy 1.51 ShowThreadMenu: TMenuItem;
117 yoffy 1.2 ShowBoardMenu: TMenuItem;
118 hi_ 1.1 ShowBoardAction: TAction;
119     ListIconPopupMenu: TPopupMenu;
120     LargeIconPMenu: TMenuItem;
121     SmallIconPMenu: TMenuItem;
122     ListPMenu: TMenuItem;
123 yoffy 1.51 DetailPMenu: TMenuItem;
124     CabinetCloseAction: TAction;
125 hi_ 1.1 ClosePopupMenu: TPopupMenu;
126 yoffy 1.51 CloseMenu: TMenuItem;
127     OptionAction: TAction;
128 hi_ 1.1 U1: TMenuItem;
129     N3: TMenuItem;
130     B1: TMenuItem;
131     S1: TMenuItem;
132     N2: TMenuItem;
133     A1: TMenuItem;
134     L1: TMenuItem;
135     N5: TMenuItem;
136     S2: TMenuItem;
137 yoffy 1.51 RoundAction: TAction;
138 hi_ 1.1 ListPopupMenu: TPopupMenu;
139 yoffy 1.51 ListRoundPMenu: TMenuItem;
140 hi_ 1.1 ListReservPMenu: TMenuItem;
141     LPMSep01: TMenuItem;
142 yoffy 1.51 ItemRoundPMenu: TMenuItem;
143 hi_ 1.1 LPMSep02: TMenuItem;
144 yoffy 1.2 KidokuPMenu: TMenuItem;
145 hi_ 1.1 MidokuPMenu: TMenuItem;
146     AllSelectPMenu: TMenuItem;
147     UrlCopyPMenu: TMenuItem;
148     LPMSep05: TMenuItem;
149     DeletePMenu: TMenuItem;
150     LPMSep06: TMenuItem;
151     ViewPMenu: TMenuItem;
152     LargeIconLPMenu: TMenuItem;
153     SmallIconLPMenu: TMenuItem;
154     ListLPMenu: TMenuItem;
155     DetailLPMenu: TMenuItem;
156     T1: TMenuItem;
157     B2: TMenuItem;
158     N8: TMenuItem;
159     URLCopyAction: TAction;
160 yoffy 1.51 URLC1: TMenuItem;
161     N9: TMenuItem;
162 hi_ 1.1 N10: TMenuItem;
163 yoffy 1.51 MsgBarCloseAction: TAction;
164     ScrollTopAction: TAction;
165 hi_ 1.1 ScrollLastAction: TAction;
166     ScrollNewAction: TAction;
167     ScrollKokoAction: TAction;
168 yoffy 1.51 EditorAction: TAction;
169 hi_ 1.1 IEAction: TAction;
170     ItemReloadAction: TAction;
171 yoffy 1.51 BrowserMaxAction: TAction;
172 hi_ 1.1 G2: TMenuItem;
173     N11: TMenuItem;
174     T3: TMenuItem;
175     L2: TMenuItem;
176     N12: TMenuItem;
177     K1: TMenuItem;
178     N13: TMenuItem;
179     N14: TMenuItem;
180     R1: TMenuItem;
181     A2: TMenuItem;
182     N15: TMenuItem;
183 yoffy 1.51 SelectListReloadAction: TAction;
184     SelectThreadReloadAction: TAction;
185 hi_ 1.1 SelectTimer: TTimer;
186     KokoPopupMenu: TPopupMenu;
187     KokomadePMenu: TMenuItem;
188 yoffy 1.2 AllPMenu: TMenuItem;
189 hi_ 1.1 MenuItem1: TMenuItem;
190     MenuItem2: TMenuItem;
191     BrowserTabCloseAction: TAction;
192     BrowserTabPopupMenu: TPopupMenu;
193 yoffy 1.51 Close1: TMenuItem;
194 hi_ 1.1 KokomadeAction: TAction;
195     ZenbuAction: TAction;
196     KokoResAction: TAction;
197     SelectItemURLCopyAction: TAction;
198     SelectReservAction: TAction;
199     NotSelectTabCloseAction: TAction;
200     A3: TMenuItem;
201 yoffy 1.51 N16: TMenuItem;
202 hi_ 1.1 A4: TMenuItem;
203     TreePopupMenu: TPopupMenu;
204     TreeSelectThreadPupupMenu: TMenuItem;
205 yoffy 1.51 TreeSelectBoardPupupMenu: TMenuItem;
206 hi_ 1.1 TPMSep01: TMenuItem;
207     TreeSelectURLPupupMenu: TMenuItem;
208     TreeSelectBoradReload: TAction;
209 yoffy 1.51 TreeSelectThreadReload: TAction;
210 hi_ 1.1 TreeSelectURLCopy: TAction;
211     ListToolBarVisibleAction: TAction;
212     BrowserToolBarVisibleAction: TAction;
213     T2: TMenuItem;
214 yoffy 1.2 L3: TMenuItem;
215 hi_ 1.1 B3: TMenuItem;
216     BrowserBottomPanel: TGikoPanel;
217     CabinetSelectPopupMenu: TPopupMenu;
218     H2: TMenuItem;
219 yoffy 1.51 ItemReservPMenu: TMenuItem;
220     RoundNamePopupMenu: TPopupMenu;
221 hi_ 1.1 SelectNewRoundName: TAction;
222 yoffy 1.51 SelectDeleteRound: TAction;
223     NewBoardAction: TAction;
224 yoffy 1.2 N7: TMenuItem;
225 hi_ 1.1 B4: TMenuItem;
226     LoginAction: TAction;
227     L4: TMenuItem;
228     KeySettingAction: TAction;
229     K2: TMenuItem;
230     AllTabCloseAction: TAction;
231 yoffy 1.51 A5: TMenuItem;
232 hi_ 1.1 A6: TMenuItem;
233 yoffy 1.51 C1: TMenuItem;
234     V1: TMenuItem;
235     N19: TMenuItem;
236 hi_ 1.1 D1: TMenuItem;
237 yoffy 1.51 D2: TMenuItem;
238     MessageImageList: TImageList;
239     ProgressBar: TProgressBar;
240     ArrangeAction: TAction;
241     URL1: TMenuItem;
242     NameURLCopyAction: TAction;
243     SelectItemNameURLCopyAction: TAction;
244 hi_ 1.1 NameUrlCopyPMenu: TMenuItem;
245     URLC2: TMenuItem;
246 yoffy 1.51 URLN1: TMenuItem;
247     N21: TMenuItem;
248     URLC3: TMenuItem;
249 yoffy 1.2 URLN2: TMenuItem;
250 hi_ 1.1 N22: TMenuItem;
251 yoffy 1.51 N23: TMenuItem;
252 yoffy 1.2 ListCoolBar: TGikoCoolBar;
253 hi_ 1.1 ListToolBar: TToolBar;
254     ViewNoButton: TToolButton;
255     IconToolButton: TToolButton;
256 yoffy 1.51 UpFolderButton: TToolButton;
257     Sepa01ToolButton: TToolButton;
258 yoffy 1.2 AllItemToolButton: TToolButton;
259 hi_ 1.1 LogItemToolButton: TToolButton;
260     NewItemToolButton: TToolButton;
261 yoffy 1.51 ListDownloadToolButton: TToolButton;
262 hi_ 1.1 ListThreadDownloadToolButton: TToolButton;
263 yoffy 1.51 ToolButton2: TToolButton;
264     ToolButton1: TToolButton;
265 yoffy 1.2 BrowserCoolBar: TGikoCoolBar;
266 hi_ 1.1 BrowserToolBar: TToolBar;
267 yoffy 1.51 BrowserSizeButton: TToolButton;
268 hi_ 1.1 ToolButton3: TToolButton;
269     TopButton: TToolButton;
270 yoffy 1.2 LastBotton: TToolButton;
271     NewButton: TToolButton;
272 yoffy 1.51 KokoButton: TToolButton;
273     ToolButton9: TToolButton;
274 yoffy 1.2 EditorButton: TToolButton;
275 hi_ 1.1 ToolButton11: TToolButton;
276     IEButton: TToolButton;
277 yoffy 1.51 ToolButton5: TToolButton;
278     ItemReloadButton: TToolButton;
279 hi_ 1.1 ListNameToolBar: TToolBar;
280 yoffy 1.51 ListNameLabel: TLabel;
281 hi_ 1.1 FolderImage: TImage;
282     BrowserNameToolBar: TToolBar;
283     ItemBoardImage: TImage;
284     BrowserBoardNameLabel: TLabel;
285 yoffy 1.51 ItemImage: TImage;
286     BrowserNameLabel: TLabel;
287     ActiveLogDeleteAction: TAction;
288     D3: TMenuItem;
289     N25: TMenuItem;
290 hi_ 1.1 N26: TMenuItem;
291     ListNameBarVisibleAction: TAction;
292     D4: TMenuItem;
293     BrowserNameBarVisibleAction: TAction;
294     S3: TMenuItem;
295 yoffy 1.51 R2: TMenuItem;
296     TreeSelectNameURLCopy: TAction;
297     TreeSelectNameURLPupupMenu: TMenuItem;
298     N27: TMenuItem;
299 hi_ 1.1 H3: TMenuItem;
300     PaneInitAction: TAction;
301 yoffy 1.51 I1: TMenuItem;
302     BrowserTabToolBar: TToolBar;
303     BrowserTab: TTabControl;
304 hi_ 1.1 ToolButton7: TToolButton;
305 yoffy 1.2 BrowserMinAction: TAction;
306 yoffy 1.51 About1: TMenuItem;
307     N28: TMenuItem;
308     SelectTextClearAction: TAction;
309     MailTextClearAction: TAction;
310 hi_ 1.1 NameTextClearAction: TAction;
311 yoffy 1.51 S4: TMenuItem;
312 yoffy 1.2 N29: TMenuItem;
313     N30: TMenuItem;
314 hi_ 1.1 LeftmostTabSelectAction: TAction;
315 yoffy 1.51 LeftTabSelectAction: TAction;
316     RightTabSelectAction: TAction;
317     RightmostTabSelectAction: TAction;
318 yoffy 1.2 N31: TMenuItem;
319 hi_ 1.1 L5: TMenuItem;
320 yoffy 1.51 L6: TMenuItem;
321 hi_ 1.1 A7: TMenuItem;
322 yoffy 1.51 R3: TMenuItem;
323 hi_ 1.1 FavoriteMenu: TMenuItem;
324 yoffy 1.51 FavoriteAddAction: TAction;
325     N32: TMenuItem;
326 hi_ 1.1 BoardFavoriteAddMenu: TMenuItem;
327 yoffy 1.2 BoardFavoriteAddAction: TAction;
328 hi_ 1.1 ThreadFavoriteAddAction: TAction;
329     ThreadFavoriteAddMenu: TMenuItem;
330     TreeSelectFavoriteAddAction: TAction;
331 yoffy 1.2 N33: TMenuItem;
332 hi_ 1.1 TreeSelectFavoriteAddPupupMenu: TMenuItem;
333     FavoriteArrangeAction: TAction;
334     FavoriteTreeView: TTreeView;
335 yoffy 1.51 StateIconImageList: TImageList;
336     TopPanel: TPanel;
337     TopRightPanel: TPanel;
338     AnimePanel: TPanel;
339 hi_ 1.1 Animate: TAnimate;
340     TopCoolPanel: TPanel;
341 yoffy 1.51 MainCoolBar: TGikoCoolBar;
342     MenuToolBar: TToolBar;
343     StdToolBar: TToolBar;
344     RoundToolButton: TToolButton;
345     ToolButton6: TToolButton;
346     ToolButton4: TToolButton;
347 hi_ 1.1 ToolButton13: TToolButton;
348     AbortToolButton: TToolButton;
349     LoginToolButton: TToolButton;
350 yoffy 1.51 AddressToolBar: TToolBar;
351     AddressComboBox: TComboBox;
352     MoveToToolButton: TToolButton;
353 yoffy 1.2 MoveToAction: TAction;
354 yoffy 1.51 AddressImageList: TImageList;
355     AddressBarVisibleAction: TAction;
356     AddressToolBarMenu: TMenuItem;
357     T4: TMenuItem;
358 hi_ 1.1 BrowserTabVisibleAction: TAction;
359 yoffy 1.51 Show1: TMenuItem;
360     N34: TMenuItem;
361     BrowserTabTopAction: TAction;
362 yoffy 1.2 BrowserTabBottomAction: TAction;
363 hi_ 1.1 T5: TMenuItem;
364     B5: TMenuItem;
365 yoffy 1.51 N35: TMenuItem;
366     BrowserTabTabStyleAction: TAction;
367     BrowserTabButtonStyleAction: TAction;
368     BrowserTabFlatStyleAction: TAction;
369     A8: TMenuItem;
370     U2: TMenuItem;
371 hi_ 1.1 F1: TMenuItem;
372     PreviewTimer: TTimer;
373 yoffy 1.51 MonazillaWebPageAction: TAction;
374     MonazillaWebPageAction1: TMenuItem;
375 hi_ 1.1 GikoHelpAction: TAction;
376 yoffy 1.51 N36: TMenuItem;
377     H4: TMenuItem;
378     KotehanAction: TAction;
379     K3: TMenuItem;
380     LinkBarVisibleAction: TAction;
381     L7: TMenuItem;
382     N37: TMenuItem;
383     A9: TMenuItem;
384 yoffy 1.2 ChevronPopupMenu: TPopupMenu;
385 yoffy 1.51 BBS2chWebPageAction: TAction;
386 yoffy 1.2 N2N1: TMenuItem;
387 hi_ 1.1 N38: TMenuItem;
388     GikoFolderOpenAction: TAction;
389 yoffy 1.2 F2: TMenuItem;
390 yoffy 1.51 LinkToolBar: TToolBar;
391     a10: TMenuItem;
392     ToolButton8: TToolButton;
393 yoffy 1.2 ToolButton10: TToolButton;
394 yoffy 1.51 ThreadEditorAction: TAction;
395     N39: TMenuItem;
396     T6: TMenuItem;
397     N40: TMenuItem;
398 yoffy 1.2 LinkBarPopupMenu: TPopupMenu;
399 yoffy 1.51 ToolBarSettingAction: TAction;
400     T7: TMenuItem;
401     ToolButton12: TToolButton;
402     ToolButton14: TToolButton;
403     ThreadPopupMenu: TPopupMenu;
404     MenuItem4: TMenuItem;
405     MenuItem5: TMenuItem;
406     MenuItem6: TMenuItem;
407 yoffy 1.2 T8: TMenuItem;
408 yoffy 1.51 NameCopyAction: TAction;
409     BoardIEAction: TAction;
410     URLN3: TMenuItem;
411     SelectItemNameCopyAction: TAction;
412 yoffy 1.2 SelectItemNameCopyAction1: TMenuItem;
413 yoffy 1.51 B6: TMenuItem;
414     T9: TMenuItem;
415     C2: TMenuItem;
416     SelectComboBox: TComboBox;
417     MainCoolBarPopupMenu: TPopupMenu;
418     StdToolBarVisiblePMenu: TMenuItem;
419     AddressToolBarVisiblePMenu: TMenuItem;
420     LinkToolBarVisiblePMenu: TMenuItem;
421     NG1: TMenuItem;
422     NG2: TMenuItem;
423     N43: TMenuItem;
424     N44: TMenuItem;
425     L9: TMenuItem;
426     I3: TMenuItem;
427     N45: TMenuItem;
428     B9: TMenuItem;
429     R5: TMenuItem;
430     T12: TMenuItem;
431     Show3: TMenuItem;
432     N46: TMenuItem;
433     T13: TMenuItem;
434     B10: TMenuItem;
435     N47: TMenuItem;
436     A12: TMenuItem;
437     U4: TMenuItem;
438     F4: TMenuItem;
439     N48: TMenuItem;
440     T14: TMenuItem;
441     SelectItemToolButton: TToolButton;
442     SelectResToolButton: TToolButton;
443     SelectResAction: TAction;
444     ToolButton16: TToolButton;
445     AllResAction: TAction;
446     AllResToolButton: TToolButton;
447     N50: TMenuItem;
448     A11: TMenuItem;
449     S5: TMenuItem;
450     Reload: TMenuItem;
451     GoBack: TMenuItem;
452     GoFoward: TMenuItem;
453     EditAction: TAction;
454     ReloadAction: TAction;
455     GoFowardAction: TAction;
456     GoBackAction: TAction;
457     SelectComboBoxSplitter: TImage;
458     IndividualAbon1: TMenuItem;
459     N41: TMenuItem;
460     IndividualAbon2: TMenuItem;
461     N42: TMenuItem;
462     CancellIndividualAbon: TAction;
463     AntiIndividualAbon: TMenuItem;
464     N49: TMenuItem;
465     N51: TMenuItem;
466     N52: TMenuItem;
467     N53: TMenuItem;
468     SearchBoardName: TMenuItem;
469 yoffy 1.205 TreeSelectLogDeleteSeparator: TMenuItem;
470 yoffy 1.51 TreeSelectSearchBoardName: TAction;
471 yoffy 1.100 CabinetFavoriteAction: TAction;
472     N54: TMenuItem;
473     A13: TMenuItem;
474     FavoriteTreePopupMenu: TPopupMenu;
475     FavoriteTreeViewRenameAction: TAction;
476     FavoriteTreeRenamePopupMenu: TMenuItem;
477     FavoriteTreeViewNewFolderAction: TAction;
478     FavoriteTreeNewFolderPopupMenu: TMenuItem;
479     N56: TMenuItem;
480     FavoriteTreeViewDeleteAction: TAction;
481     FavoriteTreeDeletePopupMenu: TMenuItem;
482     FavoriteToolBar: TToolBar;
483     ToolButton17: TToolButton;
484     ToolButton19: TToolButton;
485     FavoriteTreeViewBrowseFolderAction: TAction;
486     FavoriteTreeBrowseFolderPopupMenu: TMenuItem;
487     N57: TMenuItem;
488     FavoriteTreeReloadPopupMenu: TMenuItem;
489     N58: TMenuItem;
490     FavoriteTreeURLCopyPopupMenu: TMenuItem;
491     FavoriteTreeNameCopyPopupMenu: TMenuItem;
492     FavoriteTreeLogDeletePopupMenu: TMenuItem;
493     N59: TMenuItem;
494     FavoriteTreeNameURLCopyPopupMenu: TMenuItem;
495     FavoriteTreeViewReloadAction: TAction;
496     FavoriteTreeViewURLCopyAction: TAction;
497     FavoriteTreeViewNameCopyAction: TAction;
498     FavoriteTreeViewNameURLCopyAction: TAction;
499     FavoriteTreeViewLogDeleteAction: TAction;
500     OnlyAHundredRes: TAction;
501     ToolButton20: TToolButton;
502     AHundredResButton: TToolButton;
503     N60: TMenuItem;
504 yoffy 1.107 ExportFavoriteFileAction1: TMenuItem;
505     ExportFavoriteFile: TFileSaveAs;
506 yoffy 1.141 ToolButton21: TToolButton;
507 yoffy 1.209 CabinetBBSToolButton: TToolButton;
508 yoffy 1.141 ToolButton23: TToolButton;
509     ToolButton24: TToolButton;
510 yoffy 1.142 N6: TMenuItem;
511     N17: TMenuItem;
512     FavoriteTreeViewBrowseBoardAction: TAction;
513     FavoriteTreeViewBrowseThreadAction: TAction;
514 yoffy 1.158 UpBoardAction: TAction;
515 h677 1.174 N18: TMenuItem;
516     N20: TMenuItem;
517     N24: TMenuItem;
518     N62: TMenuItem;
519 h677 1.176 N61: TMenuItem;
520 h677 1.183 N63: TMenuItem;
521     KoreCopy: TAction;
522     N64: TMenuItem;
523 h677 1.187 dummy1: TMenuItem;
524 h677 1.192 Browser: TWebBrowser;
525 yoffy 1.205 TreeSelectLogDeletePopupMenu: TMenuItem;
526     N65: TMenuItem;
527 yoffy 1.209 BBSSelectPopupMenu: TPopupMenu;
528 yoffy 1.218 PlugInMenu: TMenuItem;
529 hi_ 1.1 procedure FormCreate(Sender: TObject);
530     procedure FormDestroy(Sender: TObject);
531     procedure CabinetPanelHide(Sender: TObject);
532     procedure FormClose(Sender: TObject; var Action: TCloseAction);
533     procedure TreeViewChange(Sender: TObject; Node: TTreeNode);
534     procedure ListViewData(Sender: TObject; Item: TListItem);
535     procedure ListViewDataFind(Sender: TObject; Find: TItemFind;
536     const FindString: String; const FindPosition: TPoint;
537     FindData: Pointer; StartIndex: Integer; Direction: TSearchDirection;
538     Wrap: Boolean; var Index: Integer);
539     procedure ListViewDataHint(Sender: TObject; StartIndex,
540     EndIndex: Integer);
541     procedure ListViewDataStateChange(Sender: TObject; StartIndex,
542     EndIndex: Integer; OldState, NewState: TItemStates);
543     procedure BrowserStatusTextChange(Sender: TObject;
544     const Text: WideString);
545     procedure BrowserTitleChange(Sender: TObject; const Text: WideString);
546     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
547     procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
548     var AllowChange: Boolean);
549     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
550     Shift: TShiftState);
551     procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
552     procedure MenuToolBarCustomDrawButton(Sender: TToolBar;
553     Button: TToolButton; State: TCustomDrawState;
554     var DefaultDraw: Boolean);
555     procedure BrowserBeforeNavigate2(Sender: TObject;
556     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
557     Headers: OleVariant; var Cancel: WordBool);
558     procedure ListViewAdvancedCustomDrawItem(Sender: TCustomListView;
559     Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
560     var DefaultDraw: Boolean);
561     procedure TreeViewCustomDraw(Sender: TCustomTreeView;
562     const ARect: TRect; var DefaultDraw: Boolean);
563     procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
564     Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
565     procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
566     procedure TreeViewDblClick(Sender: TObject);
567 yoffy 1.100 procedure FavoriteTreeViewClick(Sender: TObject);
568 hi_ 1.1 procedure ListViewCustomDraw(Sender: TCustomListView;
569     const ARect: TRect; var DefaultDraw: Boolean);
570     procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
571     Shift: TShiftState; X, Y: Integer);
572     procedure TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
573     procedure MessageListViewResize(Sender: TObject);
574     procedure ExitActionExecute(Sender: TObject);
575     procedure AllSelectActionExecute(Sender: TObject);
576     procedure StdToolBarVisibleActionExecute(Sender: TObject);
577     procedure MsgBarVisibleActionExecute(Sender: TObject);
578     procedure StatusBarVisibleActionExecute(Sender: TObject);
579     procedure LargeIconActionExecute(Sender: TObject);
580     procedure SmallIconActionExecute(Sender: TObject);
581     procedure ListIconActionExecute(Sender: TObject);
582     procedure DetailIconActionExecute(Sender: TObject);
583     procedure SearchActionExecute(Sender: TObject);
584     procedure OptionActionExecute(Sender: TObject);
585     procedure GikoNaviWebPageActionExecute(Sender: TObject);
586     procedure AboutActionExecute(Sender: TObject);
587     procedure CabinetHistoryActionExecute(Sender: TObject);
588 yoffy 1.138 procedure CabinetVisible( isVisible : Boolean );
589 hi_ 1.1 procedure CabinetVisibleActionExecute(Sender: TObject);
590     procedure AllItemActionExecute(Sender: TObject);
591     procedure LogItemActionExecute(Sender: TObject);
592     procedure NewItemActionExecute(Sender: TObject);
593     procedure SelectItemActionExecute(Sender: TObject);
594     procedure ListNumberVisibleActionExecute(Sender: TObject);
595     procedure UpFolderActionExecute(Sender: TObject);
596     procedure IconStyleExecute(Sender: TObject);
597     procedure RoundActionExecute(Sender: TObject);
598     procedure StopActionExecute(Sender: TObject);
599     procedure MsgBarCloseActionExecute(Sender: TObject);
600     procedure BrowserMaxActionExecute(Sender: TObject);
601     procedure ScrollTopActionExecute(Sender: TObject);
602     procedure ScrollLastActionExecute(Sender: TObject);
603     procedure ScrollNewActionExecute(Sender: TObject);
604     procedure ScrollKokoActionExecute(Sender: TObject);
605     procedure EditorActionExecute(Sender: TObject);
606     procedure IEActionExecute(Sender: TObject);
607     procedure ShowThreadActionExecute(Sender: TObject);
608     procedure ShowBoardActionExecute(Sender: TObject);
609     procedure URLCopyActionExecute(Sender: TObject);
610     procedure ItemReloadActionExecute(Sender: TObject);
611     procedure SelectListReloadActionExecute(Sender: TObject);
612     procedure SelectThreadReloadActionExecute(Sender: TObject);
613     procedure SelectListReloadActionUpdate(Sender: TObject);
614     procedure AllItemActionUpdate(Sender: TObject);
615     procedure LogItemActionUpdate(Sender: TObject);
616     procedure NewItemActionUpdate(Sender: TObject);
617     procedure SelectItemActionUpdate(Sender: TObject);
618     procedure UpFolderActionUpdate(Sender: TObject);
619     procedure FormResize(Sender: TObject);
620     procedure ScrollTopActionUpdate(Sender: TObject);
621     procedure ScrollLastActionUpdate(Sender: TObject);
622     procedure ScrollNewActionUpdate(Sender: TObject);
623     procedure ScrollKokoActionUpdate(Sender: TObject);
624     procedure EditorActionUpdate(Sender: TObject);
625     procedure IEActionUpdate(Sender: TObject);
626     procedure ShowThreadActionUpdate(Sender: TObject);
627     procedure ShowBoardActionUpdate(Sender: TObject);
628     procedure SelectThreadReloadActionUpdate(Sender: TObject);
629     procedure ListViewSelectItem(Sender: TObject; Item: TListItem;
630     Selected: Boolean);
631     procedure SelectTimerTimer(Sender: TObject);
632 yoffy 1.51 procedure ItemReloadActionUpdate(Sender: TObject);
633 hi_ 1.1 procedure ListViewDblClick(Sender: TObject);
634 yoffy 1.51 procedure LogDeleteActionExecute(Sender: TObject);
635 hi_ 1.1 procedure KokomadeActionExecute(Sender: TObject);
636     procedure ZenbuActionExecute(Sender: TObject);
637 yoffy 1.51 procedure KokoResActionExecute(Sender: TObject);
638 hi_ 1.1 procedure ListPopupMenuPopup(Sender: TObject);
639     procedure SelectItemURLCopyActionExecute(Sender: TObject);
640     procedure SelectItemURLCopyActionUpdate(Sender: TObject);
641     procedure AllSelectActionUpdate(Sender: TObject);
642     procedure LogDeleteActionUpdate(Sender: TObject);
643     procedure BrowserTabCloseActionExecute(Sender: TObject);
644     procedure NotSelectTabCloseActionExecute(Sender: TObject);
645     procedure TreeSelectBoradReloadExecute(Sender: TObject);
646     procedure TreeSelectThreadReloadExecute(Sender: TObject);
647     procedure TreeSelectURLCopyExecute(Sender: TObject);
648     procedure TreePopupMenuPopup(Sender: TObject);
649     procedure ListToolBarVisibleActionExecute(Sender: TObject);
650     procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
651     procedure BrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
652     var Cancel: WordBool);
653     procedure ListSplitterCanResize(Sender: TObject; var NewSize: Integer;
654     var Accept: Boolean);
655     procedure ListSplitterMoved(Sender: TObject);
656     procedure BrowserTabChange(Sender: TObject);
657     procedure BrowserTabMouseDown(Sender: TObject; Button: TMouseButton;
658     Shift: TShiftState; X, Y: Integer);
659     procedure BrowserTabDragOver(Sender, Source: TObject; X, Y: Integer;
660     State: TDragState; var Accept: Boolean);
661     procedure BrowserTabDragDrop(Sender, Source: TObject; X, Y: Integer);
662     procedure BrowserTabMouseMove(Sender: TObject; Shift: TShiftState; X,
663     Y: Integer);
664     procedure BrowserDocumentComplete(Sender: TObject;
665     const pDisp: IDispatch; var URL: OleVariant);
666     procedure SelectReservActionUpdate(Sender: TObject);
667     procedure RoundNamePopupMenuPopup(Sender: TObject);
668     procedure SelectNewRoundNameExecute(Sender: TObject);
669     procedure SelectDeleteRoundExecute(Sender: TObject);
670     procedure SelectReservActionExecute(Sender: TObject);
671     procedure NewBoardActionExecute(Sender: TObject);
672     procedure LoginActionExecute(Sender: TObject);
673     procedure KeySettingActionExecute(Sender: TObject);
674     procedure AllTabCloseActionExecute(Sender: TObject);
675 yoffy 1.51 procedure ArrangeActionExecute(Sender: TObject);
676     procedure NameURLCopyActionExecute(Sender: TObject);
677     procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
678 hi_ 1.1 procedure URLCopyActionUpdate(Sender: TObject);
679 yoffy 1.2 procedure NameURLCopyActionUpdate(Sender: TObject);
680 hi_ 1.1 procedure BrowserTabCloseActionUpdate(Sender: TObject);
681 yoffy 1.51 procedure NotSelectTabCloseActionUpdate(Sender: TObject);
682 hi_ 1.1 procedure AllTabCloseActionUpdate(Sender: TObject);
683     procedure SelectItemNameURLCopyActionUpdate(Sender: TObject);
684     procedure ActiveLogDeleteActionExecute(Sender: TObject);
685     procedure ActiveLogDeleteActionUpdate(Sender: TObject);
686 yoffy 1.51 procedure ListNameBarVisibleActionExecute(Sender: TObject);
687 hi_ 1.1 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
688 yoffy 1.51 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
689     procedure PaneInitActionExecute(Sender: TObject);
690 hi_ 1.1 procedure FormShow(Sender: TObject);
691     procedure BrowserTabToolBarResize(Sender: TObject);
692     procedure BrowserMinActionExecute(Sender: TObject);
693 yoffy 1.51 procedure SelectTextClearActionExecute(Sender: TObject);
694 hi_ 1.1 procedure NameTextClearActionExecute(Sender: TObject);
695 yoffy 1.51 procedure MailTextClearActionExecute(Sender: TObject);
696     procedure LeftmostTabSelectActionExecute(Sender: TObject);
697     procedure LeftTabSelectActionExecute(Sender: TObject);
698 hi_ 1.1 procedure RightTabSelectActionExecute(Sender: TObject);
699     procedure RightmostTabSelectActionExecute(Sender: TObject);
700     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
701     procedure LeftTabSelectActionUpdate(Sender: TObject);
702     procedure RightTabSelectActionUpdate(Sender: TObject);
703     procedure RightmostTabSelectActionUpdate(Sender: TObject);
704     procedure FavoriteMenuClick(Sender: TObject);
705     procedure FavoriteAddActionExecute(Sender: TObject);
706     procedure FavoriteAddActionUpdate(Sender: TObject);
707     procedure BoardFavoriteAddActionExecute(Sender: TObject);
708     procedure BoardFavoriteAddActionUpdate(Sender: TObject);
709 yoffy 1.51 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
710 hi_ 1.1 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
711 yoffy 1.51 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
712 yoffy 1.2 procedure FavoriteArrangeActionExecute(Sender: TObject);
713     procedure MainCoolBarResize(Sender: TObject);
714 hi_ 1.1 procedure MoveToActionExecute(Sender: TObject);
715 yoffy 1.2 procedure AddressToolBarResize(Sender: TObject);
716 hi_ 1.1 procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
717     Shift: TShiftState);
718 yoffy 1.51 procedure AddressBarVisibleActionExecute(Sender: TObject);
719 yoffy 1.2 procedure BrowserEnter(Sender: TObject);
720 hi_ 1.1 procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
721 yoffy 1.51 procedure BrowserTabVisibleActionExecute(Sender: TObject);
722     procedure BrowserTabTopActionExecute(Sender: TObject);
723     procedure BrowserTabBottomActionExecute(Sender: TObject);
724     procedure BrowserTabTabStyleActionExecute(Sender: TObject);
725 hi_ 1.1 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
726 yoffy 1.51 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
727 hi_ 1.1 procedure PreviewTimerTimer(Sender: TObject);
728     procedure MessageHideButtonClick(Sender: TObject);
729     procedure MonazillaWebPageActionExecute(Sender: TObject);
730     procedure GikoHelpActionExecute(Sender: TObject);
731     procedure ToolButton18Click(Sender: TObject);
732     procedure KotehanActionExecute(Sender: TObject);
733 yoffy 1.51 procedure LinkBarVisibleActionExecute(Sender: TObject);
734     procedure BBS2chWebPageActionExecute(Sender: TObject);
735     procedure GikoFolderOpenActionExecute(Sender: TObject);
736 yoffy 1.2 procedure MainCoolBarBandInfo(Sender: TObject;
737     var BandInfo: PReBarBandInfoA);
738     procedure MainCoolBarChevronClick(Sender: TObject;
739 yoffy 1.51 RebarChevron: PNMRebarChevron);
740     procedure ListCoolBarBandInfo(Sender: TObject;
741     var BandInfo: PReBarBandInfoA);
742     procedure ListCoolBarChevronClick(Sender: TObject;
743     RebarChevron: PNMRebarChevron);
744     procedure BrowserCoolBarBandInfo(Sender: TObject;
745     var BandInfo: PReBarBandInfoA);
746 yoffy 1.2 procedure BrowserCoolBarChevronClick(Sender: TObject;
747 yoffy 1.51 RebarChevron: PNMRebarChevron);
748     procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
749     procedure ThreadEditorActionExecute(Sender: TObject);
750 yoffy 1.2 procedure ThreadEditorActionUpdate(Sender: TObject);
751 yoffy 1.51 procedure ToolBarSettingActionExecute(Sender: TObject);
752     procedure NameCopyActionExecute(Sender: TObject);
753     procedure BoardIEActionExecute(Sender: TObject);
754     procedure SelectItemNameCopyActionExecute(Sender: TObject);
755 yoffy 1.2 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
756 yoffy 1.51 procedure BoardIEActionUpdate(Sender: TObject);
757     procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
758     WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
759     procedure NameCopyActionUpdate(Sender: TObject);
760     procedure SelectComboBoxChange(Sender: TObject);
761     procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
762     Shift: TShiftState);
763     procedure SelectComboBoxExit(Sender: TObject);
764     procedure NG1Click(Sender: TObject);
765     procedure SelectResActionExecute(Sender: TObject);
766     procedure SelectResActionUpdate(Sender: TObject);
767     procedure FormKeyUp(Sender: TObject; var Key: Word;
768     Shift: TShiftState);
769     procedure AllResActionExecute(Sender: TObject);
770     procedure AllResActionUpdate(Sender: TObject);
771     procedure ReloadClick(Sender: TObject);
772     procedure GoBackClick(Sender: TObject);
773     procedure GoFowardClick(Sender: TObject);
774     procedure SelectComboBoxSplitterMouseMove(Sender: TObject;
775     Shift: TShiftState; X, Y: Integer);
776     procedure SelectComboBoxSplitterMouseDown(Sender: TObject;
777     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
778     procedure SelectComboBoxSplitterMouseUp(Sender: TObject;
779     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
780     procedure StatusBarResize(Sender: TObject);
781     procedure IndividualAbon1Click(Sender: TObject);
782     procedure IndividualAbon2Click(Sender: TObject);
783     procedure N42Click(Sender: TObject);
784     procedure SelectComboBoxEnter(Sender: TObject);
785     procedure AntiIndividualAbonClick(Sender: TObject);
786     procedure N51Click(Sender: TObject);
787     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
788 yoffy 1.100 procedure CabinetFavoriteActionExecute(Sender: TObject);
789     procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
790     Y: Integer);
791 yoffy 1.71 procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
792 yoffy 1.100 procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
793     var S: String);
794     procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
795     Shift: TShiftState);
796     procedure FavoriteTreePopupMenuPopup(Sender: TObject);
797     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
798     procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
799     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
800     procedure ToolButton19Click(Sender: TObject);
801     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
802     procedure FavoriteTreeViewChange(Sender: TObject; Node: TTreeNode);
803     procedure FavoriteTreeViewDblClick(Sender: TObject);
804     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
805     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
806     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
807     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
808     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
809     procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
810     procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
811     Shift: TShiftState; X, Y: Integer);
812     procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
813     State: TDragState; var Accept: Boolean);
814     procedure OnlyAHundredResExecute(Sender: TObject);
815     procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
816     Y: Integer);
817     procedure ListCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
818     var Handled: Boolean);
819     procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
820     var Handled: Boolean);
821     procedure BrowserCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
822     var Handled: Boolean);
823 yoffy 1.107 procedure ExportFavoriteFileAccept(Sender: TObject);
824     procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
825 yoffy 1.139 procedure CabinetBBSActionExecute(Sender: TObject);
826 yoffy 1.142 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
827     procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
828 yoffy 1.158 procedure UpBoardActionExecute(Sender: TObject);
829     procedure UpBoardActionUpdate(Sender: TObject);
830 h677 1.174 procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
831     var Handled: Boolean);
832 h677 1.183 procedure KoreCopyExecute(Sender: TObject);
833 h677 1.187 procedure BrowserTabPopupMenuPopup(Sender: TObject);
834 yoffy 1.216 procedure MenuToolBarResize(Sender: TObject);
835     procedure StdToolBarResize(Sender: TObject);
836     procedure LinkToolBarResize(Sender: TObject);
837     procedure ListNameToolBarResize(Sender: TObject);
838     procedure ListToolBarResize(Sender: TObject);
839     procedure BrowserNameToolBarResize(Sender: TObject);
840     procedure BrowserToolBarResize(Sender: TObject);
841     procedure BrowserTabResize(Sender: TObject);
842 hi_ 1.1 private
843     { Private 鐃緒申鐃緒申 }
844 h677 1.182 //RoundList : TRoundList;
845 hi_ 1.1 FSortIndex: Integer;
846     FSortOrder: Boolean;
847    
848     FEnabledCloseButton: Boolean;
849     // ThreadCreate: TThreadCreate;
850    
851     FClickNode: TTreeNode;
852     FHttpState: Boolean;
853     FHint: TResPopup;
854     FPreviewBrowser: TPreviewBrowser;
855     FPreviewURL: string;
856    
857     FBrowserSizeHeight: Integer;
858     FBrowserSizeWidth: Integer;
859    
860     // FFavorite: TFavorite;
861     FBrowserComplete: Boolean;
862     FTabHintIndex: Integer;
863     FListStyle: TViewStyle; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
864     FItemNoVisible: Boolean; //鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?
865     FViewType: TGikoViewType; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?
866 yoffy 1.123 FActiveList: TObject;
867 hi_ 1.1 FActiveContent: TThreadItem; //
868 yoffy 1.133 FActiveBBS : TBBS;
869 hi_ 1.1 FHistoryList: TList; //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
870     FTreeType: TGikoTreeType;
871     FWorkCount: Integer;
872     FNameCookie: string;
873     FMailCookie: string;
874     // FLastRoundTime: TDateTime;
875     BrowserNullTab: TThreadItem;
876     // DoubleClickOccurred: array [TMouseButton] of Boolean;
877     FDownloadTitle: string; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
878     FDownloadMax: Integer; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?
879     FEvent: THTMLDocumentEventSink;//鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?
880 h677 1.14
881 h677 1.192 // Fkeynum : Integer; //鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
882 yoffy 1.29
883 yoffy 1.51 IsDraggingSelectComboBox : Boolean;
884     DraggingSelectComboBoxPosition : TPoint;
885 yoffy 1.29
886 yoffy 1.54 FSearchDialog: TSearchDialog;
887 yoffy 1.49
888 yoffy 1.100 FDropSpaceNode: TTreeNode;
889 yoffy 1.74
890 yoffy 1.107 FDragTime : Cardinal; //鐃緒申鐃緒申鐃?鐃緒申D&D鐃?
891     FDragButton : TToolButton; //鐃緒申鐃緒申鐃?鐃緒申D&D鐃?鐃緒申Drag鐃緒申鐃緒申鐃緒申Button鐃緒申鐃緒申
892     FDragWFirst : Boolean; //WebTab鐃緒申D&D鐃?
893 h677 1.84
894 yoffy 1.143 FListViewBackGroundColor : TColor; //ListView鐃緒申BackGroundColor
895     FUseOddResOddColor : Boolean; //鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申
896     FOddColor : TColor; //鐃緒申鐃緒申鐃?
897 yoffy 1.152
898     FSelectResWord : string; // 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?
899 yoffy 1.216 FIsIconiced : Boolean; // 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
900     FOldFormWidth : Integer; // 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
901 yoffy 1.123 procedure SetBoardTreeNode( inBBS : TBBS );
902     function SetCategoryListItem(ABBS2ch: TBBS): Integer;
903 hi_ 1.1 function SetBoardListItem(Category: TCategory): Integer;
904     function SetThreadListItem(Board: TBoard): Integer;
905     // function GetRoundName(index: integer): string;
906    
907     procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
908     procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
909     procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer);
910     procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
911     procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
912    
913     procedure SetActiveList(Obj: TObject);
914     procedure ListClick;
915     procedure ListDoubleClick;
916     procedure BrowserMovement(AName: string);
917     procedure SelectListItem(List: TList);
918     // procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);
919     procedure DeleteTab(ThreadItem: TThreadItem);
920     function Hook(var Message: TMessage): Boolean;
921     procedure AddRoundNameMenu(MenuItem: TMenuItem);
922 h677 1.188 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
923     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
924 hi_ 1.1 procedure SetSelectRoundName(Sender: TObject);
925     function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
926    
927     procedure SetMenuFont;
928     // procedure CreateFavMenu(Folder: TFavoriteFolder);
929     procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
930 yoffy 1.62 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
931     procedure FavoriteClick(Sender: TObject); overload;
932 yoffy 1.100 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
933 yoffy 1.2 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
934 hi_ 1.1 function OnDocumentContextMenu(Sender: TObject): WordBool;
935     // function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;
936 yoffy 1.123 procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);
937 hi_ 1.1 procedure ShowTextPopup;
938     //procedure ShowTextPopup(HintData: THintData);
939 yoffy 1.2 // procedure SetStdToolBar;
940     // function GetAction(ActionName: string): TContainedAction;
941 hi_ 1.1 procedure SetLinkBar;
942 h677 1.215 procedure ClearLinkBar;
943 hi_ 1.1 function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
944 yoffy 1.2 procedure MenuBarChevronMenu;
945     procedure LinkBarChevronMenu;
946     procedure ToolBarChevronMenu(ToolBar: TToolBar);
947 yoffy 1.51 procedure ModifySelectList;
948 yoffy 1.100 procedure FavoriteBrowseFolder( node: TTreeNode );
949     procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
950     procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
951     procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
952     procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
953 yoffy 1.85 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
954 yoffy 1.72 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
955 yoffy 1.100 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
956     procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
957 yoffy 1.72 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
958 yoffy 1.100 //
959 yoffy 1.143 procedure BrowserTabClick(Sender: TObject);
960     procedure SetListViewBackGroundColor(value: TColor);
961 yoffy 1.123 procedure BBSMenuItemOnClick( Sender : TObject );
962 h677 1.185 //
963     procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
964 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
965     procedure SaveCoolBarSettings;
966     // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
967     procedure LoadCoolBarSettings;
968     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
969     procedure OnMinimize;
970     // CoolBar 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
971     procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
972    
973 hi_ 1.1 protected
974     procedure CreateParams(var Params: TCreateParams); override;
975 yoffy 1.2 procedure WndProc(var Message: TMessage); override;
976 hi_ 1.1 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
977     procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
978     procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
979 yoffy 1.216
980 hi_ 1.1 public
981     { Public 鐃緒申鐃緒申 }
982     // FDownload: TDownload;
983     FControlThread: TThreadControl;
984 yoffy 1.48 procedure MoveToURL(URL: string);
985     procedure InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);
986 hi_ 1.1 procedure ReloadBBS;
987     function GetHttpState: Boolean;
988     procedure SetEnabledCloseButton(Enabled: Boolean);
989     function GetTreeNode(Data: TObject): TTreeNode;
990     procedure AppFormDeactivate(Sender: TObject);
991     // procedure CabinetPanelVisible(PanelVisible: Boolean);
992     procedure ListViewAllSelect;
993    
994     property ListStyle: TViewStyle read FListStyle write FListStyle;
995     property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
996     property ViewType: TGikoViewType read FViewType write FViewType;
997    
998     property NameCookie: string read FNameCookie write FNameCookie;
999     property MailCookie: string read FMailCookie write FMailCookie;
1000    
1001     procedure SetContent(ThreadItem: TThreadItem);
1002     function GetActiveContent: TThreadItem;
1003     function GetActiveList: TObject;
1004    
1005     property ActiveList: TObject read GetActiveList write SetActiveList;
1006     // property LastRoundTime: TDateTime read FLastRoundTime write FLastRoundTime;
1007    
1008     procedure SetListViewType(AViewType: TGikoViewType); overload;
1009     procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
1010     procedure DownloadContent(ThreadItem: TThreadItem);
1011     procedure DownloadList(Board: TBoard);
1012     procedure PlaySound(SoundEventName: string);
1013    
1014 yoffy 1.136 function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
1015     procedure DeleteHistory( threadItem: TThreadItem );
1016 hi_ 1.1 procedure ClearHistory;
1017 yoffy 1.135 procedure SaveHistory;
1018     procedure LoadHistory;
1019 yoffy 1.123 procedure ShowBBSTree( inBBS : TBBS );
1020 hi_ 1.1 procedure ShowHistoryTree;
1021     procedure SetHistoryTreeNode;
1022     // procedure SelectTreeNode(Item: TObject);
1023     procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
1024     procedure SetBrowserTabState;
1025     // property Favorite: TFavorite read FFavorite write FFavorite;
1026 yoffy 1.2 procedure SetToolBarPopup;
1027 yoffy 1.100 procedure ShowFavoriteAddDialog( Item : TObject );
1028 h677 1.189 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
1029 h677 1.226 procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
1030 yoffy 1.143 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
1031     property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
1032     property OddColor : TColor read FOddColor write FOddColor;
1033 h677 1.109
1034 yoffy 1.209 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
1035 yoffy 1.218 procedure OnPlugInMenuItem( Sender : TObject );
1036 yoffy 1.209
1037 hi_ 1.1 published
1038     property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1039     end;
1040    
1041     TFavoriteMenuItem = class(TMenuItem)
1042     private
1043     FData : Pointer;
1044     public
1045     property Data: Pointer read FData write FData;
1046     end;
1047    
1048 yoffy 1.123 TBBSMenuItem = class(TMenuItem)
1049     private
1050     FData : Pointer;
1051     public
1052     property Data: Pointer read FData write FData;
1053     end;
1054    
1055 hi_ 1.1 TLinkToolButton = class(TToolButton)
1056     private
1057     FData : Pointer;
1058     public
1059     property Data: Pointer read FData write FData;
1060     end;
1061    
1062     var
1063     GikoForm: TGikoForm;
1064    
1065     implementation
1066    
1067     uses
1068     About, Option, Round, Splash, Sort, ListSelect,
1069 h677 1.183 NewBoard, MojuUtils,Clipbrd;
1070 hi_ 1.1
1071     const
1072     CAPTION_NAME: string = '鐃?鐃?鐃?鐃?';
1073     BLANK_HTML: string = 'about:blank';
1074 yoffy 1.51 SELECTCOMBOBOX_NAME: string = ''; // '鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申';
1075     SELECTCOMBOBOX_COLOR: TColor = clWindow;
1076 yoffy 1.120 //D&D鐃緒申鐃?
1077     DandD_THRESHOLD = 5; //D&D鐃緒申鐃緒申鐃?鐃?pixcel)
1078 yoffy 1.2 //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1079     ITEM_ICON_2CH1 = 0; //2ch鐃?鐃?鐃?鐃緒申
1080     ITEM_ICON_2CH2 = 1; //2ch鐃?鐃?鐃?鐃緒申
1081     ITEM_ICON_CATEGORY1 = 2; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1082     ITEM_ICON_CATEGORY2 = 3; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1083 yoffy 1.120 ITEM_ICON_BOARD_NOSUBJECT = 3; //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1084 yoffy 1.2 ITEM_ICON_BOARD1 = 4; //鐃緒申鐃?鐃?鐃?鐃緒申
1085     ITEM_ICON_BOARD2 = 5; //鐃緒申鐃?鐃?鐃?鐃緒申
1086     ITEM_ICON_THREADLOG1 = 6; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1087     ITEM_ICON_THREADLOG2 = 7; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1088     ITEM_ICON_THREAD1 = 8; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1089     ITEM_ICON_THREAD2 = 9; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1090     ITEM_ICON_THREADNEW1 = 10; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1091     ITEM_ICON_THREADNEW2 = 11; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1092     ITEM_ICON_SORT1 = 12; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1093     ITEM_ICON_SORT2 = 13; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1094 yoffy 1.120 ITEM_ICON_BOARD_LOG = 17; //鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1095     ITEM_ICON_BOARD_NEW = 18; //鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1096 yoffy 1.2
1097     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1098 yoffy 1.48 TOOL_ICON_HEIGHT_MAX = 16; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1099     TOOL_ICON_HEIGHT_MIN = 17; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1100     TOOL_ICON_HEIGHT_NORMAL = 18; //鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1101     TOOL_ICON_WIDTH_MAX = 19; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1102     TOOL_ICON_WIDTH_MIN = 20; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1103     TOOL_ICON_WIDTH_NORMAL = 21; //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1104    
1105 yoffy 1.51 TOOL_ICON_FAV_FOLDER = 30; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申
1106 yoffy 1.100 TOOL_ICON_FAV_BOARD = 31; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1107 yoffy 1.51 TOOL_ICON_FAV_THREAD = 32; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1108 hi_ 1.1
1109     HTML_FILE_NAME = 'temp_preview.html';
1110    
1111     {$R *.DFM}
1112    
1113     procedure TGikoForm.CreateParams(var Params: TCreateParams);
1114     begin
1115     inherited;
1116     if FormStyle in [fsNormal, fsStayOnTop] then begin
1117     if BorderStyle in [bsSingle, bsSizeable] then begin
1118     Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
1119     Params.WndParent := 0;
1120     end;
1121     end;
1122     end;
1123    
1124     procedure TGikoForm.FormCreate(Sender: TObject);
1125     const
1126     TVS_NOTOOLTIPS = $0080;
1127     var
1128     FileName: string;
1129     Style: DWORD;
1130     msg: string;
1131     i: Integer;
1132     wp: TWindowPlacement;
1133 hi_ 1.32 s: string;
1134 yoffy 1.123 item : TBBSMenuItem;
1135 hi_ 1.1 begin
1136     {$IFDEF DEBUG}
1137     AllocConsole;
1138     Writeln('============================================================');
1139     Writeln(' 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃? 鐃?鐃緒申鐃?鐃?鐃緒申');
1140     Writeln('');
1141     Writeln(' 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
1142     Writeln(' 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
1143     Writeln('============================================================');
1144     {$ENDIF}
1145     Application.OnDeactivate := AppFormDeactivate;
1146     Self.OnDeactivate := AppFormDeactivate;
1147     Application.HookMainWindow(Hook);
1148    
1149     FTreeType := gttNone;
1150    
1151 yoffy 1.51 FSearchDialog := nil;
1152 yoffy 1.49
1153 yoffy 1.216 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1154     FIsIconiced := True;
1155    
1156 hi_ 1.1 //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1157     Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
1158    
1159    
1160     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1161     AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1162    
1163 yoffy 1.135 // 鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?(ReadBoardFile, LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1164 yoffy 1.107 InitializeBoardPlugIns;
1165 yoffy 1.105
1166 hi_ 1.1 EnabledCloseButton := True;
1167 h677 1.176
1168    
1169     //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1170     RoundList := TRoundList.Create;
1171     RoundList.LoadRoundBoardFile;
1172    
1173 yoffy 1.210 // 鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申(ReadFavorite 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1174     GikoSys.ListBoardFile;
1175 h677 1.176
1176     RoundList.LoadRoundThreadFile;
1177    
1178 h677 1.181 if RoundList.OldFileRead or ( RoundList.Count[grtItem] > 0 ) then
1179 yoffy 1.210 GikoSys.ListBoardFile;
1180 h677 1.176
1181 yoffy 1.123 // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1182     for i := Length( BBSs ) - 1 downto 0 do begin
1183 yoffy 1.126 try
1184     item := TBBSMenuItem.Create( PopupMenu );
1185     item.Caption := BBSs[ i ].Title;
1186     item.Data := BBSs[ i ];
1187     item.OnClick := BBSMenuItemOnClick;
1188     CabinetSelectPopupMenu.Items.Insert( 0, item );
1189     item := TBBSMenuItem.Create( PopupMenu );
1190     item.Caption := BBSs[ i ].Title;
1191     item.Data := BBSs[ i ];
1192     item.OnClick := BBSMenuItemOnClick;
1193     CabinetMenu.Insert( 0, item );
1194 yoffy 1.209 item := TBBSMenuItem.Create( PopupMenu );
1195     item.Caption := BBSs[ i ].Title;
1196     item.Data := BBSs[ i ];
1197     item.OnClick := BBSMenuItemOnClick;
1198     BBSSelectPopupMenu.Items.Insert( 0, Item );
1199 yoffy 1.126 except
1200     end;
1201 yoffy 1.123 end;
1202    
1203 h677 1.176
1204 yoffy 1.135 // 鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?(LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1205     FHistoryList := TList.Create;
1206    
1207     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1208     LoadHistory;
1209    
1210 yoffy 1.123 //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1211     // FFavorite := TFavorite.Create(FavoriteTreeView);
1212     FavoriteDM.SetFavTreeView(FavoriteTreeView);
1213     FavoriteDM.ReadFavorite;
1214 hi_ 1.1
1215     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1216     ListView.ViewStyle := GikoSys.Setting.ListStyle;
1217    
1218     //鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1219     // MainCoolBar.Top := 0;
1220     // MainCoolBar.Left := 0;
1221    
1222     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?
1223     AnimePanel.Top := 0;
1224     AnimePanel.Left := 0;
1225    
1226     //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1227    
1228     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1229     CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
1230    
1231     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
1232     MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
1233     MsgBarVisibleActionExecute(nil);
1234     MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
1235    
1236     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1237     StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
1238     StatusBarVisibleActionExecute(nil);
1239    
1240     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
1241     TreeView.Items.BeginUpdate;
1242 yoffy 1.100 FavoriteTreeView.Items.BeginUpdate;
1243 hi_ 1.1 ListView.Items.BeginUpdate;
1244     try
1245     TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1246     TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1247     TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1248     TreeView.Color := GikoSys.Setting.CabinetBackColor;
1249    
1250 yoffy 1.67 FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1251     FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1252     FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1253     FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1254    
1255 hi_ 1.1 ListView.Font.Name := GikoSys.Setting.ListFontName;
1256     ListView.Font.Size := GikoSys.Setting.ListFontSize;
1257     ListView.Font.Color := GikoSys.Setting.ListFontColor;
1258 h677 1.109 //ListView.Color := GikoSys.Setting.ListBackColor;
1259 yoffy 1.123 ListViewBackGroundColor := GikoSys.Setting.ListBackColor;
1260     FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
1261     FOddColor := GikoSys.Setting.OddColor;
1262 h677 1.109
1263 hi_ 1.1 finally
1264     TreeView.Items.EndUpdate;
1265 yoffy 1.100 FavoriteTreeView.Items.EndUpdate;
1266 hi_ 1.1 ListView.Items.EndUpdate;
1267     end;
1268     //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
1269     ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
1270    
1271     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
1272     BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1273     BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1274 yoffy 1.133 FDragWFirst := false;
1275 hi_ 1.1
1276     // TreeView.TopItem.Expanded := True; //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1277     // TreeView.Selected := TreeView.Items[0]; //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1278     SetContent(nil); //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1279    
1280     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1281     wp.length := sizeof(wp);
1282     wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1283     wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1284     wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1285     wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1286     wp.showCmd := SW_HIDE;
1287     SetWindowPlacement(Handle, @wp);
1288    
1289 yoffy 1.216 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 2
1290     FIsIconiced := True;
1291 hi_ 1.1 // SetBounds(GikoSys.Setting.WindowLeft, GikoSys.Setting.WindowTop,
1292     // GikoSys.Setting.WindowWidth, GikoSys.Setting.WindowHeight);
1293     if GikoSys.Setting.WindowMax then
1294     WindowState := wsMaximized;
1295    
1296     //鐃?鐃?鐃?鐃?鐃緒申
1297     try
1298     FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1299     if FileExists(FileName) then
1300     Animate.FileName := FileName;
1301     except
1302     end;
1303    
1304     //鐃?鐃?鐃?鐃?
1305     FNameCookie := '';
1306     FMailCookie := '';
1307    
1308     //鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1309     AllItemAction.Checked := True;
1310 yoffy 1.126 AllResAction.Checked := True;
1311 hi_ 1.1
1312     //TreeView鐃緒申鐃緒申鐃緒申鐃?鐃緒申ToolTip鐃緒申鐃緒申鐃?鐃緒申
1313     Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1314     Style := Style or TVS_NOTOOLTIPS;
1315     SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1316    
1317     // 鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1318     TreeView.Align := alClient;
1319 yoffy 1.57 FavoriteTreeView.Align := alClient;
1320 hi_ 1.1 FavoriteTreeView.Visible := False;
1321    
1322     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1323     // FBrowserSizeFlag := False;
1324     // FBrowserSizeHeight := ViewPanel.Height;
1325    
1326     FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1327     FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1328    
1329     ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1330     ArrangeAction.Execute;
1331    
1332     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1333     case GikoSys.Setting.ListWidthState of
1334     glsMax: begin
1335     ViewPanel.Width := 1;
1336 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1337     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1338 hi_ 1.1 end;
1339     glsMin: begin
1340     ViewPanel.Width := GikoSys.Setting.ListWidth;
1341 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1342     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1343 hi_ 1.1 end;
1344     else begin
1345     ViewPanel.Width := GikoSys.Setting.ListWidth;
1346 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1347     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1348 hi_ 1.1 end;
1349     end;
1350     end else begin
1351     case GikoSys.Setting.ListHeightState of
1352     glsMax: begin
1353     ViewPanel.Height := 1;
1354 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1355     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1356 hi_ 1.1 end;
1357     glsMin: begin
1358     ViewPanel.Height := GikoSys.Setting.ListHeight;
1359 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1360     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1361 hi_ 1.1 end;
1362     else begin
1363     ViewPanel.Height := GikoSys.Setting.ListHeight;
1364 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1365     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1366 hi_ 1.1 end;
1367     end;
1368     end;
1369    
1370     //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1371     // ProgressBar.Visible := False;
1372     ProgressBar.Parent := StatusBar;
1373     ProgressBar.Top := 2;
1374     ProgressBar.Left := 0;
1375     ProgressBar.Width := StatusBar.Panels[0].Width;
1376     ProgressBar.Height := StatusBar.Height - 2;
1377     ProgressBar.Position := 0;
1378    
1379     //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1380     FControlThread := TThreadControl.Create(True);
1381     FControlThread.MaxThreadCount := 1;
1382     FControlThread.Resume;
1383     FControlThread.OnDownloadEnd := DownloadEnd;
1384     FControlThread.OnDownloadMsg := DownloadMsg;
1385     FControlThread.OnWork := Work;
1386     FControlThread.OnWorkBegin := WorkBegin;
1387     FControlThread.OnWorkEnd := WorkEnd;
1388     // ProgressPanel.Width := FControlThread.MaxThreadCount * 12;
1389    
1390 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1391     SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1392 yoffy 1.2
1393 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申
1394     SetBrowserTabState;
1395    
1396     BrowserBoardNameLabel.Caption := '';
1397     BrowserNameLabel.Caption := '';
1398     FWorkCount := 0;
1399    
1400     FTabHintIndex := -1;
1401    
1402     //鐃緒申鐃緒申鐃?鐃?鐃?
1403     SetLinkBar;
1404    
1405     //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?
1406     SetMenuFont;
1407    
1408     //鐃?鐃?鐃緒申鐃?鐃?Wrapable
1409     ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1410     BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1411    
1412 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1413     ReadToolBarSetting(ActionList, StdToolBar);
1414     ReadToolBarSetting(ActionList, ListToolBar);
1415 yoffy 1.51 try
1416     for i := ListToolBar.ControlCount - 1 downto 0 do
1417     begin
1418     if ListToolBar.Controls[ i ].Action = SelectItemAction then
1419     begin
1420     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1421     if (i + 1) < ListToolBar.ControlCount then
1422     if ListToolBar.Controls[ i + 1 ] is TToolButton then
1423     if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1424     ListToolBar.Controls[ i + 1 ].Visible := False;
1425    
1426     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申
1427     ListToolBar.Controls[ i ].Visible := False;
1428     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申
1429     SelectComboBox.Left := ListToolBar.Controls[ i ].Left;
1430     SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;
1431     SelectComboBox.Parent := ListToolBar;
1432     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
1433     SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;
1434     SelectComboBoxSplitter.Parent := ListToolBar;
1435    
1436     break;
1437     end;
1438     end;
1439     except
1440     end;
1441 yoffy 1.2 ReadToolBarSetting(ActionList, BrowserToolBar);
1442     SetToolBarPopup;
1443 yoffy 1.126 OnlyAHundredRes.Checked := GikoSys.Setting.OnlyAHundredRes;
1444 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃?
1445     AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1446    
1447 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1448    
1449     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1450     if not FileExists(GikoSys.GetBoardFileName) then begin
1451     msg := '鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申' + #13#10#13#10
1452     + '鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申' + #13#10
1453     + '鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?';
1454     MsgBox(SplashWindow.Handle, msg, '鐃?鐃?鐃?鐃?', MB_OK or MB_ICONINFORMATION);
1455     NewBoardAction.Execute;
1456     end;
1457    
1458     //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1459     GikoSys.LoadKeySetting(ActionList);
1460    
1461     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1462     // FLastRoundTime := 0;
1463    
1464     //ResHint
1465     FHint := TResPopup.Create(Self);
1466    
1467 yoffy 1.100 // 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1468 yoffy 1.140 CabinetVisible( False );
1469 yoffy 1.141 if GikoSys.Setting.CabinetVisible then begin
1470     i := CabinetSelectPopupMenu.Items.Count - 1;
1471     if GikoSys.Setting.CabinetIndex = i - 1 then
1472     CabinetHistoryAction.Execute
1473     else if GikoSys.Setting.CabinetIndex = i then
1474     CabinetFavoriteAction.Execute
1475     else begin
1476     if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1477     ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1478     CabinetBBSAction.Execute;
1479     end;
1480     end else begin
1481     ShowBBSTree( BBSs[ 0 ] );
1482     end;
1483 yoffy 1.67
1484 yoffy 1.2 //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1485     if GikoSys.Setting.AutoLogin then
1486     LoginAction.Execute;
1487    
1488     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?
1489     for i := 1 to ParamCount do begin
1490     MoveToURL(ParamStr(i));
1491     end;
1492     // SetStdToolBar;
1493     // SetLinkBar;
1494 h677 1.22
1495 hi_ 1.32 s := GikoSys.FAbon.NGwordname;
1496     StatusBar.Panels[2].Text := s;
1497     StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
1498     StatusBarResize(Sender);
1499 h677 1.187
1500     dummy1.Caption := ItemReservPMenu.Caption;
1501     dummy1.Hint := ItemReservPMenu.Hint;
1502 yoffy 1.216
1503 h677 1.226 //Samba24鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?
1504     GikoSys.SambaFileExists();
1505 yoffy 1.2 end;
1506    
1507 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1508     procedure TGikoForm.SaveCoolBarSettings;
1509 yoffy 1.2 var
1510 yoffy 1.216 i : Integer;
1511     CoolSet : TCoolSet;
1512 yoffy 1.2 begin
1513    
1514 yoffy 1.216 if IsIconic( GikoForm.Handle ) or FIsIconiced then
1515     Exit;
1516 yoffy 1.2
1517 yoffy 1.216 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1518     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1519     CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1520     CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1521     CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1522     GikoSys.Setting.MainCoolSet[i] := CoolSet;
1523     end;
1524     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1525     for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1526     CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1527     CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1528     CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1529     GikoSys.Setting.ListCoolSet[i] := CoolSet;
1530     end;
1531     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1532     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1533     CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1534     CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1535     CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1536     GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1537 yoffy 1.2 end;
1538    
1539 yoffy 1.216 end;
1540 yoffy 1.2
1541 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1542     procedure TGikoForm.LoadCoolBarSettings;
1543     var
1544     i : Integer;
1545     CoolSet : TCoolSet;
1546     begin
1547 yoffy 1.2
1548 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1549     MainCoolBar.Bands.BeginUpdate;
1550     try
1551 yoffy 1.216 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1552     for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1553 hi_ 1.1 CoolSet := GikoSys.Setting.MainCoolSet[i];
1554     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1555     Continue;
1556     MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1557     MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1558     MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1559     end;
1560     finally
1561     MainCoolBar.Bands.EndUpdate;
1562     end;
1563    
1564     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1565     ListCoolBar.Bands.BeginUpdate;
1566     try
1567 yoffy 1.216 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1568     for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1569 hi_ 1.1 CoolSet := GikoSys.Setting.ListCoolSet[i];
1570     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1571     Continue;
1572     ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1573     ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1574     ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1575     end;
1576     finally
1577     ListCoolBar.Bands.EndUpdate;
1578     end;
1579    
1580     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1581     BrowserCoolBar.Bands.BeginUpdate;
1582     try
1583 yoffy 1.216 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1584     for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1585 hi_ 1.1 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1586     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1587     Continue;
1588     BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1589     BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1590     BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1591     end;
1592     finally
1593     BrowserCoolBar.Bands.EndUpdate;
1594     end;
1595    
1596     end;
1597 yoffy 1.216
1598     //
1599     //
1600     //
1601     procedure TGikoForm.FormShow(Sender: TObject);
1602     begin
1603     ShowWindow(Application.Handle, SW_HIDE);
1604    
1605     //FormCreate鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1606     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1607     StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1608     StdToolBarVisibleActionExecute( nil );
1609     AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1610     AddressBarVisibleActionExecute( nil );
1611     LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1612     LinkBarVisibleActionExecute( nil );
1613     ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1614     ListToolBarVisibleActionExecute( nil );
1615     ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1616     ListNameBarVisibleActionExecute( nil );
1617     BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1618     BrowserToolBarVisibleActionExecute( nil );
1619     BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1620     BrowserNameBarVisibleActionExecute( nil );
1621    
1622     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1623     BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1624     BrowserTabVisibleActionExecute(nil);
1625    
1626     if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1627     BrowserTabTopAction.Checked := True;
1628     BrowserTabTopActionExecute(nil);
1629     end else begin
1630     BrowserTabBottomAction.Checked := True;
1631     BrowserTabBottomActionExecute(nil);
1632     end;
1633    
1634     if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1635     BrowserTabTabStyleAction.Checked := True;
1636     BrowserTabTabStyleActionExecute(nil);
1637     end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1638     BrowserTabButtonStyleAction.Checked := True;
1639     BrowserTabButtonStyleActionExecute(nil);
1640     end else begin
1641     BrowserTabFlatStyleAction.Checked := True;
1642     BrowserTabFlatStyleActionExecute(nil);
1643     end;
1644    
1645     // CoolBar 鐃緒申鐃緒申
1646     LoadCoolBarSettings;
1647    
1648     end;
1649 hi_ 1.1 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1650     var
1651     i: Integer;
1652     CoolSet: TCoolSet;
1653     wp: TWindowPlacement;
1654     begin
1655 yoffy 1.100 if ( GikoSys.Setting.ShowDialogForEnd ) and
1656     (MessageDlg('鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1657     CanClose := false;
1658     Exit;
1659     end else begin
1660     CanClose := True;
1661     end;
1662 h677 1.181 // Application.OnDeactivate := nil;
1663     // Self.OnDeactivate := nil;
1664 hi_ 1.1
1665 yoffy 1.2 //column鐃緒申
1666 yoffy 1.123 if GetActiveList is TBBS then begin
1667 yoffy 1.2 for i := 0 to ListView.Columns.Count - 1 do
1668     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
1669     end else if GetActiveList is TCategory then begin
1670     for i := 0 to ListView.Columns.Count - 1 do
1671     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
1672     end else if GetActiveList is TBoard then begin
1673     for i := 0 to ListView.Columns.Count - 1 do
1674     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
1675     end;
1676    
1677     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1678     wp.length := sizeof(wp);
1679     GetWindowPlacement(Handle, @wp);
1680     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1681     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1682     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1683     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1684     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1685    
1686     GikoSys.Setting.ListStyle := ListView.ViewStyle;
1687     GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1688     GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1689     GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1690     GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1691     if ArrangeAction.Checked then
1692     GikoSys.Setting.ListOrientation := gloVertical
1693     else
1694     GikoSys.Setting.ListOrientation := gloHorizontal;
1695     GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1696    
1697 yoffy 1.216 // 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申 CoolBar 鐃緒申鐃緒申
1698     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1699 h677 1.223 {
1700 yoffy 1.216 // CoolBar 鐃緒申鐃緒申
1701     SaveCoolBarSettings;
1702 h677 1.223 }
1703 hi_ 1.1
1704 yoffy 1.2 GikoSys.Setting.WriteWindowSettingFile;
1705     GikoSys.Setting.WriteNameMailSettingFile;
1706    
1707     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1708 hi_ 1.1 try
1709 yoffy 1.2 FavoriteDM.WriteFavorite;
1710 hi_ 1.1 except
1711     end;
1712 yoffy 1.2 // Favorite.Free;
1713 hi_ 1.1
1714     try
1715     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1716     NotSelectTabCloseAction.Execute;
1717     if BrowserTab.Tabs.Count >= 1 then begin
1718     DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1719     end;
1720     except
1721     end;
1722    
1723 h677 1.224 try
1724     TreeView.Items.BeginUpdate;
1725     for i := TreeView.Items.Count - 1 downto 0 do begin
1726     TreeView.Items[i].Free;
1727     end;
1728     TreeView.Items.Clear;
1729     TreeView.Items.EndUpdate;
1730     except
1731    
1732     end;
1733 yoffy 1.135 //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
1734     try
1735     SaveHistory;
1736 h677 1.227 ClearHistory;
1737 yoffy 1.135 except
1738     end;
1739    
1740 yoffy 1.125
1741 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1742     try
1743     AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1744     except
1745     end;
1746    
1747     try
1748     FControlThread.Terminate;
1749 h677 1.228 FControlThread.WaitFor;
1750     FControlThread.Free;
1751 hi_ 1.1 except
1752     end;
1753    
1754 h677 1.181
1755 hi_ 1.1 // FDownload.Free;
1756     try
1757 h677 1.181 //SetActiveList(nil);
1758 hi_ 1.1 except
1759     end;
1760 h677 1.221 try
1761     ClearLinkBar;
1762     except
1763     end;
1764 yoffy 1.124
1765 hi_ 1.1 //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1766 h677 1.170 //Sleep(10);
1767 h677 1.219 //Application.ProcessMessages;
1768 h677 1.224 { FavoriteDM鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1769 h677 1.215 try
1770 h677 1.220 FavoriteTreeView.Items.BeginUpdate;
1771 h677 1.219 for i := FavoriteTreeView.Items.Count - 1 downto 0 do begin
1772     TObject(FavoriteTreeView.Items.Item[i].Data).Free;
1773     FavoriteTreeView.Items.Item[i].Free;
1774     end;
1775 h677 1.220 FavoriteTreeView.Items.EndUpdate;
1776 h677 1.215 FavoriteTreeView.Items.Clear;
1777     except
1778     end;
1779 h677 1.224 }
1780 hi_ 1.1 try
1781     if FavoriteDM <> nil then
1782     FavoriteDM.Free;
1783     FavoriteDM := nil;
1784     if AddressHistoryDM <> nil then
1785     AddressHistoryDM.Free;
1786     AddressHistoryDM := nil;
1787     except
1788     end;
1789 h677 1.221
1790    
1791 h677 1.182 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申&鐃?鐃緒申
1792     try
1793     RoundList.SaveRoundFile;
1794     except
1795     end;
1796    
1797     try
1798 h677 1.219
1799 h677 1.182 RoundList.Clear;
1800     except
1801     end;
1802     try
1803 h677 1.188 RoundList.Free;
1804 h677 1.182 except
1805     end;
1806 yoffy 1.125
1807 h677 1.219
1808     try
1809     for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
1810     if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
1811     CabinetSelectPopupMenu.Items[ i ].Free;
1812     CabinetMenu.Items[ i ].Free;
1813     end;
1814     end;
1815     except
1816     end;
1817 yoffy 1.155 // TBBS 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 TCategory, TBoard, TThreadItem 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1818     // TBoard, TThreadItem 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1819     // BoardPluteIns 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1820 yoffy 1.126 try
1821 h677 1.220 for i := Length( BBSs ) - 1 downto 0 do begin
1822 h677 1.153 if BBSs[ i ] <> nil then
1823     BBSs[ i ].Free;
1824     BBSs[ i ] := nil;
1825     end;
1826     except
1827     end;
1828 yoffy 1.155
1829 h677 1.153 try
1830 h677 1.220 for i := Length( BoardPlugIns ) - 1 downto 0 do begin
1831 yoffy 1.126 if BoardPlugIns[ i ] <> nil then
1832     BoardPlugIns[ i ].Free;
1833     BoardPlugIns[ i ] := nil;
1834     end;
1835     except
1836     end;
1837 yoffy 1.124
1838 h677 1.181
1839 yoffy 1.2 try
1840     //Hint鐃?鐃緒申
1841     if FHint <> nil then begin
1842     FHint.ReleaseHandle;
1843     FHint.Free;
1844     FHint := nil;
1845     end;
1846     //Preview鐃?鐃緒申
1847     if TPreviewBrowser <> nil then begin
1848     FPreviewBrowser.Free;
1849     FPreviewBrowser := nil;
1850     end;
1851     except
1852     end;
1853 h677 1.193
1854 h677 1.224 Application.Terminate;
1855 hi_ 1.1 end;
1856    
1857     procedure TGikoForm.FormDestroy(Sender: TObject);
1858     begin
1859 h677 1.181 ;
1860 hi_ 1.1 end;
1861    
1862     //鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1863     procedure TGikoForm.FormClose(Sender: TObject; var Action: TCloseAction);
1864     begin
1865 h677 1.181 // ListCoolBar.WindowProc := nil;
1866     // BrowserCoolBar.WindowProc := nil;
1867     // MainCoolBar.WindowProc := nil;
1868 h677 1.224 // Application.Terminate;
1869     // Action := caFree;
1870 h677 1.181 // Application.UnhookMainWindow(Hook);
1871 hi_ 1.1 end;
1872    
1873     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1874     procedure TGikoForm.CabinetPanelHide(Sender: TObject);
1875     begin
1876     CabinetVisibleAction.Execute;
1877     // CabinetPanelVisible(false);
1878     end;
1879    
1880     procedure TGikoForm.ReloadBBS;
1881 yoffy 1.123 var
1882     i : Integer;
1883 yoffy 1.149 item : TBBSMenuItem;
1884 hi_ 1.1 begin
1885     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1886     NotSelectTabCloseAction.Execute;
1887     if BrowserTab.Tabs.Count >= 1 then
1888     DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1889     //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
1890 yoffy 1.135 //FHistoryList.Clear;
1891 hi_ 1.1 //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1892     TreeView.Items.Clear;
1893    
1894     //BBS鐃?鐃緒申
1895 yoffy 1.146 try
1896     for i := Length( BBSs ) - 1 downto 0 do begin
1897     if BBSs[ i ] <> nil then
1898     BBSs[ i ].Free;
1899     BBSs[ i ] := nil;
1900     end;
1901     except
1902 yoffy 1.126 end;
1903 hi_ 1.1
1904 yoffy 1.123 ActiveList := nil;
1905 hi_ 1.1
1906     FTreeType := gttNone;
1907    
1908 yoffy 1.210 GikoSys.ListBoardFile; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1909 yoffy 1.148 // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1910     for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
1911     try
1912     if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
1913 yoffy 1.155 CabinetSelectPopupMenu.Items[ i ].Free;
1914     CabinetMenu.Items[ i ].Free;
1915 yoffy 1.148 end;
1916     except
1917     end;
1918     end;
1919     // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1920     for i := Length( BBSs ) - 1 downto 0 do begin
1921     try
1922     item := TBBSMenuItem.Create( PopupMenu );
1923     item.Caption := BBSs[ i ].Title;
1924     item.Data := BBSs[ i ];
1925     item.OnClick := BBSMenuItemOnClick;
1926     CabinetSelectPopupMenu.Items.Insert( 0, item );
1927     item := TBBSMenuItem.Create( PopupMenu );
1928     item.Caption := BBSs[ i ].Title;
1929     item.Data := BBSs[ i ];
1930     item.OnClick := BBSMenuItemOnClick;
1931     CabinetMenu.Insert( 0, item );
1932     except
1933     end;
1934     end;
1935 yoffy 1.123 ShowBBSTree( BBSs[ 0 ] );
1936 yoffy 1.143
1937     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1938 yoffy 1.146 SaveHistory;
1939 h677 1.219 {
1940 yoffy 1.146 try
1941 h677 1.219 for i := FHistoryList.Count - 1 downto 0 do begin
1942 yoffy 1.146 TFavoriteThreadItem( FHistoryList[ i ] ).Free;
1943 h677 1.219 FHistoryList.Delete(i);
1944     end;
1945    
1946 yoffy 1.146 except
1947     end;
1948     FHistoryList.Clear;
1949 h677 1.219 FHistoryList.Capacity := FHistoryList.Count;
1950     }
1951     ClearHistory;
1952 yoffy 1.143 LoadHistory;
1953    
1954     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1955     // FFavorite := TFavorite.Create(FavoriteTreeView);
1956 h677 1.224 //FavoriteTreeView.Items.Clear;
1957     FavoriteDM.DataModuleDestroy(Self);
1958 yoffy 1.143 FavoriteDM.SetFavTreeView(FavoriteTreeView);
1959     FavoriteDM.ReadFavorite;
1960     SetLinkBar;
1961    
1962 hi_ 1.1 end;
1963    
1964     //鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1965 yoffy 1.123 procedure TGikoForm.SetBoardTreeNode(
1966     inBBS : TBBS
1967     );
1968 hi_ 1.1 var
1969 yoffy 1.120 i, j, k: integer;
1970 hi_ 1.1 Root: TTreeNode;
1971     CategoryNode: TTreeNode;
1972     BoardNode: TTreeNode;
1973     Category: TCategory;
1974     Board: TBoard;
1975     begin
1976 yoffy 1.112 // 鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
1977 yoffy 1.133 FActiveBBS := inBBS;
1978 hi_ 1.1 TreeView.Items.BeginUpdate;
1979     TreeView.Items.Clear;
1980     try
1981 yoffy 1.210 if not inBBS.IsBoardFileRead then
1982     GikoSys.ReadBoardFile( inBBS );
1983 yoffy 1.123 try
1984     if SplashWindow <> nil then
1985 yoffy 1.210 SplashWindow.ProgressBar.Max := inBBS.Count;
1986 yoffy 1.123 except
1987     end;
1988    
1989     Root := TreeView.Items.Add( nil, inBBS.Title );
1990     Root.ImageIndex := ITEM_ICON_2CH1;
1991     Root.SelectedIndex := ITEM_ICON_2CH2;
1992     Root.Data := inBBS;
1993     for i := 0 to inBBS.Count - 1 do begin
1994     Category := TCategory(inBBS.Items[i]);
1995     CategoryNode := TreeView.Items.AddChild(Root, Category.Title);
1996     CategoryNode.Data := Category;
1997     CategoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
1998     CategoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
1999 hi_ 1.1
2000 yoffy 1.123 for j := 0 to Category.Count - 1 do begin
2001     Board := TBoard(Category.Items[j]);
2002     Board.BeginUpdate;
2003     BoardNode := TreeView.Items.AddChild(CategoryNode, Board.Title);
2004     BoardNode.Data := Board;
2005     //if (Board.LastGetTime = 0) or (Board.LastGetTime = ZERO_DATE) then begin
2006     if not Board.IsLogFile then begin
2007     BoardNode.ImageIndex := ITEM_ICON_BOARD_NOSUBJECT;
2008     BoardNode.SelectedIndex := ITEM_ICON_BOARD_NOSUBJECT;
2009     end else begin
2010     BoardNode.ImageIndex := ITEM_ICON_BOARD1;
2011     BoardNode.SelectedIndex := ITEM_ICON_BOARD2;
2012     for k := 0 to Board.Count - 1 do begin
2013     if Board.Items[ k ].IsLogFile then begin
2014     BoardNode.ImageIndex := ITEM_ICON_BOARD_LOG;
2015     BoardNode.SelectedIndex := ITEM_ICON_BOARD_LOG;
2016 yoffy 1.120
2017 yoffy 1.123 Break;
2018 yoffy 1.120 end;
2019     end;
2020 yoffy 1.112 end;
2021 yoffy 1.123 Board.EndUpdate;
2022     end;
2023 hi_ 1.1
2024 yoffy 1.123 CategoryNode.Expanded := Category.NodeExpand;
2025 hi_ 1.1
2026 yoffy 1.123 if SplashWindow <> nil then begin
2027     SplashWindow.ProgressBar.StepIt;
2028     Application.ProcessMessages;
2029 hi_ 1.1 end;
2030     end;
2031     finally
2032     TreeView.Items.EndUpdate;
2033     end;
2034     end;
2035    
2036 yoffy 1.123 function TGikoForm.SetCategoryListItem(ABBS2ch: TBBS): Integer;
2037 hi_ 1.1 const
2038     COLUMN: array[0..0] of string = ('鐃?鐃?鐃?鐃緒申鐃緒申');
2039     var
2040     ListColumn: TListColumn;
2041     i: Integer;
2042     begin
2043     ListView.Items.BeginUpdate;
2044     try
2045     Screen.Cursor := crHourGlass;
2046    
2047     ListView.Columns.Clear;
2048     for i := 0 to Length(COLUMN) - 1 do begin
2049     ListColumn := ListView.Columns.Add;
2050     ListColumn.Caption := COLUMN[i];
2051     ListColumn.Width := GikoSys.Setting.BBSColumnWidth[i];
2052     end;
2053    
2054     ListView.Items.Count := 0;
2055     ListView.Items.Clear;
2056     ListView.Items.Count := ABBS2ch.Count;
2057    
2058     // UpFolderAction.Enabled := False;
2059     // AllItemAction.Enabled := False;
2060     // LogItemAction.Enabled := False;
2061     // NewItemAction.Enabled := False;
2062     // SelectItemAction.Enabled := False;
2063     // ListDownloadToolButton.Enabled := False;
2064     // BoardReservToolButton.Enabled := False;
2065     // ListThreadDownloadToolButton.Enabled := False;
2066    
2067     ListNameLabel.Caption := ABBS2ch.Title;
2068     FolderImage.Picture := nil;
2069     ItemIcon16.GetBitmap(1, FolderImage.Picture.Bitmap);
2070    
2071 yoffy 1.2 FSortIndex := 0;
2072     FSortOrder := False;
2073     ListViewColumnClick(nil, ListView.Column[0]);
2074    
2075 hi_ 1.1 Result := ABBS2ch.Count;
2076     finally
2077     Screen.Cursor := crDefault;
2078     ListView.Items.EndUpdate;
2079     end;
2080     end;
2081    
2082     function TGikoForm.SetBoardListItem(Category: TCategory): Integer;
2083     const
2084     COLUMN: array[0..2] of string = ('鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申');
2085     var
2086     ListColumn: TListColumn;
2087     i: Integer;
2088     begin
2089     ListView.Items.BeginUpdate;
2090     try
2091     Screen.Cursor := crHourGlass;
2092    
2093     ListView.Columns.Clear;
2094     for i := 0 to Length(COLUMN) - 1 do begin
2095     ListColumn := ListView.Columns.Add;
2096     ListColumn.Caption := COLUMN[i];
2097     ListColumn.Width := GikoSys.Setting.CategoryColumnWidth[i];
2098     end;
2099    
2100     ListView.Items.Count := 0;
2101     ListView.Items.Clear;
2102     ListView.Items.Count := Category.Count;
2103    
2104     // UpFolderAction.Enabled := True;
2105     // AllItemAction.Enabled := False;
2106     // LogItemAction.Enabled := False;
2107     // NewItemAction.Enabled := False;
2108     // SelectItemAction.Enabled := False;
2109     // ListDownloadToolButton.Enabled := False;
2110     // BoardReservToolButton.Enabled := False;
2111     // ListThreadDownloadToolButton.Enabled := False;
2112    
2113     ListNameLabel.Caption := Category.Title;
2114     FolderImage.Picture := nil;
2115     ItemIcon16.GetBitmap(3, FolderImage.Picture.Bitmap);
2116    
2117 yoffy 1.2 FSortIndex := 0;
2118     FSortOrder := False;
2119     ListViewColumnClick(nil, ListView.Column[0]);
2120    
2121 hi_ 1.1 Result := Category.Count;
2122     finally
2123     Screen.Cursor := crDefault;
2124     ListView.Items.EndUpdate;
2125     end;
2126     end;
2127    
2128     function TGikoForm.SetThreadListItem(Board: TBoard): Integer;
2129     const
2130 h677 1.199 COLUMN: array[0..7] of string = ('鐃?鐃緒申鐃?鐃?鐃緒申', '鐃?鐃?鐃緒申鐃?', '鐃緒申鐃緒申', '鐃?鐃緒申',
2131     '鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申', '鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
2132     COLUMN_ALIGNMENT: array[0..7] of TAlignment = (taLeftJustify, taRightJustify,
2133 hi_ 1.1 taRightJustify, taRightJustify,
2134     taRightJustify, taLeftJustify,
2135 h677 1.199 taLeftJustify, taLeftJustify);
2136 hi_ 1.1 //No, 鐃?鐃緒申鐃?鐃?鐃緒申, 鐃?鐃?鐃緒申鐃?, 鐃緒申鐃緒申鐃?鐃緒申, 鐃緒申鐃緒申鐃緒申鐃緒申
2137     var
2138     ListColumn: TListColumn;
2139     i: Integer;
2140     begin
2141     ListView.Items.BeginUpdate;
2142     try
2143     Screen.Cursor := crHourGlass;
2144    
2145 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
2146     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
2147     if ListView.Columns.Count <> (High( COLUMN ) - Low( COLUMN ) + 1) then
2148     begin
2149     ListView.Columns.Clear;
2150     for i := 0 to Length(COLUMN) - 1 do begin
2151     ListColumn := ListView.Columns.Add;
2152     ListColumn.Caption := COLUMN[i];
2153     ListColumn.Width := GikoSys.Setting.BoardColumnWidth[i];
2154     ListColumn.Alignment := COLUMN_ALIGNMENT[i];
2155     end;
2156     end;
2157 hi_ 1.1
2158     ListView.Items.Count := 0;
2159     ListView.Items.Clear;
2160    
2161     case GikoForm.ViewType of
2162     gvtAll: ListView.Items.Count := Board.Count;
2163     gvtLog: ListView.Items.Count := Board.GetLogThreadCount;
2164     gvtNew: ListView.Items.Count := Board.GetNewThreadCount;
2165     gvtUser: ListView.Items.Count := Board.GetUserThreadCount;
2166     end;
2167    
2168     ListNameLabel.Caption := Board.Title;
2169     FolderImage.Picture := nil;
2170     ItemIcon16.GetBitmap(5, FolderImage.Picture.Bitmap);
2171    
2172 yoffy 1.2 FSortIndex := 0;
2173     FSortOrder := False;
2174     ListViewColumnClick(nil, ListView.Column[0]);
2175 hi_ 1.1
2176     Result := Board.Count;
2177     finally
2178     Screen.Cursor := crDefault;
2179     ListView.Items.EndUpdate;
2180     end;
2181     end;
2182    
2183     procedure TGikoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
2184     var
2185     i: Integer;
2186     begin
2187     if FTreeType = gttHistory then begin
2188 yoffy 1.206 if Node <> nil then
2189     if TObject( Node.Data ) is TFavoriteThreadItem then
2190     if GetActiveContent <> TFavoriteThreadItem( Node.Data ).Item then
2191     FavoriteClick( Node );
2192 hi_ 1.1 Exit;
2193     end;
2194    
2195     ListView.Selected := nil;
2196     ListView.Items.Count := 0;
2197     ListView.Items.Clear;
2198     // ListView.Columns.Clear;
2199    
2200     Caption := CAPTION_NAME;
2201     //Application.Title := CAPTION_NAME;
2202    
2203    
2204 yoffy 1.123 if GetActiveList is TBBS then begin
2205 hi_ 1.1 for i := 0 to ListView.Columns.Count - 1 do
2206     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
2207     end else if GetActiveList is TCategory then begin
2208     for i := 0 to ListView.Columns.Count - 1 do
2209     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
2210     end else if GetActiveList is TBoard then begin
2211     for i := 0 to ListView.Columns.Count - 1 do
2212     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
2213     end;
2214    
2215 yoffy 1.123 if TObject(Node.Data) is TBBS then begin
2216 hi_ 1.1 SetActiveList(Node.data);
2217     end else if TObject(Node.Data) is TCategory then begin
2218     SetActiveList(Node.data);
2219     end else if TObject(Node.Data) is TBoard then begin
2220     if not TBoard(Node.Data).IsThreadDatRead then begin
2221     Screen.Cursor := crHourGlass;
2222     try
2223     GikoSys.ReadSubjectFile(TBoard(Node.Data));
2224     finally
2225     Screen.Cursor := crDefault;
2226     end;
2227     end;
2228     SetActiveList(Node.data);
2229     end;
2230     end;
2231    
2232     procedure TGikoForm.ListViewData(Sender: TObject; Item: TListItem);
2233     var
2234     // FileName: string;
2235     // DateTime: TDateTime;
2236     BoardCnt: Integer;
2237 yoffy 1.123 BBS: TBBS;
2238 hi_ 1.1 Category: TCategory;
2239     Board: TBoard;
2240     ThreadItem: TThreadItem;
2241     RepStr: string;
2242 h677 1.170 ActivListObj : TObject;
2243 hi_ 1.1 begin
2244 h677 1.170 ActivListObj := ActiveList;
2245     if ActivListObj is TBBS then begin
2246     BBS := TBBS(ActivListObj);
2247 yoffy 1.114
2248 hi_ 1.1 ListView.StateImages := nil;
2249    
2250     if BBS = nil then Exit;
2251     if BBS.Count <= 0 then Exit;
2252     if Item = nil then Exit;
2253     if Item.Index > BBS.Count then Exit;
2254     if ListView.Items.Count = 0 then Exit;
2255    
2256 h677 1.196 if not (BBS.Items[Item.index] is TCategory) then Exit;
2257     Category := TCategory(BBS.Items[Item.index]);
2258 hi_ 1.1
2259     if Category = nil then Exit;
2260    
2261     if ListNumberVisibleAction.Checked then
2262     Item.Caption := IntToStr(Category.No) + ': ' + Category.Title
2263     else
2264     Item.Caption := Category.Title;
2265    
2266 yoffy 1.2 Item.ImageIndex := ITEM_ICON_CATEGORY1;
2267 hi_ 1.1 Item.Data := Category;
2268 h677 1.170 end else if ActivListObj is TCategory then begin
2269     Category := TCategory(ActivListObj);
2270 hi_ 1.1
2271     ListView.StateImages := nil;
2272    
2273     if Category = nil then Exit;
2274     if Category.Count <= 0 then Exit;
2275     if Item = nil then Exit;
2276     if Item.Index >= Category.Count then Exit;
2277     if ListView.Items.Count = 0 then Exit;
2278    
2279     if not (Category.Items[Item.Index] is TBoard) then Exit;
2280     Board := TBoard(Category.Items[Item.Index]);
2281    
2282     if Board = nil then Exit;
2283