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.99 - (hide annotations) (download) (as text)
Sat Nov 1 16:09:37 2003 UTC (20 years, 5 months ago) by yoffy
Branch: MAIN
Changes since 1.98: +69 -53 lines
File MIME type: text/x-pascal
・お気に入りに既に登録されている物を再度登録しようとした場合にダイアログで尋ねるようになった。

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 yoffy 1.99 procedure ShowFavoriteAddDialog( Item : TObject );
966 hi_ 1.1 published
967     property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
968     end;
969    
970     TFavoriteMenuItem = class(TMenuItem)
971     private
972     FData : Pointer;
973     public
974     property Data: Pointer read FData write FData;
975     end;
976    
977     TLinkToolButton = class(TToolButton)
978     private
979     FData : Pointer;
980     public
981     property Data: Pointer read FData write FData;
982     end;
983    
984     var
985     GikoForm: TGikoForm;
986    
987     implementation
988    
989     uses
990     About, Option, Round, Splash, Sort, ListSelect,
991 yoffy 1.54 NewBoard;
992 hi_ 1.1
993     const
994     CAPTION_NAME: string = '鐃?鐃?鐃?鐃?';
995     BLANK_HTML: string = 'about:blank';
996 yoffy 1.51 SELECTCOMBOBOX_NAME: string = ''; // '鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申';
997     SELECTCOMBOBOX_COLOR: TColor = clWindow;
998 h677 1.79 //D&D鐃緒申鐃?
999     DandD_THRESHOLD = 5; //D&D鐃緒申鐃緒申鐃?鐃?pixcel)
1000 yoffy 1.2 //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1001     ITEM_ICON_2CH1 = 0; //2ch鐃?鐃?鐃?鐃緒申
1002     ITEM_ICON_2CH2 = 1; //2ch鐃?鐃?鐃?鐃緒申
1003     ITEM_ICON_CATEGORY1 = 2; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1004     ITEM_ICON_CATEGORY2 = 3; //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1005     ITEM_ICON_BOARD1 = 4; //鐃緒申鐃?鐃?鐃?鐃緒申
1006     ITEM_ICON_BOARD2 = 5; //鐃緒申鐃?鐃?鐃?鐃緒申
1007     ITEM_ICON_THREADLOG1 = 6; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1008     ITEM_ICON_THREADLOG2 = 7; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1009     ITEM_ICON_THREAD1 = 8; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1010     ITEM_ICON_THREAD2 = 9; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
1011     ITEM_ICON_THREADNEW1 = 10; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1012     ITEM_ICON_THREADNEW2 = 11; //鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1013     ITEM_ICON_SORT1 = 12; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1014     ITEM_ICON_SORT2 = 13; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
1015    
1016     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1017 yoffy 1.48 TOOL_ICON_HEIGHT_MAX = 16; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1018     TOOL_ICON_HEIGHT_MIN = 17; //鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1019     TOOL_ICON_HEIGHT_NORMAL = 18; //鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1020     TOOL_ICON_WIDTH_MAX = 19; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1021     TOOL_ICON_WIDTH_MIN = 20; //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1022     TOOL_ICON_WIDTH_NORMAL = 21; //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1023    
1024 yoffy 1.51 TOOL_ICON_FAV_FOLDER = 30; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申
1025     TOOL_ICON_FAV_BOARD = 31; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1026     TOOL_ICON_FAV_THREAD = 32; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1027 hi_ 1.1
1028     HTML_FILE_NAME = 'temp_preview.html';
1029    
1030     {$R *.DFM}
1031    
1032     procedure TGikoForm.CreateParams(var Params: TCreateParams);
1033     begin
1034     inherited;
1035     if FormStyle in [fsNormal, fsStayOnTop] then begin
1036     if BorderStyle in [bsSingle, bsSizeable] then begin
1037     Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
1038     Params.WndParent := 0;
1039     end;
1040     end;
1041     end;
1042    
1043     procedure TGikoForm.FormCreate(Sender: TObject);
1044     const
1045     TVS_NOTOOLTIPS = $0080;
1046     var
1047     FileName: string;
1048     Style: DWORD;
1049     msg: string;
1050     i: Integer;
1051     wp: TWindowPlacement;
1052 hi_ 1.32 s: string;
1053 hi_ 1.1 begin
1054     {$IFDEF DEBUG}
1055     AllocConsole;
1056     Writeln('============================================================');
1057     Writeln(' 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃? 鐃?鐃緒申鐃?鐃?鐃緒申');
1058     Writeln('');
1059     Writeln(' 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
1060     Writeln(' 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
1061     Writeln('============================================================');
1062     {$ENDIF}
1063     Application.OnDeactivate := AppFormDeactivate;
1064     Self.OnDeactivate := AppFormDeactivate;
1065     Application.HookMainWindow(Hook);
1066    
1067     FTreeType := gttNone;
1068    
1069 yoffy 1.51 FSearchDialog := nil;
1070 yoffy 1.49
1071 hi_ 1.1 //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
1072     Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
1073    
1074     //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1075     RoundList := TRoundList.Create;
1076     RoundList.LoadRoundFile;
1077    
1078     //BBS鐃緒申鐃緒申
1079     BBS2ch := TBBS2ch.Create(GikoSys.Setting.LogFolder);
1080    
1081     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1082     // FFavorite := TFavorite.Create(FavoriteTreeView);
1083     FavoriteDM.SetFavTreeView(FavoriteTreeView);
1084     FavoriteDM.ReadFavorite;
1085    
1086     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1087     AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1088    
1089     EnabledCloseButton := True;
1090     BoardGroup.BBS2ch.ReadBoardFile; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1091     // SetBoardTreeNode; //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
1092    
1093     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1094     ListView.ViewStyle := GikoSys.Setting.ListStyle;
1095    
1096     //鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1097     // MainCoolBar.Top := 0;
1098     // MainCoolBar.Left := 0;
1099    
1100     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?
1101     AnimePanel.Top := 0;
1102     AnimePanel.Left := 0;
1103    
1104     //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1105    
1106     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1107     CabinetVisibleAction.Checked := not GikoSys.Setting.CabinetVisible;
1108     CabinetVisibleAction.Execute;
1109     CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
1110    
1111     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
1112     MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
1113     MsgBarVisibleActionExecute(nil);
1114     MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
1115    
1116     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1117     StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
1118     StatusBarVisibleActionExecute(nil);
1119    
1120     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
1121     TreeView.Items.BeginUpdate;
1122 yoffy 1.67 FavoriteTreeView.Items.BeginUpdate;
1123 hi_ 1.1 ListView.Items.BeginUpdate;
1124     try
1125     TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1126     TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1127     TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1128     TreeView.Color := GikoSys.Setting.CabinetBackColor;
1129    
1130 yoffy 1.67 FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1131     FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1132     FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1133     FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1134    
1135 hi_ 1.1 ListView.Font.Name := GikoSys.Setting.ListFontName;
1136     ListView.Font.Size := GikoSys.Setting.ListFontSize;
1137     ListView.Font.Color := GikoSys.Setting.ListFontColor;
1138     ListView.Color := GikoSys.Setting.ListBackColor;
1139     finally
1140     TreeView.Items.EndUpdate;
1141 yoffy 1.67 FavoriteTreeView.Items.EndUpdate;
1142 hi_ 1.1 ListView.Items.EndUpdate;
1143     end;
1144     //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
1145     ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
1146    
1147     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
1148     BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1149     BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1150 h677 1.90 FDragWFirst := false;
1151 hi_ 1.1
1152     // TreeView.TopItem.Expanded := True; //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1153     // TreeView.Selected := TreeView.Items[0]; //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1154     SetContent(nil); //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1155    
1156     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1157     wp.length := sizeof(wp);
1158     wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1159     wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1160     wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1161     wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1162     wp.showCmd := SW_HIDE;
1163     SetWindowPlacement(Handle, @wp);
1164    
1165     // SetBounds(GikoSys.Setting.WindowLeft, GikoSys.Setting.WindowTop,
1166     // GikoSys.Setting.WindowWidth, GikoSys.Setting.WindowHeight);
1167     if GikoSys.Setting.WindowMax then
1168     WindowState := wsMaximized;
1169    
1170     //鐃?鐃?鐃?鐃?鐃緒申
1171     try
1172     FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1173     if FileExists(FileName) then
1174     Animate.FileName := FileName;
1175     except
1176     end;
1177     // AnimePanel.Height := 26;
1178     // AnimePanel.Width := 39;
1179     // AnimePanel.Top := 2;
1180     // AnimePanel.Left := Width - 48;
1181    
1182     //鐃?鐃?鐃?鐃?
1183     FNameCookie := '';
1184     FMailCookie := '';
1185    
1186     //鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1187     AllItemAction.Checked := True;
1188 yoffy 1.51 AllResAction.Checked := True;
1189 hi_ 1.1
1190     //TreeView鐃緒申鐃緒申鐃緒申鐃?鐃緒申ToolTip鐃緒申鐃緒申鐃?鐃緒申
1191     Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1192     Style := Style or TVS_NOTOOLTIPS;
1193     SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1194    
1195     // 鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1196     TreeView.Align := alClient;
1197 yoffy 1.57 FavoriteTreeView.Align := alClient;
1198 hi_ 1.1 FavoriteTreeView.Visible := False;
1199    
1200     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1201     // FBrowserSizeFlag := False;
1202     // FBrowserSizeHeight := ViewPanel.Height;
1203    
1204     FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1205     FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1206    
1207     ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1208     ArrangeAction.Execute;
1209    
1210     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1211     case GikoSys.Setting.ListWidthState of
1212     glsMax: begin
1213     ViewPanel.Width := 1;
1214 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1215     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1216 hi_ 1.1 end;
1217     glsMin: begin
1218     ViewPanel.Width := GikoSys.Setting.ListWidth;
1219 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1220     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1221 hi_ 1.1 end;
1222     else begin
1223     ViewPanel.Width := GikoSys.Setting.ListWidth;
1224 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1225     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1226 hi_ 1.1 end;
1227     end;
1228     // if GikoSys.Setting.ListWidthMax then begin
1229     // ViewPanel.Width := 1;
1230     // BrowserSizeAction.ImageIndex := ICON_WIDTH_MIN;
1231     // end else begin
1232     // ViewPanel.Width := GikoSys.Setting.ListWidth;
1233     // BrowserSizeAction.ImageIndex := ICON_WIDTH_MAX;
1234     // end;
1235     end else begin
1236     case GikoSys.Setting.ListHeightState of
1237     glsMax: begin
1238     ViewPanel.Height := 1;
1239 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1240     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1241 hi_ 1.1 end;
1242     glsMin: begin
1243     ViewPanel.Height := GikoSys.Setting.ListHeight;
1244 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1245     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1246 hi_ 1.1 end;
1247     else begin
1248     ViewPanel.Height := GikoSys.Setting.ListHeight;
1249 yoffy 1.2 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1250     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1251 hi_ 1.1 end;
1252     end;
1253     // if GikoSys.Setting.ListHeightState = glsMax then begin
1254     // end else begin
1255     // ViewPanel.Height := GikoSys.Setting.ListHeight;
1256     // BrowserSizeAction.ImageIndex := ICON_HEIGHT_MAX;
1257     // end;
1258     end;
1259    
1260     //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1261     // ProgressBar.Visible := False;
1262     ProgressBar.Parent := StatusBar;
1263     ProgressBar.Top := 2;
1264     ProgressBar.Left := 0;
1265     ProgressBar.Width := StatusBar.Panels[0].Width;
1266     ProgressBar.Height := StatusBar.Height - 2;
1267     ProgressBar.Position := 0;
1268    
1269     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1270     //formshow()鐃緒申鐃緒申鐃緒申
1271 yoffy 1.2
1272 hi_ 1.1 //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1273     // FDownload := TDownload.Create;
1274     // FDownload.OnDownloadEnd := OnDonloadEnd;
1275     // FDownload.OnWork := Work;
1276     // FDownload.OnWorkBegin := WorkBegin;
1277     // FDownload.OnWorkEnd := WorkEnd;
1278    
1279     //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1280     FControlThread := TThreadControl.Create(True);
1281     FControlThread.MaxThreadCount := 1;
1282     FControlThread.Resume;
1283     FControlThread.OnDownloadEnd := DownloadEnd;
1284     FControlThread.OnDownloadMsg := DownloadMsg;
1285     FControlThread.OnWork := Work;
1286     FControlThread.OnWorkBegin := WorkBegin;
1287     FControlThread.OnWorkEnd := WorkEnd;
1288     // ProgressPanel.Width := FControlThread.MaxThreadCount * 12;
1289    
1290     //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
1291     FHistoryList := TList.Create;
1292    
1293 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1294     SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1295 yoffy 1.2
1296 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申
1297     SetBrowserTabState;
1298    
1299     BrowserBoardNameLabel.Caption := '';
1300     BrowserNameLabel.Caption := '';
1301     FWorkCount := 0;
1302    
1303     // DetailIconAction.Execute;
1304    
1305     // FBrowserSizeHeight := ViewPanel.Height;
1306     FTabHintIndex := -1;
1307    
1308     //鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1309     // if not GikoSys.DirectoryExistsEx(BBS2ch.GetLogFolder) then begin
1310     // GikoSys.ForceDirectoriesEx(BBS2ch.GetLogFolder);
1311     // end;
1312     // FormResize(Sender);
1313     // MainCoolBarResize(Sender);
1314     // Application.ProcessMessages;
1315    
1316     //鐃緒申鐃緒申鐃?鐃?鐃?
1317     SetLinkBar;
1318    
1319     //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?
1320     SetMenuFont;
1321    
1322     //鐃?鐃?鐃緒申鐃?鐃?Wrapable
1323     ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1324     BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1325    
1326 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1327     ReadToolBarSetting(ActionList, StdToolBar);
1328     ReadToolBarSetting(ActionList, ListToolBar);
1329 yoffy 1.51 try
1330     for i := ListToolBar.ControlCount - 1 downto 0 do
1331     begin
1332     if ListToolBar.Controls[ i ].Action = SelectItemAction then
1333     begin
1334     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1335     if (i + 1) < ListToolBar.ControlCount then
1336     if ListToolBar.Controls[ i + 1 ] is TToolButton then
1337     if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1338     ListToolBar.Controls[ i + 1 ].Visible := False;
1339    
1340     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申
1341     ListToolBar.Controls[ i ].Visible := False;
1342     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申
1343     SelectComboBox.Left := ListToolBar.Controls[ i ].Left;
1344     SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth;
1345     SelectComboBox.Parent := ListToolBar;
1346     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
1347     SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width;
1348     SelectComboBoxSplitter.Parent := ListToolBar;
1349    
1350     break;
1351     end;
1352     end;
1353     except
1354     end;
1355 yoffy 1.2 ReadToolBarSetting(ActionList, BrowserToolBar);
1356     SetToolBarPopup;
1357 h677 1.81 OnlyAHundredRes.Checked := GikoSys.Setting.OnlyAHundredRes;
1358 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃?
1359     AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1360    
1361 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1362    
1363     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1364     if not FileExists(GikoSys.GetBoardFileName) then begin
1365     msg := '鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申' + #13#10#13#10
1366     + '鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申' + #13#10
1367     + '鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?';
1368     MsgBox(SplashWindow.Handle, msg, '鐃?鐃?鐃?鐃?', MB_OK or MB_ICONINFORMATION);
1369     NewBoardAction.Execute;
1370     end;
1371    
1372     //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1373     GikoSys.LoadKeySetting(ActionList);
1374    
1375     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1376     // FLastRoundTime := 0;
1377    
1378     //ResHint
1379     FHint := TResPopup.Create(Self);
1380    
1381 yoffy 1.83 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申鐃緒申)
1382     // 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?)
1383     i := GikoSys.Setting.CabinetIndex;
1384     Cabinet2chAction.Execute;
1385     GikoSys.Setting.CabinetIndex := i;
1386    
1387 yoffy 1.67 // 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1388     Case GikoSys.Setting.CabinetIndex of
1389     0: Cabinet2chAction.Execute;
1390     1: CabinetHistoryAction.Execute;
1391     2: CabinetFavoriteAction.Execute;
1392     end;
1393    
1394 yoffy 1.2 //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1395     if GikoSys.Setting.AutoLogin then
1396     LoginAction.Execute;
1397    
1398     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?
1399     for i := 1 to ParamCount do begin
1400     MoveToURL(ParamStr(i));
1401     end;
1402     // SetStdToolBar;
1403     // SetLinkBar;
1404 h677 1.22
1405 hi_ 1.32 s := GikoSys.FAbon.NGwordname;
1406     StatusBar.Panels[2].Text := s;
1407     StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
1408     StatusBarResize(Sender);
1409 yoffy 1.2 end;
1410    
1411     //
1412     //
1413     //
1414     procedure TGikoForm.FormShow(Sender: TObject);
1415     var
1416     i: Integer;
1417     CoolSet: TCoolSet;
1418     begin
1419     ShowWindow(Application.Handle, SW_HIDE);
1420    
1421     //FormCreate鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1422     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1423     StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1424     StdToolBarVisibleActionExecute( nil );
1425     AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1426     AddressBarVisibleActionExecute( nil );
1427     LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1428     LinkBarVisibleActionExecute( nil );
1429     ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1430     ListToolBarVisibleActionExecute( nil );
1431     ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1432     ListNameBarVisibleActionExecute( nil );
1433     BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1434     BrowserToolBarVisibleActionExecute( nil );
1435     BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1436     BrowserNameBarVisibleActionExecute( nil );
1437    
1438     //鐃?鐃緒申鐃?鐃?鐃?鐃?
1439     BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1440     BrowserTabVisibleActionExecute(nil);
1441    
1442     if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1443     BrowserTabTopAction.Checked := True;
1444     BrowserTabTopActionExecute(nil);
1445     end else begin
1446     BrowserTabBottomAction.Checked := True;
1447     BrowserTabBottomActionExecute(nil);
1448     end;
1449    
1450     if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1451     BrowserTabTabStyleAction.Checked := True;
1452     BrowserTabTabStyleActionExecute(nil);
1453     end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1454     BrowserTabButtonStyleAction.Checked := True;
1455     BrowserTabButtonStyleActionExecute(nil);
1456     end else begin
1457     BrowserTabFlatStyleAction.Checked := True;
1458     BrowserTabFlatStyleActionExecute(nil);
1459     end;
1460    
1461    
1462 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1463     MainCoolBar.Bands.BeginUpdate;
1464     try
1465     for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1466     CoolSet := GikoSys.Setting.MainCoolSet[i];
1467     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1468     Continue;
1469     MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1470     MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1471     MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1472     end;
1473     finally
1474     MainCoolBar.Bands.EndUpdate;
1475     end;
1476    
1477     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1478     ListCoolBar.Bands.BeginUpdate;
1479     try
1480     for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1481     CoolSet := GikoSys.Setting.ListCoolSet[i];
1482     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1483     Continue;
1484     ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1485     ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1486     ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1487     end;
1488     finally
1489     ListCoolBar.Bands.EndUpdate;
1490     end;
1491    
1492     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1493     BrowserCoolBar.Bands.BeginUpdate;
1494     try
1495     for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1496     CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1497     if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then
1498     Continue;
1499     BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1500     BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1501     BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1502     end;
1503     finally
1504     BrowserCoolBar.Bands.EndUpdate;
1505     end;
1506    
1507     end;
1508 yoffy 1.2 {
1509 hi_ 1.1 procedure TGikoForm.SetStdToolBar;
1510     var
1511     i: Integer;
1512     FileName: string;
1513     ini: TMemIniFile;
1514     s: string;
1515     Action: TContainedAction;
1516     ToolButton: TToolButton;
1517     begin
1518     exit;
1519     for i := StdToolBar.ButtonCount - 1 downto 0 do begin
1520     StdToolBar.RemoveControl(StdToolBar.Buttons[i]);
1521     //StdToolBar.Buttons[i].Free;
1522     end;
1523     FileName := GikoSys.GetConfigDir + 'ToolBar.ini';
1524     ini := TMemIniFile.Create(FileName);
1525     i := 0;
1526     while true do begin
1527     s := ini.ReadString('StdToolBar', IntToStr(i), '');
1528     if s = '' then
1529     Break;
1530     if s = '-' then begin
1531     ToolButton := TToolButton.Create(StdToolBar);
1532     ToolButton.Style := tbsSeparator;
1533     ToolButton.Width := 8;
1534     ToolButton.Left := 10000;
1535     StdToolBar.InsertControl(ToolButton);
1536     end else begin
1537     Action := GetAction(s);
1538     if Action <> nil then begin
1539     ToolButton := TToolButton.Create(StdToolBar);
1540     ToolButton.Action := Action;
1541     ToolButton.Left := 10000;
1542     StdToolBar.InsertControl(ToolButton);
1543     end;
1544     end;
1545     Inc(i);
1546     end;
1547     end;
1548 yoffy 1.2 }
1549     {function TGikoForm.GetAction(ActionName: string): TContainedAction;
1550 hi_ 1.1 var
1551     i: Integer;
1552     begin
1553     for i := 0 to ActionList.ActionCount - 1 do begin
1554     if ActionList.Actions[i].Name = ActionName then begin
1555     Result := ActionList.Actions[i];
1556     Exit;
1557     end;
1558     end;
1559     Result := nil;
1560 yoffy 1.2 end;}
1561 hi_ 1.1
1562     procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1563     var
1564     i: Integer;
1565     CoolSet: TCoolSet;
1566     wp: TWindowPlacement;
1567     begin
1568 h677 1.97 if ( GikoSys.Setting.ShowDialogForEnd ) and
1569     (MessageDlg('鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1570     CanClose := false;
1571     Exit;
1572     end else begin
1573     CanClose := True;
1574     end;
1575 hi_ 1.1 Application.OnDeactivate := nil;
1576     Self.OnDeactivate := nil;
1577    
1578 yoffy 1.2 //column鐃緒申
1579     if GetActiveList is TBBS2ch then begin
1580     for i := 0 to ListView.Columns.Count - 1 do
1581     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
1582     end else if GetActiveList is TCategory then begin
1583     for i := 0 to ListView.Columns.Count - 1 do
1584     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
1585     end else if GetActiveList is TBoard then begin
1586     for i := 0 to ListView.Columns.Count - 1 do
1587     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
1588     end;
1589    
1590     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1591     wp.length := sizeof(wp);
1592     GetWindowPlacement(Handle, @wp);
1593     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1594     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1595     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1596     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1597     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1598    
1599     GikoSys.Setting.ListStyle := ListView.ViewStyle;
1600     GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1601     GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1602     GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1603     GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1604     if ArrangeAction.Checked then
1605     GikoSys.Setting.ListOrientation := gloVertical
1606     else
1607     GikoSys.Setting.ListOrientation := gloHorizontal;
1608     GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1609    
1610     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1611     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1612     CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1613     CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1614     CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1615     GikoSys.Setting.MainCoolSet[i] := CoolSet;
1616     end;
1617     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1618     for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1619     CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1620     CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1621     CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1622     GikoSys.Setting.ListCoolSet[i] := CoolSet;
1623     end;
1624     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1625     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1626     CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1627     CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1628     CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1629     GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1630 hi_ 1.1 end;
1631    
1632 yoffy 1.2 GikoSys.Setting.WriteWindowSettingFile;
1633     GikoSys.Setting.WriteNameMailSettingFile;
1634    
1635     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1636 hi_ 1.1 try
1637 yoffy 1.2 FavoriteDM.WriteFavorite;
1638 hi_ 1.1 except
1639     end;
1640 yoffy 1.2 // Favorite.Free;
1641 hi_ 1.1
1642     try
1643     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1644     NotSelectTabCloseAction.Execute;
1645     if BrowserTab.Tabs.Count >= 1 then begin
1646     DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1647     end;
1648     except
1649     end;
1650    
1651     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申&鐃?鐃緒申
1652     try
1653     RoundList.SaveRoundFile;
1654     except
1655     end;
1656     try
1657     RoundList.Clear;
1658     except
1659     end;
1660     try
1661     RoundList.Free;
1662     except
1663     end;
1664    
1665     //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
1666     try
1667     FHistoryList.Free;
1668     except
1669     end;
1670    
1671     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1672     try
1673     AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1674     except
1675     end;
1676    
1677     try
1678     FControlThread.Terminate;
1679     except
1680     end;
1681    
1682     // FDownload.Free;
1683     try
1684     SetActiveList(nil);
1685     except
1686     end;
1687     //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1688     Sleep(10);
1689     try
1690     TreeView.Items.Clear;
1691     except
1692     end;
1693    
1694     try
1695     if FavoriteDM <> nil then
1696     FavoriteDM.Free;
1697     FavoriteDM := nil;
1698     if AddressHistoryDM <> nil then
1699     AddressHistoryDM.Free;
1700     AddressHistoryDM := nil;
1701     except
1702     end;
1703     try
1704     if BBS2ch <> nil then
1705     BBS2ch.Free;
1706     BBS2ch := nil;
1707     except
1708     end;
1709 yoffy 1.2
1710     try
1711     //Hint鐃?鐃緒申
1712     if FHint <> nil then begin
1713     FHint.ReleaseHandle;
1714     FHint.Free;
1715     FHint := nil;
1716     end;
1717     //Preview鐃?鐃緒申
1718     if TPreviewBrowser <> nil then begin
1719     FPreviewBrowser.Free;
1720     FPreviewBrowser := nil;
1721     end;
1722     except
1723     end;
1724 hi_ 1.1 end;
1725    
1726     procedure TGikoForm.FormDestroy(Sender: TObject);
1727     //var
1728     // wp: TWindowPlacement;
1729     begin
1730     { //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
1731     FHistoryList.Free;
1732    
1733     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1734     wp.length := sizeof(wp);
1735     GetWindowPlacement(Handle, @wp);
1736    
1737     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1738     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1739     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1740     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1741     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1742    
1743     GikoSys.Setting.CabinetVisible := CabinetPanel.Visible;
1744     GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1745    
1746     GikoSys.Setting.WriteWindowSettingFile;
1747     GikoSys.Setting.WriteNameMailSettingFile;
1748     FDownload.Free;
1749     BBS2ch.Free;}
1750     end;
1751    
1752     //鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1753     procedure TGikoForm.FormClose(Sender: TObject; var Action: TCloseAction);
1754     begin
1755     Application.Terminate;
1756     Action := caFree;
1757     end;
1758    
1759     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1760     procedure TGikoForm.CabinetPanelHide(Sender: TObject);
1761     begin
1762     CabinetVisibleAction.Execute;
1763     // CabinetPanelVisible(false);
1764     end;
1765    
1766     procedure TGikoForm.ReloadBBS;
1767     begin
1768     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1769     NotSelectTabCloseAction.Execute;
1770     if BrowserTab.Tabs.Count >= 1 then
1771     DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0]));
1772     //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
1773     FHistoryList.Clear;
1774     //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1775     TreeView.Items.Clear;
1776    
1777     //BBS鐃?鐃緒申
1778     BBS2ch.Free;
1779    
1780     SetActiveList(nil);
1781    
1782     FTreeType := gttNone;
1783    
1784     //BBS鐃緒申鐃緒申
1785     BBS2ch := TBBS2ch.Create(GikoSys.Setting.LogFolder);
1786    
1787     BBS2ch.ReadBoardFile; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1788     Show2chTree;
1789     end;
1790    
1791     //鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1792     procedure TGikoForm.SetBoardTreeNode;
1793     var
1794     i, j: integer;
1795     Root: TTreeNode;
1796     CategoryNode: TTreeNode;
1797     BoardNode: TTreeNode;
1798     Category: TCategory;
1799     Board: TBoard;
1800     begin
1801     TreeView.Items.BeginUpdate;
1802     TreeView.Items.Clear;
1803     try
1804     Root := TreeView.Items.Add(nil, BBS2ch.Title);
1805 yoffy 1.2 Root.ImageIndex := ITEM_ICON_2CH1;
1806     Root.SelectedIndex := ITEM_ICON_2CH2;
1807 hi_ 1.1 Root.Data := BBS2ch;
1808     if SplashWindow <> nil then
1809     SplashWindow.ProgressBar.Max := BoardGroup.BBS2ch.Count;
1810    
1811     for i := 0 to BoardGroup.BBS2ch.Count - 1 do begin
1812     Category := TCategory(BoardGroup.BBS2ch.Items[i]);
1813     CategoryNode := TreeView.Items.AddChild(Root, Category.Title);
1814     CategoryNode.Data := Category;
1815 yoffy 1.2 CategoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
1816     CategoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
1817 hi_ 1.1
1818     for j := 0 to Category.Count - 1 do begin
1819     Board := TBoard(Category.Items[j]);
1820     Board.BeginUpdate;
1821     BoardNode := TreeView.Items.AddChild(CategoryNode, Board.Title);
1822     BoardNode.Data := Board;
1823 yoffy 1.2 BoardNode.ImageIndex := ITEM_ICON_BOARD1;
1824     BoardNode.SelectedIndex := ITEM_ICON_BOARD2;
1825 hi_ 1.1 Board.LoadSettings;
1826     Board.EndUpdate;
1827     end;
1828    
1829     CategoryNode.Expanded := Category.NodeExpand;
1830    
1831     if SplashWindow <> nil then begin
1832     SplashWindow.ProgressBar.StepIt;
1833     Application.ProcessMessages;
1834     end;
1835    
1836     end;
1837     finally
1838     TreeView.Items.EndUpdate;
1839     end;
1840     end;
1841    
1842     function TGikoForm.SetCategoryListItem(ABBS2ch: TBBS2ch): Integer;
1843     const
1844     COLUMN: array[0..0] of string = ('鐃?鐃?鐃?鐃緒申鐃緒申');
1845     var
1846     ListColumn: TListColumn;
1847     i: Integer;
1848     begin
1849     ListView.Items.BeginUpdate;
1850     try
1851     Screen.Cursor := crHourGlass;
1852    
1853     ListView.Columns.Clear;
1854     for i := 0 to Length(COLUMN) - 1 do begin
1855     ListColumn := ListView.Columns.Add;
1856     ListColumn.Caption := COLUMN[i];
1857     ListColumn.Width := GikoSys.Setting.BBSColumnWidth[i];
1858     end;
1859    
1860     ListView.Items.Count := 0;
1861     ListView.Items.Clear;
1862     ListView.Items.Count := ABBS2ch.Count;
1863    
1864     // UpFolderAction.Enabled := False;
1865     // AllItemAction.Enabled := False;
1866     // LogItemAction.Enabled := False;
1867     // NewItemAction.Enabled := False;
1868     // SelectItemAction.Enabled := False;
1869     // ListDownloadToolButton.Enabled := False;
1870     // BoardReservToolButton.Enabled := False;
1871     // ListThreadDownloadToolButton.Enabled := False;
1872    
1873     ListNameLabel.Caption := ABBS2ch.Title;
1874     FolderImage.Picture := nil;
1875     ItemIcon16.GetBitmap(1, FolderImage.Picture.Bitmap);
1876    
1877 yoffy 1.2 FSortIndex := 0;
1878     FSortOrder := False;
1879     ListViewColumnClick(nil, ListView.Column[0]);
1880    
1881 hi_ 1.1 Result := ABBS2ch.Count;
1882     finally
1883     Screen.Cursor := crDefault;
1884     ListView.Items.EndUpdate;
1885     end;
1886     end;
1887    
1888     function TGikoForm.SetBoardListItem(Category: TCategory): Integer;
1889     const
1890     COLUMN: array[0..2] of string = ('鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申');
1891     var
1892     ListColumn: TListColumn;
1893     i: Integer;
1894     begin
1895     ListView.Items.BeginUpdate;
1896     try
1897     Screen.Cursor := crHourGlass;
1898    
1899     ListView.Columns.Clear;
1900     for i := 0 to Length(COLUMN) - 1 do begin
1901     ListColumn := ListView.Columns.Add;
1902     ListColumn.Caption := COLUMN[i];
1903     ListColumn.Width := GikoSys.Setting.CategoryColumnWidth[i];
1904     end;
1905    
1906     ListView.Items.Count := 0;
1907     ListView.Items.Clear;
1908     ListView.Items.Count := Category.Count;
1909    
1910     // UpFolderAction.Enabled := True;
1911     // AllItemAction.Enabled := False;
1912     // LogItemAction.Enabled := False;
1913     // NewItemAction.Enabled := False;
1914     // SelectItemAction.Enabled := False;
1915     // ListDownloadToolButton.Enabled := False;
1916     // BoardReservToolButton.Enabled := False;
1917     // ListThreadDownloadToolButton.Enabled := False;
1918    
1919     ListNameLabel.Caption := Category.Title;
1920     FolderImage.Picture := nil;
1921     ItemIcon16.GetBitmap(3, FolderImage.Picture.Bitmap);
1922    
1923 yoffy 1.2 FSortIndex := 0;
1924     FSortOrder := False;
1925     ListViewColumnClick(nil, ListView.Column[0]);
1926    
1927 hi_ 1.1 Result := Category.Count;
1928     finally
1929     Screen.Cursor := crDefault;
1930     ListView.Items.EndUpdate;
1931     end;
1932     end;
1933    
1934     function TGikoForm.SetThreadListItem(Board: TBoard): Integer;
1935     const
1936     COLUMN: array[0..6] of string = ('鐃?鐃緒申鐃?鐃?鐃緒申', '鐃?鐃?鐃緒申鐃?', '鐃緒申鐃緒申', '鐃?鐃緒申',
1937     '鐃緒申鐃緒申', '鐃緒申鐃緒申鐃?鐃緒申', '鐃緒申鐃緒申鐃緒申鐃緒申');
1938     COLUMN_ALIGNMENT: array[0..6] of TAlignment = (taLeftJustify, taRightJustify,
1939     taRightJustify, taRightJustify,
1940     taRightJustify, taLeftJustify,
1941     taLeftJustify);
1942     //No, 鐃?鐃緒申鐃?鐃?鐃緒申, 鐃?鐃?鐃緒申鐃?, 鐃緒申鐃緒申鐃?鐃緒申, 鐃緒申鐃緒申鐃緒申鐃緒申
1943     var
1944     ListColumn: TListColumn;
1945     i: Integer;
1946     begin
1947     ListView.Items.BeginUpdate;
1948     try
1949     Screen.Cursor := crHourGlass;
1950    
1951 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1952     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1953     if ListView.Columns.Count <> (High( COLUMN ) - Low( COLUMN ) + 1) then
1954     begin
1955     ListView.Columns.Clear;
1956     for i := 0 to Length(COLUMN) - 1 do begin
1957     ListColumn := ListView.Columns.Add;
1958     ListColumn.Caption := COLUMN[i];
1959     ListColumn.Width := GikoSys.Setting.BoardColumnWidth[i];
1960     ListColumn.Alignment := COLUMN_ALIGNMENT[i];
1961     end;
1962     end;
1963 hi_ 1.1
1964     ListView.Items.Count := 0;
1965     ListView.Items.Clear;
1966    
1967     case GikoForm.ViewType of
1968     gvtAll: ListView.Items.Count := Board.Count;
1969     gvtLog: ListView.Items.Count := Board.GetLogThreadCount;
1970     gvtNew: ListView.Items.Count := Board.GetNewThreadCount;
1971     gvtUser: ListView.Items.Count := Board.GetUserThreadCount;
1972     end;
1973    
1974     ListNameLabel.Caption := Board.Title;
1975     FolderImage.Picture := nil;
1976     ItemIcon16.GetBitmap(5, FolderImage.Picture.Bitmap);
1977    
1978 yoffy 1.2 FSortIndex := 0;
1979     FSortOrder := False;
1980     ListViewColumnClick(nil, ListView.Column[0]);
1981 hi_ 1.1
1982     Result := Board.Count;
1983     finally
1984     Screen.Cursor := crDefault;
1985     ListView.Items.EndUpdate;
1986     end;
1987     end;
1988    
1989     procedure TGikoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
1990     var
1991     i: Integer;
1992     begin
1993     if FTreeType = gttHistory then begin
1994     // SetContent(TThreadItem(Node.Data));
1995     InsertBrowserTab(TThreadItem(Node.Data));
1996     Exit;
1997     end;
1998    
1999     ListView.Selected := nil;
2000     ListView.Items.Count := 0;
2001     ListView.Items.Clear;
2002     // ListView.Columns.Clear;
2003    
2004     Caption := CAPTION_NAME;
2005     //Application.Title := CAPTION_NAME;
2006    
2007    
2008     if GetActiveList is TBBS2ch then begin
2009     for i := 0 to ListView.Columns.Count - 1 do
2010     GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
2011     end else if GetActiveList is TCategory then begin
2012     for i := 0 to ListView.Columns.Count - 1 do
2013     GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
2014     end else if GetActiveList is TBoard then begin
2015     for i := 0 to ListView.Columns.Count - 1 do
2016     GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
2017     end;
2018    
2019     if TObject(Node.Data) is TBBS2ch then begin
2020     SetActiveList(Node.data);
2021     end else if TObject(Node.Data) is TCategory then begin
2022     SetActiveList(Node.data);
2023     end else if TObject(Node.Data) is TBoard then begin
2024     if not TBoard(Node.Data).IsThreadDatRead then begin
2025     Screen.Cursor := crHourGlass;
2026     try
2027     GikoSys.ReadSubjectFile(TBoard(Node.Data));
2028     finally
2029     Screen.Cursor := crDefault;
2030     end;
2031     end;
2032     SetActiveList(Node.data);
2033     end;
2034     end;
2035    
2036     procedure TGikoForm.ListViewData(Sender: TObject; Item: TListItem);
2037     var
2038     // FileName: string;
2039     // DateTime: TDateTime;
2040     BoardCnt: Integer;
2041     BBS: TBBS2ch;
2042     Category: TCategory;
2043     Board: TBoard;
2044     ThreadItem: TThreadItem;
2045     RepStr: string;
2046     begin
2047     if ActiveList is TBBS2ch then begin
2048     BBS := TBBS2ch(ActiveList);
2049    
2050     ListView.StateImages := nil;
2051    
2052     if BBS = nil then Exit;
2053     if BBS.Count <= 0 then Exit;
2054     if Item = nil then Exit;
2055     if Item.Index > BBS.Count then Exit;
2056     if ListView.Items.Count = 0 then Exit;
2057    
2058     if not (BBS.Items[Item.Index] is TCategory) then Exit;
2059     Category := TCategory(BBS.Items[Item.Index]);
2060    
2061     if Category = nil then Exit;
2062    
2063     if ListNumberVisibleAction.Checked then
2064     Item.Caption := IntToStr(Category.No) + ': ' + Category.Title
2065     else
2066     Item.Caption := Category.Title;
2067    
2068 yoffy 1.2 Item.ImageIndex := ITEM_ICON_CATEGORY1;
2069 hi_ 1.1 Item.Data := Category;
2070     end else if ActiveList is TCategory then begin
2071     Category := TCategory(ActiveList);
2072    
2073     ListView.StateImages := nil;
2074    
2075     if Category = nil then Exit;
2076     if Category.Count <= 0 then Exit;
2077     if Item = nil then Exit;
2078     if Item.Index >= Category.Count then Exit;
2079     if ListView.Items.Count = 0 then Exit;
2080    
2081     if not (Category.Items[Item.Index] is TBoard) then Exit;
2082     Board := TBoard(Category.Items[Item.Index]);
2083    
2084     if Board = nil then Exit;
2085    
2086     if ListNumberVisibleAction.Checked then
2087     Item.Caption := IntToStr(Board.No) + ': ' + Board.Title
2088     else
2089     Item.Caption := Board.Title;
2090    
2091     if Item.SubItems.Count <> 2 then begin
2092     Item.SubItems.Clear;
2093     Item.SubItems.Add('');
2094     Item.SubItems.Add('');
2095     end;
2096    
2097 yoffy 1.2 Item.ImageIndex := ITEM_ICON_BOARD1;
2098 hi_ 1.1
2099     if Board.Round then
2100 yoffy 1.51 Item.SubItems[0] := Board.RoundName // '鐃?鐃緒申'
2101 hi_ 1.1 else
2102     Item.SubItems[0] := '';
2103    
2104     if Board.RoundDate = ZERO_DATE then begin
2105     Item.SubItems[1] := '';
2106     end else
2107     Item.SubItems[1] := FormatDateTime('yyyy/mm/dd hh:mm:ss', Board.RoundDate);
2108     Item.Data := Board;
2109     end else if ActiveList is TBoard then begin
2110     Board := TBoard(ActiveList);
2111    
2112     if GikoSys.Setting.ListIconVisible then
2113     ListView.StateImages := StateIconImageList
2114     else
2115     ListView.StateImages := nil;
2116    
2117     case GikoForm.ViewType of
2118     gvtAll: BoardCnt := Board.Count;
2119     gvtLog: BoardCnt := Board.GetLogThreadCount;
2120     gvtNew: BoardCnt := Board.GetNewThreadCount;
2121     gvtUser: BoardCnt := Board.GetUserThreadCount;
2122 yoffy 1.2 else
2123     BoardCnt := 0;
2124 hi_ 1.1 end;
2125    
2126     // if Board = nil then Exit;
2127     if BoardCnt <= 0 then Exit;
2128     if Item = nil then Exit;
2129     if Item.Index > BoardCnt then Exit;
2130     if ListView.Items.Count = 0 then Exit;
2131    
2132     // if not (Board.Items[Item.Index] is TThreadItem) then Exit;
2133    
2134     ThreadItem := nil;
2135     case GikoForm.ViewType of
2136     gvtAll: ThreadItem := TThreadItem(Board.Items[Item.Index]);
2137     gvtLog: ThreadItem := Board.GetLogThread(Item.Index);
2138     gvtNew: ThreadItem := Board.GetNewThread(Item.Index);
2139     gvtUser: ThreadItem := Board.GetUserThread(Item.Index);
2140     end;
2141    
2142     if ThreadItem = nil then Exit;
2143    
2144     // if ListNumberVisibleAction.Checked then
2145     // RepStr := IntToStr(ThreadItem.No) + ': ' + ThreadItem.Title
2146     // else
2147     RepStr := ThreadItem.Title;
2148 yoffy 1.2 //RepStr := StringReplace(RepStr, '&amp;', '&', [rfReplaceAll]);
2149 hi_ 1.1 RepStr := StringReplace(RepStr, '&lt;', '<', [rfReplaceAll]);
2150     RepStr := StringReplace(RepStr, '&gt;', '>', [rfReplaceAll]);
2151     RepStr := StringReplace(RepStr, '&quot;', '"', [rfReplaceAll]);
2152 yoffy 1.2 RepStr := StringReplace(RepStr, '&amp', '&', [rfReplaceAll]);
2153 hi_ 1.1 //RepStr := StringReplace(RepStr, '鐃緒申鐃?', ',', [rfReplaceAll]);
2154    
2155     if Item.SubItems.Count <> 6 then begin
2156     Item.SubItems.Clear;
2157     Item.SubItems.Add('');
2158     Item.SubItems.Add('');
2159     Item.SubItems.Add('');
2160     Item.SubItems.Add('');
2161     Item.SubItems.Add('');
2162     Item.SubItems.Add('');
2163     end;
2164    
2165     if ListNumberVisibleAction.Checked then
2166     Item.Caption := IntToStr(ThreadItem.No) + ': ' + RepStr
2167     else
2168     Item.Caption := RepStr;
2169    
2170     case ThreadItem.AgeSage of
2171     gasNone: Item.StateIndex := -1;
2172 yoffy 1.51 gasNew: Item.StateIndex := 0;
2173     gasAge: Item.StateIndex := 1;
2174 hi_ 1.1 gasSage: Item.StateIndex := 2;
2175     end;
2176    
2177     if ThreadItem.IsLogFile then begin
2178 yoffy 1.2 Item.ImageIndex := ITEM_ICON_THREADLOG1;
2179 hi_ 1.1 Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);
2180     Item.SubItems[1] := IntToStr(ThreadItem.Count);
2181     if ThreadItem.NewResCount = 0 then
2182     Item.SubItems[2] := ''
2183     else
2184     Item.SubItems[2] := IntToStr(ThreadItem.NewResCount);
2185     Item.SubItems[3] := '';
2186     if ThreadItem.Round then
2187     Item.SubItems[4] := ThreadItem.RoundName
2188     else
2189     Item.SubItems[4] := '';
2190     if ThreadItem.RoundDate = ZERO_DATE then begin
2191     Item.SubItems[5] := '';
2192     end else
2193     Item.SubItems[5] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.RoundDate);
2194     if ThreadItem.NewArrival then
2195 yoffy 1.2 Item.ImageIndex := ITEM_ICON_THREADNEW1;
2196 hi_ 1.1 end else begin
2197 yoffy 1.2 Item.ImageIndex := ITEM_ICON_THREAD1;
2198 hi_ 1.1 Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);
2199     Item.SubItems[1] := '';
2200     Item.SubItems[2] := '';
2201     Item.SubItems[3] := '';
2202     Item.SubItems[4] := '';
2203     Item.SubItems[5] := '';
2204     end;
2205     Item.Data := ThreadItem;
2206     end;
2207     end;
2208    
2209     procedure TGikoForm.ListViewDataFind(Sender: TObject; Find: TItemFind;
2210     const FindString: String; const FindPosition: TPoint; FindData: Pointer;
2211     StartIndex: Integer; Direction: TSearchDirection; Wrap: Boolean;
2212     var Index: Integer);
2213     begin
2214     //
2215     end;
2216    
2217     procedure TGikoForm.ListViewDataHint(Sender: TObject; StartIndex,
2218     EndIndex: Integer);
2219     begin
2220     //
2221     end;
2222    
2223     procedure TGikoForm.ListViewDataStateChange(Sender: TObject; StartIndex,
2224     EndIndex: Integer; OldState, NewState: TItemStates);
2225     begin
2226     //
2227     end;
2228    
2229     procedure TGikoForm.BrowserStatusTextChange(Sender: TObject; const Text: WideString);
2230     var
2231     p: TPoint;
2232     s: string;
2233     tmp2: string;
2234     URL: string;
2235     ATitle: Boolean;
2236    
2237     wkBBS: string;
2238     wkKey: string;
2239    
2240 h677 1.40 //wkInt: Integer;
2241 hi_ 1.1 wkIntSt: Integer;
2242     wkIntTo: Integer;
2243    
2244     ActiveFileName: string;
2245     e: IHTMLElement;
2246     Ext: string;
2247     PathRec: TPathRec;
2248     begin
2249     try
2250     try
2251     if (FActiveContent <> nil) and (Assigned(Browser.Document)) then begin
2252     if LowerCase(OleVariant(IHTMLDocument2(Browser.Document)).charset) <> 'shift_jis' then
2253     OleVariant(IHTMLDocument2(Browser.Document)).charset := 'shift_jis';
2254     end;
2255     except
2256     end;
2257     finally
2258     end;
2259     if PreviewTimer.Enabled then
2260     PreviewTimer.Enabled := False;
2261     Application.CancelHint;
2262     if GetActiveContent <> nil then
2263     ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
2264     else
2265     ActiveFileName := '';
2266    
2267     StatusBar.Panels[1].Text := Text;
2268    
2269     if FHint <> nil then begin
2270     FHint.ReleaseHandle;
2271     FHint.ClearAllRes;
2272     end;
2273     if FPreviewBrowser <> nil then
2274     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2275    
2276     if not GikoSys.Setting.UnActivePopup then
2277     if not GikoForm.Active then
2278     Exit;
2279    
2280     //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
2281     //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
2282    
2283     s := '';
2284     Ext := AnsiLowerCase(ExtractFileExt(Text));
2285     if (Pos('http://', Text) = 1) and (GikoSys.Setting.PreviewVisible) and
2286     ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
2287     if FPreviewBrowser = nil then begin
2288     FPreviewBrowser := TPreviewBrowser.Create(Self);
2289     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2290     TOleControl(FPreviewBrowser).Parent := nil;
2291     end;
2292 yoffy 1.50 FPreviewBrowser.Navigate('about:blank');//鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?
2293 hi_ 1.1 FPreviewURL := Text;
2294     PreviewTimer.Interval := GikoSys.Setting.PreviewWait;
2295     PreviewTimer.Enabled := True;
2296     end else if (Pos('about:blank', Text) = 1) or (Pos('http://', Text) = 1) or (Pos('mailto:', Text) = 1) then begin
2297     if Pos('mailto:', Text) = 1 then begin
2298     s := StringReplace(Text, 'mailto:', '', [rfIgnoreCase]);
2299     //鐃?鐃?鐃?鐃?鐃?鐃緒申 鐃?鐃?鐃?3鐃緒申466鐃緒申鐃緒申鐃緒申鐃緒申
2300     GetCursorPos(p);
2301     p.x := p.x - TWebBrowser(Sender).ClientOrigin.x;
2302     p.y := p.y - TWebBrowser(Sender).ClientOrigin.y;
2303     e := IHTMLDocument2(TWebBrowser(Sender).Document).elementFromPoint(p.x, p.y);
2304     if (Assigned(e)) then begin
2305     tmp2 := GikoSys.ZenToHan(e.Get_outerText);
2306     if (GikoSys.IsNumeric(tmp2)) then begin
2307     //鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
2308     wkBBS := GetActiveContent.ParentBoard.BBSID;
2309     wkKey := ChangeFileExt(GetActiveContent.FileName, '');
2310     wkIntSt := StrToInt(tmp2);
2311     wkIntTo := StrToInt(tmp2);
2312     //s := GetThreadText(wkBBS, wkKey, wkIntSt, wkIntTo, False, False);
2313     FHint.PopupType := gptThread;
2314     SetResPopupText(wkBBS, wkKey, wkIntSt, wkIntTo, False, False);
2315     end else begin
2316     FHint.PopupType := gptRaw;
2317     FHint.Caption := s;
2318     end;
2319     end;
2320     end else begin
2321     URL := Text;
2322 yoffy 1.54
2323 yoffy 1.67 if Pos('about:blank..'