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.312 - (hide annotations) (download) (as text)
Sun May 23 15:37:07 2004 UTC (19 years, 11 months ago) by h677
Branch: MAIN
Changes since 1.311: +26 -22 lines
File MIME type: text/x-pascal
スレッド描画部分の最適化。
お気に入りへのD&Dの修復。

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