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.234 - (hide annotations) (download) (as text)
Sun Apr 4 14:15:33 2004 UTC (20 years ago) by h677
Branch: MAIN
Changes since 1.233: +75 -128 lines
File MIME type: text/x-pascal
メモリリークの解消
お気に入りで板を開くと何度もReadSubjectFileを読んでたのを抑制

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 h677 1.230 TmpToolBar: TToolBar;
530 hi_ 1.1 procedure FormCreate(Sender: TObject);
531     procedure FormDestroy(Sender: TObject);
532     procedure CabinetPanelHide(Sender: TObject);
533     procedure FormClose(Sender: TObject; var Action: TCloseAction);
534     procedure TreeViewChange(Sender: TObject; Node: TTreeNode);
535     procedure ListViewData(Sender: TObject; Item: TListItem);
536     procedure ListViewDataFind(Sender: TObject; Find: TItemFind;
537     const FindString: String; const FindPosition: TPoint;
538     FindData: Pointer; StartIndex: Integer; Direction: TSearchDirection;
539     Wrap: Boolean; var Index: Integer);
540     procedure ListViewDataHint(Sender: TObject; StartIndex,
541     EndIndex: Integer);
542     procedure ListViewDataStateChange(Sender: TObject; StartIndex,
543     EndIndex: Integer; OldState, NewState: TItemStates);
544     procedure BrowserStatusTextChange(Sender: TObject;
545     const Text: WideString);
546     procedure BrowserTitleChange(Sender: TObject; const Text: WideString);
547     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
548     procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
549     var AllowChange: Boolean);
550     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
551     Shift: TShiftState);
552     procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
553     procedure MenuToolBarCustomDrawButton(Sender: TToolBar;
554     Button: TToolButton; State: TCustomDrawState;
555     var DefaultDraw: Boolean);
556     procedure BrowserBeforeNavigate2(Sender: TObject;
557     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
558     Headers: OleVariant; var Cancel: WordBool);
559     procedure ListViewAdvancedCustomDrawItem(Sender: TCustomListView;
560     Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
561     var DefaultDraw: Boolean);
562     procedure TreeViewCustomDraw(Sender: TCustomTreeView;
563     const ARect: TRect; var DefaultDraw: Boolean);
564     procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
565     Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
566     procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
567     procedure TreeViewDblClick(Sender: TObject);
568 yoffy 1.100 procedure FavoriteTreeViewClick(Sender: TObject);
569 hi_ 1.1 procedure ListViewCustomDraw(Sender: TCustomListView;
570     const ARect: TRect; var DefaultDraw: Boolean);
571     procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
572     Shift: TShiftState; X, Y: Integer);
573     procedure TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
574     procedure MessageListViewResize(Sender: TObject);
575     procedure ExitActionExecute(Sender: TObject);
576     procedure AllSelectActionExecute(Sender: TObject);
577     procedure StdToolBarVisibleActionExecute(Sender: TObject);
578     procedure MsgBarVisibleActionExecute(Sender: TObject);
579     procedure StatusBarVisibleActionExecute(Sender: TObject);
580     procedure LargeIconActionExecute(Sender: TObject);
581     procedure SmallIconActionExecute(Sender: TObject);
582     procedure ListIconActionExecute(Sender: TObject);
583     procedure DetailIconActionExecute(Sender: TObject);
584     procedure SearchActionExecute(Sender: TObject);
585     procedure OptionActionExecute(Sender: TObject);
586     procedure GikoNaviWebPageActionExecute(Sender: TObject);
587     procedure AboutActionExecute(Sender: TObject);
588     procedure CabinetHistoryActionExecute(Sender: TObject);
589 yoffy 1.138 procedure CabinetVisible( isVisible : Boolean );
590 hi_ 1.1 procedure CabinetVisibleActionExecute(Sender: TObject);
591     procedure AllItemActionExecute(Sender: TObject);
592     procedure LogItemActionExecute(Sender: TObject);
593     procedure NewItemActionExecute(Sender: TObject);
594     procedure SelectItemActionExecute(Sender: TObject);
595     procedure ListNumberVisibleActionExecute(Sender: TObject);
596     procedure UpFolderActionExecute(Sender: TObject);
597     procedure IconStyleExecute(Sender: TObject);
598     procedure RoundActionExecute(Sender: TObject);
599     procedure StopActionExecute(Sender: TObject);
600     procedure MsgBarCloseActionExecute(Sender: TObject);
601     procedure BrowserMaxActionExecute(Sender: TObject);
602     procedure ScrollTopActionExecute(Sender: TObject);
603     procedure ScrollLastActionExecute(Sender: TObject);
604     procedure ScrollNewActionExecute(Sender: TObject);
605     procedure ScrollKokoActionExecute(Sender: TObject);
606     procedure EditorActionExecute(Sender: TObject);
607     procedure IEActionExecute(Sender: TObject);
608     procedure ShowThreadActionExecute(Sender: TObject);
609     procedure ShowBoardActionExecute(Sender: TObject);
610     procedure URLCopyActionExecute(Sender: TObject);
611     procedure ItemReloadActionExecute(Sender: TObject);
612     procedure SelectListReloadActionExecute(Sender: TObject);
613     procedure SelectThreadReloadActionExecute(Sender: TObject);
614     procedure SelectListReloadActionUpdate(Sender: TObject);
615     procedure AllItemActionUpdate(Sender: TObject);
616     procedure LogItemActionUpdate(Sender: TObject);
617     procedure NewItemActionUpdate(Sender: TObject);
618     procedure SelectItemActionUpdate(Sender: TObject);
619     procedure UpFolderActionUpdate(Sender: TObject);
620     procedure FormResize(Sender: TObject);
621     procedure ScrollTopActionUpdate(Sender: TObject);
622     procedure ScrollLastActionUpdate(Sender: TObject);
623     procedure ScrollNewActionUpdate(Sender: TObject);
624     procedure ScrollKokoActionUpdate(Sender: TObject);
625     procedure EditorActionUpdate(Sender: TObject);
626     procedure IEActionUpdate(Sender: TObject);
627     procedure ShowThreadActionUpdate(Sender: TObject);
628     procedure ShowBoardActionUpdate(Sender: TObject);
629     procedure SelectThreadReloadActionUpdate(Sender: TObject);
630     procedure ListViewSelectItem(Sender: TObject; Item: TListItem;
631     Selected: Boolean);
632     procedure SelectTimerTimer(Sender: TObject);
633 yoffy 1.51 procedure ItemReloadActionUpdate(Sender: TObject);
634 hi_ 1.1 procedure ListViewDblClick(Sender: TObject);
635 yoffy 1.51 procedure LogDeleteActionExecute(Sender: TObject);
636 hi_ 1.1 procedure KokomadeActionExecute(Sender: TObject);
637     procedure ZenbuActionExecute(Sender: TObject);
638 yoffy 1.51 procedure KokoResActionExecute(Sender: TObject);
639 hi_ 1.1 procedure ListPopupMenuPopup(Sender: TObject);
640     procedure SelectItemURLCopyActionExecute(Sender: TObject);
641     procedure SelectItemURLCopyActionUpdate(Sender: TObject);
642     procedure AllSelectActionUpdate(Sender: TObject);
643     procedure LogDeleteActionUpdate(Sender: TObject);
644     procedure BrowserTabCloseActionExecute(Sender: TObject);
645     procedure NotSelectTabCloseActionExecute(Sender: TObject);
646     procedure TreeSelectBoradReloadExecute(Sender: TObject);
647     procedure TreeSelectThreadReloadExecute(Sender: TObject);
648     procedure TreeSelectURLCopyExecute(Sender: TObject);
649     procedure TreePopupMenuPopup(Sender: TObject);
650     procedure ListToolBarVisibleActionExecute(Sender: TObject);
651     procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
652     procedure BrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
653     var Cancel: WordBool);
654     procedure ListSplitterCanResize(Sender: TObject; var NewSize: Integer;
655     var Accept: Boolean);
656     procedure ListSplitterMoved(Sender: TObject);
657     procedure BrowserTabChange(Sender: TObject);
658     procedure BrowserTabMouseDown(Sender: TObject; Button: TMouseButton;
659     Shift: TShiftState; X, Y: Integer);
660     procedure BrowserTabDragOver(Sender, Source: TObject; X, Y: Integer;
661     State: TDragState; var Accept: Boolean);
662     procedure BrowserTabDragDrop(Sender, Source: TObject; X, Y: Integer);
663     procedure BrowserTabMouseMove(Sender: TObject; Shift: TShiftState; X,
664     Y: Integer);
665     procedure BrowserDocumentComplete(Sender: TObject;
666     const pDisp: IDispatch; var URL: OleVariant);
667     procedure SelectReservActionUpdate(Sender: TObject);
668     procedure RoundNamePopupMenuPopup(Sender: TObject);
669     procedure SelectNewRoundNameExecute(Sender: TObject);
670     procedure SelectDeleteRoundExecute(Sender: TObject);
671     procedure SelectReservActionExecute(Sender: TObject);
672     procedure NewBoardActionExecute(Sender: TObject);
673     procedure LoginActionExecute(Sender: TObject);
674     procedure KeySettingActionExecute(Sender: TObject);
675     procedure AllTabCloseActionExecute(Sender: TObject);
676 yoffy 1.51 procedure ArrangeActionExecute(Sender: TObject);
677     procedure NameURLCopyActionExecute(Sender: TObject);
678     procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
679 hi_ 1.1 procedure URLCopyActionUpdate(Sender: TObject);
680 yoffy 1.2 procedure NameURLCopyActionUpdate(Sender: TObject);
681 hi_ 1.1 procedure BrowserTabCloseActionUpdate(Sender: TObject);
682 yoffy 1.51 procedure NotSelectTabCloseActionUpdate(Sender: TObject);
683 hi_ 1.1 procedure AllTabCloseActionUpdate(Sender: TObject);
684     procedure SelectItemNameURLCopyActionUpdate(Sender: TObject);
685     procedure ActiveLogDeleteActionExecute(Sender: TObject);
686     procedure ActiveLogDeleteActionUpdate(Sender: TObject);
687 yoffy 1.51 procedure ListNameBarVisibleActionExecute(Sender: TObject);
688 hi_ 1.1 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
689 yoffy 1.51 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
690     procedure PaneInitActionExecute(Sender: TObject);
691 hi_ 1.1 procedure FormShow(Sender: TObject);
692     procedure BrowserTabToolBarResize(Sender: TObject);
693     procedure BrowserMinActionExecute(Sender: TObject);
694 yoffy 1.51 procedure SelectTextClearActionExecute(Sender: TObject);
695 hi_ 1.1 procedure NameTextClearActionExecute(Sender: TObject);
696 yoffy 1.51 procedure MailTextClearActionExecute(Sender: TObject);
697     procedure LeftmostTabSelectActionExecute(Sender: TObject);
698     procedure LeftTabSelectActionExecute(Sender: TObject);
699 hi_ 1.1 procedure RightTabSelectActionExecute(Sender: TObject);
700     procedure RightmostTabSelectActionExecute(Sender: TObject);
701     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
702     procedure LeftTabSelectActionUpdate(Sender: TObject);
703     procedure RightTabSelectActionUpdate(Sender: TObject);
704     procedure RightmostTabSelectActionUpdate(Sender: TObject);
705     procedure FavoriteMenuClick(Sender: TObject);
706     procedure FavoriteAddActionExecute(Sender: TObject);
707     procedure FavoriteAddActionUpdate(Sender: TObject);
708     procedure BoardFavoriteAddActionExecute(Sender: TObject);
709     procedure BoardFavoriteAddActionUpdate(Sender: TObject);
710 yoffy 1.51 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
711 hi_ 1.1 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
712 yoffy 1.51 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
713 yoffy 1.2 procedure FavoriteArrangeActionExecute(Sender: TObject);
714     procedure MainCoolBarResize(Sender: TObject);
715 hi_ 1.1 procedure MoveToActionExecute(Sender: TObject);
716 yoffy 1.2 procedure AddressToolBarResize(Sender: TObject);
717 hi_ 1.1 procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
718     Shift: TShiftState);
719 yoffy 1.51 procedure AddressBarVisibleActionExecute(Sender: TObject);
720 yoffy 1.2 procedure BrowserEnter(Sender: TObject);
721 hi_ 1.1 procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
722 yoffy 1.51 procedure BrowserTabVisibleActionExecute(Sender: TObject);
723     procedure BrowserTabTopActionExecute(Sender: TObject);
724     procedure BrowserTabBottomActionExecute(Sender: TObject);
725     procedure BrowserTabTabStyleActionExecute(Sender: TObject);
726 hi_ 1.1 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
727 yoffy 1.51 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
728 hi_ 1.1 procedure PreviewTimerTimer(Sender: TObject);
729     procedure MessageHideButtonClick(Sender: TObject);
730     procedure MonazillaWebPageActionExecute(Sender: TObject);
731     procedure GikoHelpActionExecute(Sender: TObject);
732     procedure ToolButton18Click(Sender: TObject);
733     procedure KotehanActionExecute(Sender: TObject);
734 yoffy 1.51 procedure LinkBarVisibleActionExecute(Sender: TObject);
735     procedure BBS2chWebPageActionExecute(Sender: TObject);
736     procedure GikoFolderOpenActionExecute(Sender: TObject);
737 yoffy 1.2 procedure MainCoolBarBandInfo(Sender: TObject;
738     var BandInfo: PReBarBandInfoA);
739     procedure MainCoolBarChevronClick(Sender: TObject;
740 yoffy 1.51 RebarChevron: PNMRebarChevron);
741     procedure ListCoolBarBandInfo(Sender: TObject;
742     var BandInfo: PReBarBandInfoA);
743     procedure ListCoolBarChevronClick(Sender: TObject;
744     RebarChevron: PNMRebarChevron);
745     procedure BrowserCoolBarBandInfo(Sender: TObject;
746     var BandInfo: PReBarBandInfoA);
747 yoffy 1.2 procedure BrowserCoolBarChevronClick(Sender: TObject;
748 yoffy 1.51 RebarChevron: PNMRebarChevron);
749     procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
750     procedure ThreadEditorActionExecute(Sender: TObject);
751 yoffy 1.2 procedure ThreadEditorActionUpdate(Sender: TObject);
752 yoffy 1.51 procedure ToolBarSettingActionExecute(Sender: TObject);
753     procedure NameCopyActionExecute(Sender: TObject);
754     procedure BoardIEActionExecute(Sender: TObject);
755     procedure SelectItemNameCopyActionExecute(Sender: TObject);
756 yoffy 1.2 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
757 yoffy 1.51 procedure BoardIEActionUpdate(Sender: TObject);
758     procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
759     WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
760     procedure NameCopyActionUpdate(Sender: TObject);
761     procedure SelectComboBoxChange(Sender: TObject);
762     procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
763     Shift: TShiftState);
764     procedure SelectComboBoxExit(Sender: TObject);
765     procedure NG1Click(Sender: TObject);
766     procedure SelectResActionExecute(Sender: TObject);
767     procedure SelectResActionUpdate(Sender: TObject);
768     procedure FormKeyUp(Sender: TObject; var Key: Word;
769     Shift: TShiftState);
770     procedure AllResActionExecute(Sender: TObject);
771     procedure AllResActionUpdate(Sender: TObject);
772     procedure ReloadClick(Sender: TObject);
773     procedure GoBackClick(Sender: TObject);
774     procedure GoFowardClick(Sender: TObject);
775     procedure SelectComboBoxSplitterMouseMove(Sender: TObject;
776     Shift: TShiftState; X, Y: Integer);
777     procedure SelectComboBoxSplitterMouseDown(Sender: TObject;
778     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
779     procedure SelectComboBoxSplitterMouseUp(Sender: TObject;
780     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
781     procedure StatusBarResize(Sender: TObject);
782     procedure IndividualAbon1Click(Sender: TObject);
783     procedure IndividualAbon2Click(Sender: TObject);
784     procedure N42Click(Sender: TObject);
785     procedure SelectComboBoxEnter(Sender: TObject);
786     procedure AntiIndividualAbonClick(Sender: TObject);
787     procedure N51Click(Sender: TObject);
788     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
789 yoffy 1.100 procedure CabinetFavoriteActionExecute(Sender: TObject);
790     procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
791     Y: Integer);
792 yoffy 1.71 procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
793 yoffy 1.100 procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
794     var S: String);
795     procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
796     Shift: TShiftState);
797     procedure FavoriteTreePopupMenuPopup(Sender: TObject);
798     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
799     procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
800     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
801     procedure ToolButton19Click(Sender: TObject);
802     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
803     procedure FavoriteTreeViewChange(Sender: TObject; Node: TTreeNode);
804     procedure FavoriteTreeViewDblClick(Sender: TObject);
805     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
806     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
807     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
808     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
809     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
810     procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
811     procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
812     Shift: TShiftState; X, Y: Integer);
813     procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
814     State: TDragState; var Accept: Boolean);
815     procedure OnlyAHundredResExecute(Sender: TObject);
816     procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
817     Y: Integer);
818     procedure ListCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
819     var Handled: Boolean);
820     procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
821     var Handled: Boolean);
822     procedure BrowserCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
823     var Handled: Boolean);
824 yoffy 1.107 procedure ExportFavoriteFileAccept(Sender: TObject);
825     procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
826 yoffy 1.139 procedure CabinetBBSActionExecute(Sender: TObject);
827 yoffy 1.142 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
828     procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
829 yoffy 1.158 procedure UpBoardActionExecute(Sender: TObject);
830     procedure UpBoardActionUpdate(Sender: TObject);
831 h677 1.174 procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
832     var Handled: Boolean);
833 h677 1.183 procedure KoreCopyExecute(Sender: TObject);
834 h677 1.187 procedure BrowserTabPopupMenuPopup(Sender: TObject);
835 yoffy 1.216 procedure MenuToolBarResize(Sender: TObject);
836     procedure StdToolBarResize(Sender: TObject);
837     procedure LinkToolBarResize(Sender: TObject);
838     procedure ListNameToolBarResize(Sender: TObject);
839     procedure ListToolBarResize(Sender: TObject);
840     procedure BrowserNameToolBarResize(Sender: TObject);
841     procedure BrowserToolBarResize(Sender: TObject);
842     procedure BrowserTabResize(Sender: TObject);
843 hi_ 1.1 private
844     { Private 鐃緒申鐃緒申 }
845 h677 1.182 //RoundList : TRoundList;
846 hi_ 1.1 FSortIndex: Integer;
847     FSortOrder: Boolean;
848    
849     FEnabledCloseButton: Boolean;
850     // ThreadCreate: TThreadCreate;
851    
852     FClickNode: TTreeNode;
853     FHttpState: Boolean;
854     FHint: TResPopup;
855     FPreviewBrowser: TPreviewBrowser;
856     FPreviewURL: string;
857    
858     FBrowserSizeHeight: Integer;
859     FBrowserSizeWidth: Integer;
860    
861     // FFavorite: TFavorite;
862     FBrowserComplete: Boolean;
863     FTabHintIndex: Integer;
864     FListStyle: TViewStyle; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
865     FItemNoVisible: Boolean; //鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?
866     FViewType: TGikoViewType; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?
867 yoffy 1.123 FActiveList: TObject;
868 hi_ 1.1 FActiveContent: TThreadItem; //
869 yoffy 1.133 FActiveBBS : TBBS;
870 hi_ 1.1 FHistoryList: TList; //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
871     FTreeType: TGikoTreeType;
872     FWorkCount: Integer;
873     FNameCookie: string;
874     FMailCookie: string;
875     // FLastRoundTime: TDateTime;
876     BrowserNullTab: TThreadItem;
877     // DoubleClickOccurred: array [TMouseButton] of Boolean;
878     FDownloadTitle: string; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
879     FDownloadMax: Integer; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?
880     FEvent: THTMLDocumentEventSink;//鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?
881 h677 1.14
882 h677 1.192 // Fkeynum : Integer; //鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
883 yoffy 1.29
884 yoffy 1.51 IsDraggingSelectComboBox : Boolean;
885     DraggingSelectComboBoxPosition : TPoint;
886 yoffy 1.29
887 yoffy 1.54 FSearchDialog: TSearchDialog;
888 yoffy 1.49
889 yoffy 1.100 FDropSpaceNode: TTreeNode;
890 yoffy 1.74
891 yoffy 1.107 FDragTime : Cardinal; //鐃緒申鐃緒申鐃?鐃緒申D&D鐃?
892     FDragButton : TToolButton; //鐃緒申鐃緒申鐃?鐃緒申D&D鐃?鐃緒申Drag鐃緒申鐃緒申鐃緒申Button鐃緒申鐃緒申
893     FDragWFirst : Boolean; //WebTab鐃緒申D&D鐃?
894 h677 1.84
895 yoffy 1.143 FListViewBackGroundColor : TColor; //ListView鐃緒申BackGroundColor
896     FUseOddResOddColor : Boolean; //鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申
897     FOddColor : TColor; //鐃緒申鐃緒申鐃?
898 yoffy 1.152
899     FSelectResWord : string; // 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?
900 yoffy 1.216 FIsIconiced : Boolean; // 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
901     FOldFormWidth : Integer; // 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
902 yoffy 1.123 procedure SetBoardTreeNode( inBBS : TBBS );
903     function SetCategoryListItem(ABBS2ch: TBBS): Integer;
904 hi_ 1.1 function SetBoardListItem(Category: TCategory): Integer;
905     function SetThreadListItem(Board: TBoard): Integer;
906     // function GetRoundName(index: integer): string;
907    
908     procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
909     procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
910 q9_ 1.233 procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
911 hi_ 1.1 procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
912     procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
913    
914     procedure SetActiveList(Obj: TObject);
915     procedure ListClick;
916     procedure ListDoubleClick;
917     procedure BrowserMovement(AName: string);
918     procedure SelectListItem(List: TList);
919     // procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1);
920     procedure DeleteTab(ThreadItem: TThreadItem);
921     function Hook(var Message: TMessage): Boolean;
922     procedure AddRoundNameMenu(MenuItem: TMenuItem);
923 h677 1.188 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
924     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
925 hi_ 1.1 procedure SetSelectRoundName(Sender: TObject);
926     function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
927    
928     procedure SetMenuFont;
929     // procedure CreateFavMenu(Folder: TFavoriteFolder);
930     procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
931 yoffy 1.62 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
932     procedure FavoriteClick(Sender: TObject); overload;
933 yoffy 1.100 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
934 yoffy 1.2 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
935 hi_ 1.1 function OnDocumentContextMenu(Sender: TObject): WordBool;
936     // function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;
937 yoffy 1.123 procedure SetResPopupText(ThreadItem : TThreadItem; StNum, ToNum: Integer; Title, First: Boolean);
938 hi_ 1.1 procedure ShowTextPopup;
939     //procedure ShowTextPopup(HintData: THintData);
940 yoffy 1.2 // procedure SetStdToolBar;
941     // function GetAction(ActionName: string): TContainedAction;
942 hi_ 1.1 procedure SetLinkBar;
943 h677 1.215 procedure ClearLinkBar;
944 hi_ 1.1 function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
945 yoffy 1.2 procedure MenuBarChevronMenu;
946     procedure LinkBarChevronMenu;
947     procedure ToolBarChevronMenu(ToolBar: TToolBar);
948 yoffy 1.51 procedure ModifySelectList;
949 yoffy 1.100 procedure FavoriteBrowseFolder( node: TTreeNode );
950     procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
951     procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
952     procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
953     procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
954 yoffy 1.85 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
955 yoffy 1.72 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
956 yoffy 1.100 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
957     procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
958 yoffy 1.72 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
959 yoffy 1.100 //
960 yoffy 1.143 procedure BrowserTabClick(Sender: TObject);
961     procedure SetListViewBackGroundColor(value: TColor);
962 yoffy 1.123 procedure BBSMenuItemOnClick( Sender : TObject );
963 h677 1.185 //
964     procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
965 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
966     procedure SaveCoolBarSettings;
967     // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
968     procedure LoadCoolBarSettings;
969     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
970     procedure OnMinimize;
971     // CoolBar 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
972     procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
973    
974 hi_ 1.1 protected
975     procedure CreateParams(var Params: TCreateParams); override;
976 yoffy 1.2 procedure WndProc(var Message: TMessage); override;
977 hi_ 1.1 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
978     procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
979     procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
980 yoffy 1.216
981 hi_ 1.1 public
982     { Public 鐃緒申鐃緒申 }
983     // FDownload: TDownload;
984     FControlThread: TThreadControl;
985 yoffy 1.48 procedure MoveToURL(URL: string);
986     procedure InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);
987 hi_ 1.1 procedure ReloadBBS;
988     function GetHttpState: Boolean;
989     procedure SetEnabledCloseButton(Enabled: Boolean);
990     function GetTreeNode(Data: TObject): TTreeNode;
991     procedure AppFormDeactivate(Sender: TObject);
992     // procedure CabinetPanelVisible(PanelVisible: Boolean);
993     procedure ListViewAllSelect;
994    
995     property ListStyle: TViewStyle read FListStyle write FListStyle;
996     property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
997     property ViewType: TGikoViewType read FViewType write FViewType;
998    
999     property NameCookie: string read FNameCookie write FNameCookie;
1000     property MailCookie: string read FMailCookie write FMailCookie;
1001    
1002     procedure SetContent(ThreadItem: TThreadItem);
1003     function GetActiveContent: TThreadItem;
1004     function GetActiveList: TObject;
1005    
1006     property ActiveList: TObject read GetActiveList write SetActiveList;
1007     // property LastRoundTime: TDateTime read FLastRoundTime write FLastRoundTime;
1008    
1009     procedure SetListViewType(AViewType: TGikoViewType); overload;
1010     procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
1011     procedure DownloadContent(ThreadItem: TThreadItem);
1012     procedure DownloadList(Board: TBoard);
1013     procedure PlaySound(SoundEventName: string);
1014    
1015 yoffy 1.136 function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
1016     procedure DeleteHistory( threadItem: TThreadItem );
1017 hi_ 1.1 procedure ClearHistory;
1018 yoffy 1.135 procedure SaveHistory;
1019     procedure LoadHistory;
1020 yoffy 1.123 procedure ShowBBSTree( inBBS : TBBS );
1021 hi_ 1.1 procedure ShowHistoryTree;
1022     procedure SetHistoryTreeNode;
1023     // procedure SelectTreeNode(Item: TObject);
1024     procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
1025     procedure SetBrowserTabState;
1026     // property Favorite: TFavorite read FFavorite write FFavorite;
1027 yoffy 1.2 procedure SetToolBarPopup;
1028 yoffy 1.100 procedure ShowFavoriteAddDialog( Item : TObject );
1029 h677 1.189 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
1030 h677 1.226 procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
1031 yoffy 1.143 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
1032     property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
1033     property OddColor : TColor read FOddColor write FOddColor;
1034 h677 1.109
1035 yoffy 1.209 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
1036 yoffy 1.218 procedure OnPlugInMenuItem( Sender : TObject );
1037 yoffy 1.209
1038 hi_ 1.1 published
1039     property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1040     end;
1041    
1042     TFavoriteMenuItem = class(TMenuItem)
1043     private
1044     FData : Pointer;
1045     public
1046     property Data: Pointer read FData write FData;
1047     end;
1048    
1049 yoffy 1.123 TBBSMenuItem = class(TMenuItem)
1050     private
1051     FData : Pointer;
1052     public
1053     property Data: Pointer read FData write FData;
1054     end;
1055    
1056 hi_ 1.1 TLinkToolButton = class(TToolButton)
1057     private
1058     FData : Pointer;
1059     public
1060     property Data: Pointer read FData write FData;
1061     end;
1062    
1063     var
1064     GikoForm: TGikoForm;
1065    
1066     implementation
1067    
1068     uses
1069     About, Option, Round, Splash, Sort, ListSelect,
1070 h677 1.183 NewBoard, MojuUtils,Clipbrd;
1071 hi_ 1.1
1072     const
1073     CAPTION_NAME: string = '鐃?鐃?鐃?鐃?';
1074     BLANK_HTML: string = 'about:blank';
1075 yoffy 1.51 SELECTCOMBOBOX_NAME: string = ''; // '鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申';
1076     SELECTCOMBOBOX_COLOR: TColor = clWindow;
1077 yoffy 1.120 //D&D鐃緒申鐃?
1078     DandD_THRESHOLD = 5; //D&D鐃緒申鐃緒申鐃?鐃?pixcel)
1079 yoffy 1.2 //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1080     ITEM_ICON_2CH1 = 0; //2ch鐃?鐃?鐃?鐃緒申
1081     ITEM_ICON_2CH2 = 1; //2ch鐃?鐃?鐃?鐃緒申
1082     ITEM_ICON_CATEGORY1 = 2; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1083     ITEM_ICON_CATEGORY2 = 3; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1084 yoffy 1.120 ITEM_ICON_BOARD_NOSUBJECT = 3; //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1085 yoffy 1.2 ITEM_ICON_BOARD1 = 4; //鐃緒申鐃?鐃?鐃?鐃緒申
1086     ITEM_ICON_BOARD2 = 5; //鐃緒申鐃?鐃?鐃?鐃緒申
1087     ITEM_ICON_THREADLOG1 = 6; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1088     ITEM_ICON_THREADLOG2 = 7; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1089     ITEM_ICON_THREAD1 = 8; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1090     ITEM_ICON_THREAD2 = 9; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1091     ITEM_ICON_THREADNEW1 = 10; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1092     ITEM_ICON_THREADNEW2 = 11; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1093     ITEM_ICON_SORT1 = 12; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1094     ITEM_ICON_SORT2 = 13; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1095 yoffy 1.120 ITEM_ICON_BOARD_LOG = 17; //鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1096     ITEM_ICON_BOARD_NEW = 18; //鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1097 yoffy 1.2
1098     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1099 yoffy 1.48 TOOL_ICON_HEIGHT_MAX = 16; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1100     TOOL_ICON_HEIGHT_MIN = 17; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1101     TOOL_ICON_HEIGHT_NORMAL = 18; //鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1102     TOOL_ICON_WIDTH_MAX = 19; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1103     TOOL_ICON_WIDTH_MIN = 20; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1104     TOOL_ICON_WIDTH_NORMAL = 21; //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1105    
1106 yoffy 1.51 TOOL_ICON_FAV_FOLDER = 30; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申
1107 yoffy 1.100 TOOL_ICON_FAV_BOARD = 31; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1108 yoffy 1.51 TOOL_ICON_FAV_THREAD = 32; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1109 hi_ 1.1
1110     HTML_FILE_NAME = 'temp_preview.html';
1111    
1112     {$R *.DFM}
1113    
1114     procedure TGikoForm.CreateParams(var Params: TCreateParams);
1115     begin
1116     inherited;
1117     if FormStyle in [fsNormal, fsStayOnTop] then begin
1118     if BorderStyle in [bsSingle, bsSizeable] then begin
1119     Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
1120     Params.WndParent := 0;
1121     end;
1122     end;
1123     end;
1124    
1125     procedure TGikoForm.FormCreate(Sender: TObject);
1126     const
1127     TVS_NOTOOLTIPS = $0080;
1128     var
1129     FileName: string;
1130     Style: DWORD;
1131     msg: string;
1132     i: Integer;
1133     wp: TWindowPlacement;
1134 hi_ 1.32 s: string;
1135 yoffy 1.123 item : TBBSMenuItem;
1136 hi_ 1.1 begin
1137     {$IFDEF DEBUG}
1138     AllocConsole;
1139     Writeln('============================================================');
1140     Writeln(' 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃? 鐃?鐃緒申鐃?鐃?鐃緒申');
1141     Writeln('');
1142     Writeln(' 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
1143     Writeln(' 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
1144     Writeln('============================================================');
1145     {$ENDIF}
1146     Application.OnDeactivate := AppFormDeactivate;
1147     Self.OnDeactivate := AppFormDeactivate;
1148     Application.HookMainWindow(Hook);
1149    
1150     FTreeType := gttNone;
1151    
1152 yoffy 1.51 FSearchDialog := nil;
1153 yoffy 1.49
1154 yoffy 1.216 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1155     FIsIconiced := True;
1156    
1157 hi_ 1.1 //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1158     Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
1159    
1160    
1161     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1162     AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1163    
1164 yoffy 1.135 // 鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?(ReadBoardFile, LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1165 yoffy 1.107 InitializeBoardPlugIns;
1166 yoffy 1.105
1167 hi_ 1.1 EnabledCloseButton := True;
1168 h677 1.176
1169    
1170     //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1171     RoundList := TRoundList.Create;
1172     RoundList.LoadRoundBoardFile;
1173    
1174 yoffy 1.210 // 鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申(ReadFavorite 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1175     GikoSys.ListBoardFile;
1176 h677 1.176
1177     RoundList.LoadRoundThreadFile;
1178    
1179 h677 1.181 if RoundList.OldFileRead or ( RoundList.Count[grtItem] > 0 ) then
1180 yoffy 1.210 GikoSys.ListBoardFile;
1181 h677 1.176
1182 yoffy 1.123 // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1183     for i := Length( BBSs ) - 1 downto 0 do begin
1184 yoffy 1.126 try
1185     item := TBBSMenuItem.Create( PopupMenu );
1186     item.Caption := BBSs[ i ].Title;
1187     item.Data := BBSs[ i ];
1188     item.OnClick := BBSMenuItemOnClick;
1189     CabinetSelectPopupMenu.Items.Insert( 0, item );
1190     item := TBBSMenuItem.Create( PopupMenu );
1191     item.Caption := BBSs[ i ].Title;
1192     item.Data := BBSs[ i ];
1193     item.OnClick := BBSMenuItemOnClick;
1194     CabinetMenu.Insert( 0, item );
1195 yoffy 1.209 item := TBBSMenuItem.Create( PopupMenu );
1196     item.Caption := BBSs[ i ].Title;
1197     item.Data := BBSs[ i ];
1198     item.OnClick := BBSMenuItemOnClick;
1199     BBSSelectPopupMenu.Items.Insert( 0, Item );
1200 yoffy 1.126 except
1201     end;
1202 yoffy 1.123 end;
1203    
1204 h677 1.176
1205 yoffy 1.135 // 鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?(LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1206     FHistoryList := TList.Create;
1207    
1208     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1209     LoadHistory;
1210    
1211 yoffy 1.123 //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1212     // FFavorite := TFavorite.Create(FavoriteTreeView);
1213     FavoriteDM.SetFavTreeView(FavoriteTreeView);
1214     FavoriteDM.ReadFavorite;
1215 hi_ 1.1
1216     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1217     ListView.ViewStyle := GikoSys.Setting.ListStyle;
1218    
1219     //鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1220     // MainCoolBar.Top := 0;
1221     // MainCoolBar.Left := 0;
1222    
1223     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?
1224     AnimePanel.Top := 0;
1225     AnimePanel.Left := 0;
1226    
1227     //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1228    
1229     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1230     CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
1231    
1232     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
1233     MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
1234     MsgBarVisibleActionExecute(nil);
1235     MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
1236    
1237     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1238     StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
1239     StatusBarVisibleActionExecute(nil);
1240    
1241     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
1242     TreeView.Items.BeginUpdate;
1243 yoffy 1.100 FavoriteTreeView.Items.BeginUpdate;
1244 hi_ 1.1 ListView.Items.BeginUpdate;
1245     try
1246     TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1247     TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1248     TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1249     TreeView.Color := GikoSys.Setting.CabinetBackColor;
1250    
1251 yoffy 1.67 FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1252     FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1253     FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1254     FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1255    
1256 hi_ 1.1 ListView.Font.Name := GikoSys.Setting.ListFontName;
1257     ListView.Font.Size := GikoSys.Setting.ListFontSize;
1258     ListView.Font.Color := GikoSys.Setting.ListFontColor;
1259 h677 1.109 //ListView.Color := GikoSys.Setting.ListBackColor;
1260 yoffy 1.123 ListViewBackGroundColor := GikoSys.Setting.ListBackColor;
1261     FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
1262     FOddColor := GikoSys.Setting.OddColor;
1263 h677 1.109
1264 hi_ 1.1 finally
1265     TreeView.Items.EndUpdate;
1266 yoffy 1.100 FavoriteTreeView.Items.EndUpdate;
1267 hi_ 1.1 ListView.Items.EndUpdate;
1268     end;
1269     //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
1270     ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
1271    
1272     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
1273     BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1274     BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1275 yoffy 1.133 FDragWFirst := false;
1276 hi_ 1.1
1277     // TreeView.TopItem.Expanded := True; //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1278     // TreeView.Selected := TreeView.Items[0]; //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1279     SetContent(nil); //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1280    
1281     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1282     wp.length := sizeof(wp);
1283     wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1284     wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1285     wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1286     wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1287     wp.showCmd := SW_HIDE;
1288     SetWindowPlacement(Handle, @wp);
1289    
1290 yoffy 1.216 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 2
1291     FIsIconiced := True;
1292 hi_ 1.1 // SetBounds(GikoSys.Setting.WindowLeft, GikoSys.Setting.WindowTop,
1293     // GikoSys.Setting.WindowWidth, GikoSys.Setting.WindowHeight);
1294     if GikoSys.Setting.WindowMax then
1295     WindowState := wsMaximized;
1296    
1297     //鐃?鐃?鐃?鐃?鐃緒申
1298     try
1299     FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1300     if FileExists(FileName) then
1301     Animate.FileName := FileName;
1302     except
1303     end;
1304    
1305     //鐃?鐃?鐃?鐃?
1306     FNameCookie := '';
1307     FMailCookie := '';
1308    
1309     //鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1310     AllItemAction.Checked := True;
1311 yoffy 1.126 AllResAction.Checked := True;
1312 hi_ 1.1
1313     //TreeView鐃緒申鐃緒申鐃緒申鐃?鐃緒申ToolTip鐃緒申鐃緒申鐃?鐃緒申
1314     Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1315     Style := Style or TVS_NOTOOLTIPS;
1316     SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1317    
1318     // 鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1319     TreeView.Align := alClient;
1320 yoffy 1.57 FavoriteTreeView.Align := alClient;
1321 hi_ 1.1 FavoriteTreeView.Visible := False;
1322    
1323     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1324     // FBrowserSizeFlag := False;
1325     // FBrowserSizeHeight := ViewPanel.Height;
1326    
1327     FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1328     FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1329    
1330     ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1331     ArrangeAction.Execute;
1332    
1333     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1334     case GikoSys.Setting.ListWidthState of
1335     glsMax: begin
1336     ViewPanel.Width := 1;
1337 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1338     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1339 hi_ 1.1 end;
1340     glsMin: begin
1341     ViewPanel.Width := GikoSys.Setting.ListWidth;
1342 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1343     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1344 hi_ 1.1 end;
1345     else begin
1346     ViewPanel.Width := GikoSys.Setting.ListWidth;
1347 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1348     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1349 hi_ 1.1 end;
1350     end;
1351     end else begin
1352     case GikoSys.Setting.ListHeightState of
1353     glsMax: begin
1354     ViewPanel.Height := 1;
1355 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1356     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1357 hi_ 1.1 end;
1358     glsMin: begin
1359     ViewPanel.Height := GikoSys.Setting.ListHeight;
1360 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1361     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1362 hi_ 1.1 end;
1363     else begin
1364     ViewPanel.Height := GikoSys.Setting.ListHeight;
1365 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1366     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1367 hi_ 1.1 end;
1368     end;
1369     end;
1370    
1371     //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1372     // ProgressBar.Visible := False;
1373     ProgressBar.Parent := StatusBar;
1374     ProgressBar.Top := 2;
1375     ProgressBar.Left := 0;
1376     ProgressBar.Width := StatusBar.Panels[0].Width;
1377     ProgressBar.Height := StatusBar.Height - 2;
1378     ProgressBar.Position := 0;
1379    
1380     //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1381     FControlThread := TThreadControl.Create(True);
1382     FControlThread.MaxThreadCount := 1;
1383     FControlThread.Resume;
1384     FControlThread.OnDownloadEnd := DownloadEnd;
1385     FControlThread.OnDownloadMsg := DownloadMsg;
1386     FControlThread.OnWork := Work;
1387     FControlThread.OnWorkBegin := WorkBegin;
1388     FControlThread.OnWorkEnd := WorkEnd;
1389     // ProgressPanel.Width := FControlThread.MaxThreadCount * 12;
1390    
1391 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1392     SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1393 yoffy 1.2
1394 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申
1395     SetBrowserTabState;
1396    
1397     BrowserBoardNameLabel.Caption := '';
1398     BrowserNameLabel.Caption := '';
1399     FWorkCount := 0;
1400    
1401     FTabHintIndex := -1;
1402    
1403     //鐃緒申鐃緒申鐃?鐃?鐃?
1404     SetLinkBar;
1405    
1406     //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?
1407     SetMenuFont;
1408    
1409     //鐃?鐃?鐃緒申鐃?鐃?Wrapable
1410     ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1411     BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1412    
1413 h677 1.230 KeepDefaultToolButton(StdToolBar, TmpToolBar);
1414 h677 1.232 KeepDefaultToolButton(ListToolBar, TmpToolBar);
1415     KeepDefaultToolButton(BrowserToolBar, TmpToolBar);
1416 h677 1.234
1417 h677 1.232 MakeDefaultINIFile();
1418 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1419     ReadToolBarSetting(ActionList, StdToolBar);
1420     ReadToolBarSetting(ActionList, ListToolBar);
1421 yoffy 1.51 try
1422     for i := ListToolBar.ControlCount - 1 downto 0 do
1423     begin
1424     if ListToolBar.Controls[ i ].Action = SelectItemAction then
1425     begin
1426     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1427     if (i + 1) < ListToolBar.ControlCount then
1428     if ListToolBar.Controls[ i + 1 ] is TToolButton then
1429     if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1430     ListToolBar.Controls[ i + 1 ].Visible := False;
1431    
1432     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申
1433     ListToolBar.Controls[ i ].Visible := False;
1434     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申
1435 h677 1.234 SelectComboBox.Parent := ListToolBar;
1436 yoffy 1.51 SelectComboBox.Left := ListToolBar.Controls[ i ].Left;
1437     SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;
1438     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
1439 h677 1.234 SelectComboBoxSplitter.Parent := ListToolBar;
1440 yoffy 1.51 SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;
1441    
1442     break;
1443     end;
1444     end;
1445     except
1446     end;
1447 yoffy 1.2 ReadToolBarSetting(ActionList, BrowserToolBar);
1448     SetToolBarPopup;
1449 yoffy 1.126 OnlyAHundredRes.Checked := GikoSys.Setting.OnlyAHundredRes;
1450 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃?
1451     AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1452    
1453 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1454    
1455     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1456     if not FileExists(GikoSys.GetBoardFileName) then begin
1457     msg := '鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申' + #13#10#13#10
1458     + '鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申' + #13#10
1459     + '鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?';
1460     MsgBox(SplashWindow.Handle, msg, '鐃?鐃?鐃?鐃?', MB_OK or MB_ICONINFORMATION);
1461     NewBoardAction.Execute;
1462     end;
1463    
1464     //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1465     GikoSys.LoadKeySetting(ActionList);
1466    
1467     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1468     // FLastRoundTime := 0;
1469    
1470     //ResHint
1471     FHint := TResPopup.Create(Self);
1472    
1473 yoffy 1.100 // 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1474 yoffy 1.140 CabinetVisible( False );
1475 yoffy 1.141 if GikoSys.Setting.CabinetVisible then begin
1476     i := CabinetSelectPopupMenu.Items.Count - 1;
1477     if GikoSys.Setting.CabinetIndex = i - 1 then
1478     CabinetHistoryAction.Execute
1479     else if GikoSys.Setting.CabinetIndex = i then
1480     CabinetFavoriteAction.Execute
1481     else begin
1482     if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1483     ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1484     CabinetBBSAction.Execute;
1485     end;
1486     end else begin
1487     ShowBBSTree( BBSs[ 0 ] );
1488     end;
1489 yoffy 1.67
1490 yoffy 1.2 //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1491     if GikoSys.Setting.AutoLogin then
1492     LoginAction.Execute;
1493    
1494     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?
1495     for i := 1 to ParamCount do begin
1496     MoveToURL(ParamStr(i));
1497     end;
1498     // SetStdToolBar;
1499     // SetLinkBar;
1500 h677 1.22
1501 hi_ 1.32 s := GikoSys.FAbon.NGwordname;
1502     StatusBar.Panels[2].Text := s;
1503     StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
1504     StatusBarResize(Sender);
1505 h677 1.187
1506     dummy1.Caption := ItemReservPMenu.Caption;
1507     dummy1.Hint := ItemReservPMenu.Hint;
1508 yoffy 1.216
1509 h677 1.226 //Samba24鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?
1510     GikoSys.SambaFileExists();
1511 yoffy 1.2 end;
1512    
1513 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1514     procedure TGikoForm.SaveCoolBarSettings;
1515 yoffy 1.2 var
1516 yoffy 1.216 i : Integer;
1517     CoolSet : TCoolSet;
1518 yoffy 1.2 begin
1519    
1520 yoffy 1.216 if IsIconic( GikoForm.Handle ) or FIsIconiced then
1521     Exit;
1522 yoffy 1.2
1523 yoffy 1.216 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1524     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1525     CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1526     CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1527     CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1528     GikoSys.Setting.MainCoolSet[i] := CoolSet;
1529     end;
1530     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1531     for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1532     CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1533     CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1534     CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1535     GikoSys.Setting.ListCoolSet[i] := CoolSet;
1536     end;
1537     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1538     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1539     CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1540     CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1541     CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1542     GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1543 yoffy 1.2 end;
1544    
1545 yoffy 1.216 end;
1546 yoffy 1.2
1547 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1548     procedure TGikoForm.LoadCoolBarSettings;
1549     var
1550     i : Integer;
1551     CoolSet : TCoolSet;
1552     begin
1553 yoffy 1.2
1554 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1555     MainCoolBar.Bands.BeginUpdate;
1556     try
1557 yoffy 1.216 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1558     for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1559 hi_ 1.1 CoolSet := GikoSys.Setting.MainCoolSet[i];
1560     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1561     Continue;
1562     MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1563     MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1564     MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1565     end;
1566     finally
1567     MainCoolBar.Bands.EndUpdate;
1568     end;
1569    
1570     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1571     ListCoolBar.Bands.BeginUpdate;
1572     try
1573 yoffy 1.216 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1574     for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1575 hi_ 1.1 CoolSet := GikoSys.Setting.ListCoolSet[i];
1576     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1577     Continue;
1578     ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1579     ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1580     ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1581     end;
1582     finally
1583     ListCoolBar.Bands.EndUpdate;
1584     end;
1585    
1586     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1587     BrowserCoolBar.Bands.BeginUpdate;
1588     try
1589 yoffy 1.216 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1590     for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1591 hi_ 1.1 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1592     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1593     Continue;
1594     BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1595     BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1596     BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1597     end;
1598     finally
1599     BrowserCoolBar.Bands.EndUpdate;
1600     end;
1601    
1602     end;
1603 yoffy 1.216
1604     //
1605     //
1606     //
1607     procedure TGikoForm.FormShow(Sender: TObject);
1608     begin
1609     ShowWindow(Application.Handle, SW_HIDE);
1610    
1611     //FormCreate鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1612     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1613     StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1614     StdToolBarVisibleActionExecute( nil );
1615     AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1616     AddressBarVisibleActionExecute( nil );
1617     LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1618     LinkBarVisibleActionExecute( nil );
1619     ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1620     ListToolBarVisibleActionExecute( nil );
1621     ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1622     ListNameBarVisibleActionExecute( nil );
1623     BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1624     BrowserToolBarVisibleActionExecute( nil );
1625     BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1626     BrowserNameBarVisibleActionExecute( nil );
1627    
1628     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1629     BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1630     BrowserTabVisibleActionExecute(nil);
1631    
1632     if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1633     BrowserTabTopAction.Checked := True;
1634     BrowserTabTopActionExecute(nil);
1635     end else begin
1636     BrowserTabBottomAction.Checked := True;
1637     BrowserTabBottomActionExecute(nil);
1638     end;
1639    
1640     if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1641     BrowserTabTabStyleAction.Checked := True;
1642     BrowserTabTabStyleActionExecute(nil);
1643     end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1644     BrowserTabButtonStyleAction.Checked := True;
1645     BrowserTabButtonStyleActionExecute(nil);
1646     end else begin
1647     BrowserTabFlatStyleAction.Checked := True;
1648     BrowserTabFlatStyleActionExecute(nil);
1649     end;
1650    
1651     // CoolBar 鐃緒申鐃緒申
1652     LoadCoolBarSettings;
1653    
1654     end;
1655 hi_ 1.1 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1656     var
1657     i: Integer;
1658 h677 1.230 // CoolSet: TCoolSet;
1659 hi_ 1.1 wp: TWindowPlacement;
1660     begin
1661 yoffy 1.100 if ( GikoSys.Setting.ShowDialogForEnd ) and
1662     (MessageDlg('鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1663     CanClose := false;
1664     Exit;
1665     end else begin
1666     CanClose := True;
1667     end;
1668 h677 1.181 // Application.OnDeactivate := nil;
1669     // Self.OnDeactivate := nil;
1670 h677 1.234 try
1671     //column鐃緒申
1672     if GetActiveList is TBBS then begin
1673     for i := 0 to ListView.Columns.Count - 1 do
1674     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
1675     end else if GetActiveList is TCategory then begin
1676     for i := 0 to ListView.Columns.Count - 1 do
1677     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
1678     end else if GetActiveList is TBoard then begin
1679     for i := 0 to ListView.Columns.Count - 1 do
1680     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
1681     end;
1682     except
1683     end;
1684     try
1685     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1686     wp.length := sizeof(wp);
1687     GetWindowPlacement(Handle, @wp);
1688     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1689     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1690     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1691     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1692     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1693    
1694     GikoSys.Setting.ListStyle := ListView.ViewStyle;
1695     GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1696     GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1697     GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1698     GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1699     if ArrangeAction.Checked then
1700     GikoSys.Setting.ListOrientation := gloVertical
1701     else
1702     GikoSys.Setting.ListOrientation := gloHorizontal;
1703     GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1704     except
1705 yoffy 1.2 end;
1706    
1707 yoffy 1.216 // 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申 CoolBar 鐃緒申鐃緒申
1708     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1709 h677 1.223 {
1710 yoffy 1.216 // CoolBar 鐃緒申鐃緒申
1711     SaveCoolBarSettings;
1712 h677 1.223 }
1713 h677 1.234 try
1714     GikoSys.Setting.WriteWindowSettingFile;
1715     GikoSys.Setting.WriteNameMailSettingFile;
1716     except
1717     end;
1718 yoffy 1.2
1719     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1720 hi_ 1.1 try
1721 h677 1.234 //FavoriteDM鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1722 yoffy 1.2 FavoriteDM.WriteFavorite;
1723 h677 1.230 FavoriteDM.Clear;
1724 hi_ 1.1 except
1725     end;
1726    
1727     try
1728     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1729 h677 1.234 //NotSelectTabCloseAction.Execute;
1730     {if BrowserTab.Tabs.Count >= 1 then begin
1731 hi_ 1.1 DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1732     end;
1733 h677 1.234 }
1734 hi_ 1.1 except
1735     end;
1736    
1737 h677 1.224 try
1738     TreeView.Items.BeginUpdate;
1739     for i := TreeView.Items.Count - 1 downto 0 do begin
1740     TreeView.Items[i].Free;
1741     end;
1742     TreeView.Items.Clear;
1743     TreeView.Items.EndUpdate;
1744     except
1745     end;
1746 h677 1.230
1747 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1748     try
1749 h677 1.234 //AddressHistoryDM鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1750 hi_ 1.1 AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1751     except
1752     end;
1753    
1754 h677 1.234 //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
1755 hi_ 1.1 try
1756 h677 1.234 SaveHistory;
1757 hi_ 1.1 except
1758     end;
1759 h677 1.234 try
1760     ClearHistory;
1761 h677 1.215 except
1762     end;
1763 h677 1.221
1764 h677 1.182 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申&鐃?鐃緒申
1765     try
1766     RoundList.SaveRoundFile;
1767     except
1768     end;
1769 h677 1.234 try
1770     try
1771     RoundList.Clear;
1772     except
1773     end;
1774     finally
1775     RoundList.Free;
1776     end;
1777 h677 1.182
1778 h677 1.234 try
1779     try
1780     FControlThread.Terminate;
1781     FControlThread.WaitFor;
1782     except
1783 h677 1.219 end;
1784 h677 1.234 finally
1785     FControlThread.Free;
1786     end;
1787 h677 1.230
1788 yoffy 1.155 // TBBS 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 TCategory, TBoard, TThreadItem 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1789     // TBoard, TThreadItem 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1790     // BoardPluteIns 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1791 yoffy 1.126 try
1792 h677 1.220 for i := Length( BBSs ) - 1 downto 0 do begin
1793 h677 1.153 if BBSs[ i ] <> nil then
1794     BBSs[ i ].Free;
1795     BBSs[ i ] := nil;
1796     end;
1797     except
1798     end;
1799 yoffy 1.155
1800 h677 1.153 try
1801 h677 1.220 for i := Length( BoardPlugIns ) - 1 downto 0 do begin
1802 yoffy 1.126 if BoardPlugIns[ i ] <> nil then
1803     BoardPlugIns[ i ].Free;
1804     BoardPlugIns[ i ] := nil;
1805     end;
1806     except
1807     end;
1808 yoffy 1.124
1809 h677 1.234 try
1810     if FEvent <> nil then
1811     FEvent.Free;
1812 h677 1.181
1813 yoffy 1.2 //Hint鐃?鐃緒申
1814     if FHint <> nil then begin
1815     FHint.ReleaseHandle;
1816     FHint.Free;
1817     FHint := nil;
1818     end;
1819     //Preview鐃?鐃緒申
1820     if TPreviewBrowser <> nil then begin
1821     FPreviewBrowser.Free;
1822     FPreviewBrowser := nil;
1823     end;
1824     except
1825     end;
1826 h677 1.230 //Application.HookMainWindow(Hook);
1827     Application.UnhookMainWindow(Hook);
1828 h677 1.224 Application.Terminate;
1829 hi_ 1.1 end;
1830    
1831     procedure TGikoForm.FormDestroy(Sender: TObject);
1832     begin
1833 h677 1.230
1834 hi_ 1.1 end;
1835    
1836     //鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1837     procedure TGikoForm.FormClose(Sender: TObject; var Action: TCloseAction);
1838     begin
1839 h677 1.230 end;
1840     {
1841     //procedure TGikoForm.FormClose(Sender: TObject; var Action: TCloseAction);
1842     //begin
1843     //end;
1844 h677 1.181 // ListCoolBar.WindowProc := nil;
1845     // BrowserCoolBar.WindowProc := nil;
1846     // MainCoolBar.WindowProc := nil;
1847 h677 1.224 // Application.Terminate;
1848     // Action := caFree;
1849 h677 1.181 // Application.UnhookMainWindow(Hook);
1850 hi_ 1.1
1851 h677 1.230 }
1852 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1853     procedure TGikoForm.CabinetPanelHide(Sender: TObject);
1854     begin
1855     CabinetVisibleAction.Execute;
1856     // CabinetPanelVisible(false);
1857     end;
1858    
1859     procedure TGikoForm.ReloadBBS;
1860 yoffy 1.123 var
1861     i : Integer;
1862 yoffy 1.149 item : TBBSMenuItem;
1863 hi_ 1.1 begin
1864     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1865     NotSelectTabCloseAction.Execute;
1866     if BrowserTab.Tabs.Count >= 1 then
1867     DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1868     //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1869     TreeView.Items.Clear;
1870    
1871     //BBS鐃?鐃緒申
1872 yoffy 1.146 try
1873     for i := Length( BBSs ) - 1 downto 0 do begin
1874     if BBSs[ i ] <> nil then
1875     BBSs[ i ].Free;
1876     BBSs[ i ] := nil;
1877     end;
1878     except
1879 yoffy 1.126 end;
1880 hi_ 1.1
1881 yoffy 1.123 ActiveList := nil;
1882 hi_ 1.1
1883     FTreeType := gttNone;
1884    
1885 yoffy 1.210 GikoSys.ListBoardFile; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1886 yoffy 1.148 // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1887     for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
1888     try
1889     if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
1890 yoffy 1.155 CabinetSelectPopupMenu.Items[ i ].Free;
1891     CabinetMenu.Items[ i ].Free;
1892 yoffy 1.148 end;
1893     except
1894     end;
1895     end;
1896     // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1897     for i := Length( BBSs ) - 1 downto 0 do begin
1898     try
1899     item := TBBSMenuItem.Create( PopupMenu );
1900     item.Caption := BBSs[ i ].Title;
1901     item.Data := BBSs[ i ];
1902     item.OnClick := BBSMenuItemOnClick;
1903     CabinetSelectPopupMenu.Items.Insert( 0, item );
1904     item := TBBSMenuItem.Create( PopupMenu );
1905     item.Caption := BBSs[ i ].Title;
1906     item.Data := BBSs[ i ];
1907     item.OnClick := BBSMenuItemOnClick;
1908     CabinetMenu.Insert( 0, item );
1909     except
1910     end;
1911     end;
1912 yoffy 1.123 ShowBBSTree( BBSs[ 0 ] );
1913 yoffy 1.143
1914     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1915 yoffy 1.146 SaveHistory;
1916 h677 1.219 ClearHistory;
1917 yoffy 1.143 LoadHistory;
1918    
1919     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1920 h677 1.231 FavoriteDM.Clear;
1921 yoffy 1.143 FavoriteDM.ReadFavorite;
1922     SetLinkBar;
1923    
1924 hi_ 1.1 end;
1925    
1926     //鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1927 yoffy 1.123 procedure TGikoForm.SetBoardTreeNode(
1928     inBBS : TBBS
1929     );
1930 hi_ 1.1 var
1931 yoffy 1.120 i, j, k: integer;
1932 hi_ 1.1 Root: TTreeNode;
1933     CategoryNode: TTreeNode;
1934     BoardNode: TTreeNode;
1935     Category: TCategory;
1936     Board: TBoard;
1937     begin
1938 yoffy 1.112 // 鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
1939 yoffy 1.133 FActiveBBS := inBBS;
1940 hi_ 1.1 TreeView.Items.BeginUpdate;
1941     TreeView.Items.Clear;
1942     try
1943 yoffy 1.210 if not inBBS.IsBoardFileRead then
1944     GikoSys.ReadBoardFile( inBBS );
1945 yoffy 1.123 try
1946     if SplashWindow <> nil then
1947 yoffy 1.210 SplashWindow.ProgressBar.Max := inBBS.Count;
1948 yoffy 1.123 except
1949     end;
1950    
1951     Root := TreeView.Items.Add( nil, inBBS.Title );
1952     Root.ImageIndex := ITEM_ICON_2CH1;
1953     Root.SelectedIndex := ITEM_ICON_2CH2;
1954     Root.Data := inBBS;
1955     for i := 0 to inBBS.Count - 1 do begin
1956     Category := TCategory(inBBS.Items[i]);
1957     CategoryNode := TreeView.Items.AddChild(Root, Category.Title);
1958     CategoryNode.Data := Category;
1959     CategoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
1960     CategoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
1961 hi_ 1.1
1962 yoffy 1.123 for j := 0 to Category.Count - 1 do begin
1963     Board := TBoard(Category.Items[j]);
1964     Board.BeginUpdate;
1965     BoardNode := TreeView.Items.AddChild(CategoryNode, Board.Title);
1966     BoardNode.Data := Board;
1967     //if (Board.LastGetTime = 0) or (Board.LastGetTime = ZERO_DATE) then begin
1968     if not Board.IsLogFile then begin
1969     BoardNode.ImageIndex := ITEM_ICON_BOARD_NOSUBJECT;
1970     BoardNode.SelectedIndex := ITEM_ICON_BOARD_NOSUBJECT;
1971     end else begin
1972     BoardNode.ImageIndex := ITEM_ICON_BOARD1;
1973     BoardNode.SelectedIndex := ITEM_ICON_BOARD2;
1974     for k := 0 to Board.Count - 1 do begin
1975     if Board.Items[ k ].IsLogFile then begin
1976     BoardNode.ImageIndex := ITEM_ICON_BOARD_LOG;
1977     BoardNode.SelectedIndex := ITEM_ICON_BOARD_LOG;
1978 yoffy 1.120
1979 yoffy 1.123 Break;
1980 yoffy 1.120 end;
1981     end;
1982 yoffy 1.112 end;
1983 yoffy 1.123 Board.EndUpdate;
1984     end;
1985 hi_ 1.1
1986 yoffy 1.123 CategoryNode.Expanded := Category.NodeExpand;
1987 hi_ 1.1
1988 yoffy 1.123 if SplashWindow <> nil then begin
1989     SplashWindow.ProgressBar.StepIt;
1990     Application.ProcessMessages;
1991 hi_ 1.1 end;
1992     end;
1993     finally
1994     TreeView.Items.EndUpdate;
1995     end;
1996     end;
1997    
1998 yoffy 1.123 function TGikoForm.SetCategoryListItem(ABBS2ch: TBBS): Integer;
1999 hi_ 1.1 const
2000     COLUMN: array[0..0] of string = ('鐃?鐃?鐃?鐃緒申鐃緒申');
2001     var
2002     ListColumn: TListColumn;
2003     i: Integer;
2004     begin
2005     ListView.Items.BeginUpdate;
2006     try
2007     Screen.Cursor := crHourGlass;
2008    
2009     ListView.Columns.Clear;
2010     for i := 0 to Length(COLUMN) - 1 do begin
2011     ListColumn := ListView.Columns.Add;
2012     ListColumn.Caption := COLUMN[i];
2013     ListColumn.Width := GikoSys.Setting.BBSColumnWidth[i];
2014     end;
2015    
2016     ListView.Items.Count := 0;
2017     ListView.Items.Clear;
2018     ListView.Items.Count := ABBS2ch.Count;
2019    
2020     // UpFolderAction.Enabled := False;
2021     // AllItemAction.Enabled := False;
2022     // LogItemAction.Enabled := False;
2023     // NewItemAction.Enabled := False;
2024     // SelectItemAction.Enabled := False;
2025     // ListDownloadToolButton.Enabled := False;
2026     // BoardReservToolButton.Enabled := False;
2027     // ListThreadDownloadToolButton.Enabled := False;
2028    
2029     ListNameLabel.Caption := ABBS2ch.Title;
2030     FolderImage.Picture := nil;
2031     ItemIcon16.GetBitmap(1, FolderImage.Picture.Bitmap);
2032    
2033 yoffy 1.2 FSortIndex := 0;
2034     FSortOrder := False;
2035     ListViewColumnClick(nil, ListView.Column[0]);
2036    
2037 hi_ 1.1 Result := ABBS2ch.Count;
2038     finally
2039     Screen.Cursor := crDefault;
2040     ListView.Items.EndUpdate;
2041     end;
2042     end;
2043    
2044     function TGikoForm.SetBoardListItem(Category: TCategory): Integer;
2045     const
2046     COLUMN: array[0..2] of string = ('鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申');
2047     var
2048     ListColumn: TListColumn;
2049     i: Integer;
2050     begin
2051     ListView.Items.BeginUpdate;
2052     try
2053     Screen.Cursor := crHourGlass;
2054    
2055     ListView.Columns.Clear;
2056     for i := 0 to Length(COLUMN) - 1 do begin
2057     ListColumn := ListView.Columns.Add;
2058     ListColumn.Caption := COLUMN[i];
2059     ListColumn.Width := GikoSys.Setting.CategoryColumnWidth[i];
2060     end;
2061    
2062     ListView.Items.Count := 0;
2063     ListView.Items.Clear;
2064     ListView.Items.Count := Category.Count;
2065    
2066     // UpFolderAction.Enabled := True;
2067     // AllItemAction.Enabled := False;
2068     // LogItemAction.Enabled := False;
2069     // NewItemAction.Enabled := False;
2070     // SelectItemAction.Enabled := False;
2071     // ListDownloadToolButton.Enabled := False;
2072     // BoardReservToolButton.Enabled := False;
2073     // ListThreadDownloadToolButton.Enabled := False;
2074    
2075     ListNameLabel.Caption := Category.Title;
2076     FolderImage.Picture := nil;
2077     ItemIcon16.GetBitmap(3, FolderImage.Picture.Bitmap);
2078    
2079 yoffy 1.2 FSortIndex := 0;
2080     FSortOrder := False;
2081     ListViewColumnClick(nil, ListView.Column[0]);
2082    
2083 hi_ 1.1 Result := Category.Count;
2084     finally
2085     Screen.Cursor := crDefault;
2086     ListView.Items.EndUpdate;
2087     end;
2088     end;
2089    
2090     function TGikoForm.SetThreadListItem(Board: TBoard): Integer;
2091     const
2092 h677 1.199 COLUMN: array[0..7] of string = ('鐃?鐃緒申鐃?鐃?鐃緒申', '鐃?鐃?鐃緒申鐃?', '鐃緒申鐃緒申', '鐃?鐃緒申',
2093     '鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申', '鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
2094     COLUMN_ALIGNMENT: array[0..7] of TAlignment = (taLeftJustify, taRightJustify,
2095 hi_ 1.1 taRightJustify, taRightJustify,
2096     taRightJustify, taLeftJustify,
2097 h677 1.199 taLeftJustify, taLeftJustify);
2098 hi_ 1.1 //No, 鐃?鐃緒申鐃?鐃?鐃緒申, 鐃?鐃?鐃緒申鐃?, 鐃緒申鐃緒申鐃?鐃緒申, 鐃緒申鐃緒申鐃緒申鐃緒申
2099     var
2100     ListColumn: TListColumn;
2101     i: Integer;
2102     begin
2103     ListView.Items.BeginUpdate;
2104     try
2105     Screen.Cursor := crHourGlass;
2106    
2107 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
2108     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
2109     if ListView.Columns.Count <> (High( COLUMN ) - Low( COLUMN ) + 1) then
2110     begin
2111     ListView.Columns.Clear;
2112     for i := 0 to Length(COLUMN) - 1 do begin
2113     ListColumn := ListView.Columns.Add;
2114     ListColumn.Caption := COLUMN[i];
2115     ListColumn.Width := GikoSys.Setting.BoardColumnWidth[i];
2116     ListColumn.Alignment := COLUMN_ALIGNMENT[i];
2117     end;
2118     end;
2119 hi_ 1.1
2120     ListView.Items.Count := 0;
2121     ListView.Items.Clear;
2122    
2123     case GikoForm.ViewType of
2124     gvtAll: ListView.Items.Count := Board.Count;
2125     gvtLog: ListView.Items.Count := Board.GetLogThreadCount;
2126     gvtNew: ListView.Items.Count := Board.GetNewThreadCount;
2127     gvtUser: ListView.Items.Count := Board.GetUserThreadCount;
2128     end;
2129    
2130     ListNameLabel.Caption := Board.Title;
2131     FolderImage.Picture := nil;
2132     ItemIcon16.GetBitmap(5, FolderImage.Picture.Bitmap);
2133    
2134 yoffy 1.2 FSortIndex := 0;
2135     FSortOrder := False;
2136     ListViewColumnClick(nil, ListView.Column[0]);
2137 hi_ 1.1
2138     Result := Board.Count;
2139     finally
2140     Screen.Cursor := crDefault;
2141     ListView.Items.EndUpdate;
2142     end;
2143     end;
2144    
2145     procedure TGikoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
2146     var
2147     i: Integer;
2148     begin
2149     if FTreeType = gttHistory then begin
2150 yoffy 1.206 if Node <> nil then
2151     if TObject( Node.Data ) is TFavoriteThreadItem then
2152     if GetActiveContent <> TFavoriteThreadItem( Node.Data ).Item then
2153     FavoriteClick( Node );
2154 hi_ 1.1 Exit;
2155     end;
2156    
2157     ListView.Selected := nil;
2158     ListView.Items.Count := 0;
2159     ListView.Items.Clear;
2160     // ListView.Columns.Clear;
2161    
2162     Caption := CAPTION_NAME;
2163     //Application.Title := CAPTION_NAME;
2164    
2165    
2166 yoffy 1.123 if GetActiveList is TBBS then begin
2167 hi_ 1.1 for i := 0 to ListView.Columns.Count - 1 do
2168     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
2169     end else if GetActiveList is TCategory then begin
2170     for i := 0 to ListView.Columns.Count - 1 do
2171     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
2172     end else if GetActiveList is TBoard then begin
2173     for i := 0 to ListView.Columns.Count - 1 do
2174     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
2175     end;
2176    
2177 yoffy 1.123 if TObject(Node.Data) is TBBS then begin
2178 hi_ 1.1 SetActiveList(Node.data);
2179     end else if TObject(Node.Data) is TCategory then begin
2180     SetActiveList(Node.data);
2181     end else if TObject(Node.Data) is TBoard then begin
2182     if not TBoard(Node.Data).IsThreadDatRead then begin
2183     Screen.Cursor := crHourGlass;
2184     try
2185 h677 1.234 if not TBoard(Node.Data).IsThreadDatRead then
2186     GikoSys.ReadSubjectFile(Node.Data);
2187 hi_ 1.1 finally
2188     Screen.Cursor := crDefault;
2189     end;
2190     end;
2191     SetActiveList(Node.data);
2192     end;
2193     end;
2194    
2195     procedure TGikoForm.ListViewData(Sender: TObject; Item: TListItem);
2196     var
2197     // FileName: string;
2198     // DateTime: TDateTime;
2199     BoardCnt: Integer;
2200 yoffy 1.123 BBS: TBBS;
2201 hi_ 1.1 Category: TCategory;
2202     Board: TBoard;
2203     ThreadItem: TThreadItem;
2204     RepStr: string;
2205 h677 1.170 ActivListObj : TObject;
2206 hi_ 1.1 begin
2207 h677 1.170 ActivListObj := ActiveList;
2208     if ActivListObj is TBBS then begin
2209     BBS := TBBS(ActivListObj);
2210 yoffy 1.114
2211 hi_ 1.1 ListView.StateImages := nil;
2212    
2213     if BBS = nil then Exit;
2214     if BBS.Count <= 0 then Exit;
2215     if Item = nil then Exit;
2216     if Item.Index > BBS.Count then Exit;
2217     if ListView.Items.Count = 0 then Exit;
2218    
2219 h677 1.196 if not (BBS.Items[Item.index] is TCategory) then Exit;
2220     Category := TCategory(BBS.Items[Item.index]);
2221 hi_ 1.1
2222     if Category = nil then Exit;
2223    
2224     if ListNumberVisibleAction.Checked then
2225     Item.Caption := IntToStr(Category.No) + ': ' + Category.Title
2226     else
2227     Item.Caption := Category.Title;
2228    
2229 yoffy 1.2 Item.ImageIndex := ITEM_ICON_CATEGORY1;
2230 hi_ 1.1 Item.Data := Category;
2231 h677 1.170 end else if ActivListObj is TCategory then begin
2232     Category := TCategory(ActivListObj);
2233 hi_ 1.1
2234     ListView.StateImages := nil;
2235    
2236     if Category = nil then Exit;
2237     if Category.Count <= 0 then Exit;
2238     if Item = nil then Exit;
2239     if Item.Index >= Category.Count then Exit;
2240     if ListView.Items.Count = 0 then Exit;
2241    
2242     if not (Category.Items[Item.Index] is TBoard) then Exit;
2243     Board := TBoard(Category.Items[Item.Index]);
2244    
2245     if Board = nil then Exit;
2246    
2247     if ListNumberVisibleAction.Checked then
2248     Item.Caption := IntToStr(Board.No) + ': ' + Board.Title
2249     else
2250     Item.Caption := Board.Title;
2251    
2252     if Item.SubItems.Count <> 2 then begin
2253     Item.SubItems.Clear;
2254     Item.SubItems.Add('');
2255     Item.SubItems.Add('');
2256     end;
2257    
2258 yoffy 1.2 Item.ImageIndex := ITEM_ICON_BOARD1;
2259 hi_ 1.1
2260     if Board.Round then
2261 yoffy 1.51 Item.SubItems[0] := Board.RoundName // '鐃?鐃緒申'
2262 hi_ 1.1 else
2263     Item.SubItems[0] := '';
2264    
2265     if Board.RoundDate = ZERO_DATE then begin
2266     Item.SubItems[1] := '';
2267     end else
2268     Item.SubItems[1] := FormatDateTime('yyyy/mm/dd hh:mm:ss', Board.RoundDate);
2269     Item.Data := Board;
2270 h677 1.170 end else if ActivListObj is TBoard then<