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.98 - (hide annotations) (download) (as text)
Wed Oct 15 04:40:43 2003 UTC (20 years, 6 months ago) by yoffy
Branch: MAIN
Branch point for: stable
Changes since 1.97: +102 -41 lines
File MIME type: text/x-pascal
・スレ一覧のホイールがコントロールパネルで設定されている移動量を反映するようになった。
・お気に入りキャビネットで板に対して右クリックした場合に「URLと名前をコピー」などが機能していなかったバグを修正。

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