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.638.2.2 - (hide annotations) (download) (as text)
Mon Aug 6 16:02:15 2007 UTC (16 years, 8 months ago) by h677
Branch: Bb56
CVS Tags: v1_56_2_724, v1_56_2_722, v1_56_0_721
Changes since 1.638.2.1: +5 -4 lines
File MIME type: text/x-pascal
最小化時にスクロールする問題の対策コード追加(Fromハ゛タ57)

1 hi_ 1.1 unit Giko;
2    
3     interface
4    
5     uses
6     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7 h677 1.536 OleCtrls, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem, DateUtils,
8 hi_ 1.4 {$IF Defined(DELPRO) }
9 yoffy 1.138 SHDocVw,
10 hi_ 1.4 MSHTML,
11     {$ELSE}
12     SHDocVw_TLB,
13     MSHTML_TLB,
14     {$IFEND}
15 h677 1.183 IdHTTP, ActiveX, ActnList, ImgList,
16 h677 1.536 ToolWin, Buttons, IdComponent, UrlMon, Tabs, IdGlobal, StrUtils,
17     CommCtrl, Dialogs, GikoSystem, Setting, BoardGroup, ThreadControl, ItemDownload,
18     Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent,
19 h677 1.636 {HintWindow,} GikoCoolBar, GikoListView, Search, ExternalBoardManager,
20 h677 1.536 ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection,
21 h677 1.614 IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord, MoveHistoryItem,
22 h677 1.636 ShellAPI,Preview, HistoryList, ResPopupBrowser;
23 hi_ 1.1
24 h677 1.567 const
25     NGWORDNAME_PANEL = 3;
26     THREADSIZE_PANEL = 2;
27    
28 hi_ 1.1 type
29 h677 1.623
30 yoffy 1.258 TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser);
31 yoffy 1.280 TMinimizeType = (mtNone, mtMinimizing, mtMinimized);
32 yoffy 1.424 TResizeType = (rtNone, rtResizing);
33 hi_ 1.1
34 h677 1.551 // TBrowserRecord = class;
35 h677 1.299
36 hi_ 1.1 TGikoForm = class(TForm)
37     StatusBar: TStatusBar;
38     MainPanel: TPanel;
39     ClientPanel: TPanel;
40     TreeSplitter: TSplitter;
41     CabinetPanel: TPanel;
42     TreeView: TTreeView;
43     ThreadMainPanel: TPanel;
44     ListSplitter: TSplitter;
45     ViewPanel: TPanel;
46 yoffy 1.51 ListView: TGikoListView;
47 hi_ 1.1 ThreadPanel: TPanel;
48     MessagePanel: TPanel;
49     MessageBar: TPanel;
50     MessageHideButton: TSpeedButton;
51     MessageListView: TListView;
52     MessageSplitter: TSplitter;
53     Panel3: TPanel;
54 h677 1.541 CabinetCloseSpeedButton: TSpeedButton;
55 hi_ 1.1 ToolBar1: TToolBar;
56     CabinetSelectToolButton: TToolButton;
57     HistoryToolBar: TToolBar;
58 h677 1.541 HistoryShowToolButton: TToolButton;
59     HistoryAllClearToolButton: TToolButton;
60 hi_ 1.1 ItemIcon16: TImageList;
61     ItemIcon32: TImageList;
62 yoffy 1.2 HotToobarImageList: TImageList;
63 hi_ 1.1 ItemImageList: TImageList;
64     MainMenu: TMainMenu;
65     FileMenu: TMenuItem;
66 yoffy 1.51 DeleteMenu: TMenuItem;
67     ExitMenu: TMenuItem;
68     KidokuMenu: TMenuItem;
69 hi_ 1.1 MidokuMenu: TMenuItem;
70 yoffy 1.51 AllSelectMenu: TMenuItem;
71 hi_ 1.1 ViewMenu: TMenuItem;
72     StdToolBarMenu: TMenuItem;
73     CabinetMenu: TMenuItem;
74 yoffy 1.51 H1: TMenuItem;
75 hi_ 1.1 N4: TMenuItem;
76 yoffy 1.51 CabinetVisibleMenu: TMenuItem;
77 hi_ 1.1 MessageMenu: TMenuItem;
78     StatusBarMenu: TMenuItem;
79     MMSep03: TMenuItem;
80 yoffy 1.51 LargeIconMenu: TMenuItem;
81 hi_ 1.1 SmallIconMenu: TMenuItem;
82     ListMenu: TMenuItem;
83     DetailMenu: TMenuItem;
84 yoffy 1.51 ToolMenu: TMenuItem;
85 hi_ 1.1 Find1: TMenuItem;
86     RoundMenu: TMenuItem;
87     MMSep04: TMenuItem;
88     OptionMenu: TMenuItem;
89     HelpMenu: TMenuItem;
90     G1: TMenuItem;
91 yoffy 1.51 N1: TMenuItem;
92 hi_ 1.1 AboutMenu: TMenuItem;
93     BrowserPopupMenu: TPopupMenu;
94 yoffy 1.51 ShowThreadMenu: TMenuItem;
95 yoffy 1.2 ShowBoardMenu: TMenuItem;
96 hi_ 1.1 ListIconPopupMenu: TPopupMenu;
97     LargeIconPMenu: TMenuItem;
98     SmallIconPMenu: TMenuItem;
99     ListPMenu: TMenuItem;
100 yoffy 1.51 DetailPMenu: TMenuItem;
101 hi_ 1.1 ClosePopupMenu: TPopupMenu;
102 yoffy 1.51 CloseMenu: TMenuItem;
103 hi_ 1.1 U1: TMenuItem;
104     N3: TMenuItem;
105     B1: TMenuItem;
106     S1: TMenuItem;
107     N2: TMenuItem;
108     A1: TMenuItem;
109     L1: TMenuItem;
110     N5: TMenuItem;
111     S2: TMenuItem;
112     ListPopupMenu: TPopupMenu;
113 yoffy 1.51 ListRoundPMenu: TMenuItem;
114 hi_ 1.1 ListReservPMenu: TMenuItem;
115     LPMSep01: TMenuItem;
116 yoffy 1.51 ItemRoundPMenu: TMenuItem;
117 hi_ 1.1 LPMSep02: TMenuItem;
118 yoffy 1.2 KidokuPMenu: TMenuItem;
119 hi_ 1.1 MidokuPMenu: TMenuItem;
120     AllSelectPMenu: TMenuItem;
121     UrlCopyPMenu: TMenuItem;
122     LPMSep05: TMenuItem;
123     DeletePMenu: TMenuItem;
124     LPMSep06: TMenuItem;
125     ViewPMenu: TMenuItem;
126     LargeIconLPMenu: TMenuItem;
127     SmallIconLPMenu: TMenuItem;
128     ListLPMenu: TMenuItem;
129     DetailLPMenu: TMenuItem;
130     T1: TMenuItem;
131     B2: TMenuItem;
132     N8: TMenuItem;
133 yoffy 1.51 URLC1: TMenuItem;
134     N9: TMenuItem;
135 hi_ 1.1 N10: TMenuItem;
136     G2: TMenuItem;
137     N11: TMenuItem;
138     T3: TMenuItem;
139     L2: TMenuItem;
140     N12: TMenuItem;
141     K1: TMenuItem;
142     N13: TMenuItem;
143     N14: TMenuItem;
144     R1: TMenuItem;
145     A2: TMenuItem;
146     N15: TMenuItem;
147     KokoPopupMenu: TPopupMenu;
148     KokomadePMenu: TMenuItem;
149 yoffy 1.2 AllPMenu: TMenuItem;
150 hi_ 1.1 MenuItem1: TMenuItem;
151     MenuItem2: TMenuItem;
152     BrowserTabPopupMenu: TPopupMenu;
153 yoffy 1.51 Close1: TMenuItem;
154 hi_ 1.1 A3: TMenuItem;
155 yoffy 1.51 N16: TMenuItem;
156 hi_ 1.1 A4: TMenuItem;
157     TreePopupMenu: TPopupMenu;
158     TreeSelectThreadPupupMenu: TMenuItem;
159 yoffy 1.51 TreeSelectBoardPupupMenu: TMenuItem;
160 hi_ 1.1 TPMSep01: TMenuItem;
161     TreeSelectURLPupupMenu: TMenuItem;
162     T2: TMenuItem;
163 yoffy 1.2 L3: TMenuItem;
164 hi_ 1.1 B3: TMenuItem;
165     BrowserBottomPanel: TGikoPanel;
166     CabinetSelectPopupMenu: TPopupMenu;
167     H2: TMenuItem;
168 yoffy 1.51 ItemReservPMenu: TMenuItem;
169     RoundNamePopupMenu: TPopupMenu;
170 yoffy 1.2 N7: TMenuItem;
171 hi_ 1.1 B4: TMenuItem;
172     L4: TMenuItem;
173     K2: TMenuItem;
174 yoffy 1.51 A5: TMenuItem;
175 hi_ 1.1 A6: TMenuItem;
176 yoffy 1.51 C1: TMenuItem;
177     V1: TMenuItem;
178     N19: TMenuItem;
179 hi_ 1.1 D1: TMenuItem;
180 yoffy 1.51 D2: TMenuItem;
181     MessageImageList: TImageList;
182     ProgressBar: TProgressBar;
183     URL1: TMenuItem;
184 hi_ 1.1 NameUrlCopyPMenu: TMenuItem;
185     URLC2: TMenuItem;
186 yoffy 1.51 URLN1: TMenuItem;
187     N21: TMenuItem;
188     URLC3: TMenuItem;
189 yoffy 1.2 URLN2: TMenuItem;
190 yoffy 1.51 N23: TMenuItem;
191 yoffy 1.2 ListCoolBar: TGikoCoolBar;
192 hi_ 1.1 ListToolBar: TToolBar;
193 yoffy 1.2 BrowserCoolBar: TGikoCoolBar;
194 hi_ 1.1 BrowserToolBar: TToolBar;
195     ToolButton3: TToolButton;
196 yoffy 1.51 ToolButton9: TToolButton;
197 hi_ 1.1 ToolButton11: TToolButton;
198 yoffy 1.51 ToolButton5: TToolButton;
199 hi_ 1.1 ListNameToolBar: TToolBar;
200 yoffy 1.51 ListNameLabel: TLabel;
201 hi_ 1.1 FolderImage: TImage;
202     BrowserNameToolBar: TToolBar;
203     ItemBoardImage: TImage;
204     BrowserBoardNameLabel: TLabel;
205 yoffy 1.51 ItemImage: TImage;
206     BrowserNameLabel: TLabel;
207     D3: TMenuItem;
208     N25: TMenuItem;
209 hi_ 1.1 N26: TMenuItem;
210     D4: TMenuItem;
211     S3: TMenuItem;
212 yoffy 1.51 R2: TMenuItem;
213     TreeSelectNameURLPupupMenu: TMenuItem;
214     N27: TMenuItem;
215 hi_ 1.1 H3: TMenuItem;
216 yoffy 1.51 I1: TMenuItem;
217     BrowserTabToolBar: TToolBar;
218     BrowserTab: TTabControl;
219     About1: TMenuItem;
220     N28: TMenuItem;
221     S4: TMenuItem;
222 yoffy 1.2 N29: TMenuItem;
223     N30: TMenuItem;
224     N31: TMenuItem;
225 hi_ 1.1 L5: TMenuItem;
226 yoffy 1.51 L6: TMenuItem;
227 hi_ 1.1 A7: TMenuItem;
228 yoffy 1.51 R3: TMenuItem;
229 hi_ 1.1 FavoriteMenu: TMenuItem;
230 yoffy 1.51 N32: TMenuItem;
231 hi_ 1.1 BoardFavoriteAddMenu: TMenuItem;
232     ThreadFavoriteAddMenu: TMenuItem;
233 yoffy 1.2 N33: TMenuItem;
234 hi_ 1.1 TreeSelectFavoriteAddPupupMenu: TMenuItem;
235     FavoriteTreeView: TTreeView;
236 yoffy 1.51 StateIconImageList: TImageList;
237     TopPanel: TPanel;
238     TopRightPanel: TPanel;
239     AnimePanel: TPanel;
240 hi_ 1.1 Animate: TAnimate;
241     TopCoolPanel: TPanel;
242 yoffy 1.51 MainCoolBar: TGikoCoolBar;
243     MenuToolBar: TToolBar;
244     StdToolBar: TToolBar;
245     AddressToolBar: TToolBar;
246     AddressComboBox: TComboBox;
247     MoveToToolButton: TToolButton;
248     AddressImageList: TImageList;
249     AddressToolBarMenu: TMenuItem;
250     T4: TMenuItem;
251     Show1: TMenuItem;
252     N34: TMenuItem;
253 hi_ 1.1 T5: TMenuItem;
254     B5: TMenuItem;
255 yoffy 1.51 N35: TMenuItem;
256     A8: TMenuItem;
257     U2: TMenuItem;
258 hi_ 1.1 F1: TMenuItem;
259     PreviewTimer: TTimer;
260 yoffy 1.51 MonazillaWebPageAction1: TMenuItem;
261     N36: TMenuItem;
262     H4: TMenuItem;
263     K3: TMenuItem;
264     L7: TMenuItem;
265     N37: TMenuItem;
266     A9: TMenuItem;
267 yoffy 1.2 ChevronPopupMenu: TPopupMenu;
268     N2N1: TMenuItem;
269 hi_ 1.1 N38: TMenuItem;
270 yoffy 1.2 F2: TMenuItem;
271 yoffy 1.51 LinkToolBar: TToolBar;
272     a10: TMenuItem;
273     N39: TMenuItem;
274     T6: TMenuItem;
275     N40: TMenuItem;
276 yoffy 1.2 LinkBarPopupMenu: TPopupMenu;
277 yoffy 1.51 T7: TMenuItem;
278     ThreadPopupMenu: TPopupMenu;
279     MenuItem4: TMenuItem;
280     MenuItem5: TMenuItem;
281     MenuItem6: TMenuItem;
282 yoffy 1.2 T8: TMenuItem;
283 yoffy 1.51 URLN3: TMenuItem;
284 yoffy 1.2 SelectItemNameCopyAction1: TMenuItem;
285 yoffy 1.51 B6: TMenuItem;
286     T9: TMenuItem;
287 h677 1.629 NameCopyPMenu: TMenuItem;
288 yoffy 1.51 SelectComboBox: TComboBox;
289     MainCoolBarPopupMenu: TPopupMenu;
290     StdToolBarVisiblePMenu: TMenuItem;
291     AddressToolBarVisiblePMenu: TMenuItem;
292     LinkToolBarVisiblePMenu: TMenuItem;
293     NG1: TMenuItem;
294     NG2: TMenuItem;
295     N43: TMenuItem;
296     N44: TMenuItem;
297     L9: TMenuItem;
298     I3: TMenuItem;
299     N45: TMenuItem;
300     B9: TMenuItem;
301     R5: TMenuItem;
302     T12: TMenuItem;
303     Show3: TMenuItem;
304     N46: TMenuItem;
305     T13: TMenuItem;
306     B10: TMenuItem;
307     N47: TMenuItem;
308     A12: TMenuItem;
309     U4: TMenuItem;
310     F4: TMenuItem;
311     N48: TMenuItem;
312     T14: TMenuItem;
313     ToolButton16: TToolButton;
314     N50: TMenuItem;
315     A11: TMenuItem;
316     S5: TMenuItem;
317     Reload: TMenuItem;
318     GoBack: TMenuItem;
319     GoFoward: TMenuItem;
320     IndividualAbon1: TMenuItem;
321     N41: TMenuItem;
322     IndividualAbon2: TMenuItem;
323 h677 1.543 AntiIndivAbonMenuItem: TMenuItem;
324 yoffy 1.51 AntiIndividualAbon: TMenuItem;
325     N49: TMenuItem;
326     N51: TMenuItem;
327     N52: TMenuItem;
328     SearchBoardName: TMenuItem;
329 yoffy 1.205 TreeSelectLogDeleteSeparator: TMenuItem;
330 yoffy 1.100 N54: TMenuItem;
331     A13: TMenuItem;
332     FavoriteTreePopupMenu: TPopupMenu;
333     FavoriteTreeRenamePopupMenu: TMenuItem;
334     FavoriteTreeNewFolderPopupMenu: TMenuItem;
335     N56: TMenuItem;
336     FavoriteTreeDeletePopupMenu: TMenuItem;
337     FavoriteToolBar: TToolBar;
338 h677 1.541 FavoriteAddToolButton: TToolButton;
339     FavoriteArrangeToolButton: TToolButton;
340 yoffy 1.100 FavoriteTreeBrowseFolderPopupMenu: TMenuItem;
341     N57: TMenuItem;
342     FavoriteTreeReloadPopupMenu: TMenuItem;
343     N58: TMenuItem;
344     FavoriteTreeURLCopyPopupMenu: TMenuItem;
345     FavoriteTreeNameCopyPopupMenu: TMenuItem;
346     FavoriteTreeLogDeletePopupMenu: TMenuItem;
347     N59: TMenuItem;
348     FavoriteTreeNameURLCopyPopupMenu: TMenuItem;
349     ToolButton20: TToolButton;
350     N60: TMenuItem;
351 yoffy 1.107 ExportFavoriteFileAction1: TMenuItem;
352 yoffy 1.142 N6: TMenuItem;
353     N17: TMenuItem;
354 h677 1.174 N18: TMenuItem;
355     N20: TMenuItem;
356 h677 1.532 N24: TMenuItem;
357 h677 1.174 N62: TMenuItem;
358 h677 1.514 N61: TMenuItem;
359 h677 1.478 N63: TMenuItem;
360 h677 1.183 N64: TMenuItem;
361 h677 1.187 dummy1: TMenuItem;
362 h677 1.570 TreeSelectLogDeletePopupMenu: TMenuItem;
363 h677 1.485 N65: TMenuItem;
364 yoffy 1.209 BBSSelectPopupMenu: TPopupMenu;
365 yoffy 1.218 PlugInMenu: TMenuItem;
366 h677 1.542 TreeSelectNamePupupMenu: TMenuItem;
367 h677 1.299 BrowserPanel: TPanel;
368 h677 1.514 SelectTimer: TTimer;
369 h677 1.340 SelectThreadSave: TMenuItem;
370 h677 1.342 N55: TMenuItem;
371 h677 1.343 N66: TMenuItem;
372     dat1: TMenuItem;
373 yoffy 1.397 OpenLogFolder: TMenuItem;
374 h677 1.346 Browser: TWebBrowser;
375 genyakun 1.353 TabSave: TMenuItem;
376 h677 1.407 TabOpen: TMenuItem;
377 yoffy 1.375 ResRangePopupMenu: TPopupMenu;
378 h677 1.547 ResRangeHundPMenuItem: TMenuItem;
379     ResRangeKokoPMenuItem: TMenuItem;
380     ResRangeNewPMenuItem: TMenuItem;
381     ResRangeAllPMenuItem: TMenuItem;
382 h677 1.570 BrowsBoradHeadAction1: TMenuItem;
383 yoffy 1.390 ThreadRangePopupMenu: TPopupMenu;
384     A15: TMenuItem;
385     L8: TMenuItem;
386 h677 1.542 N67: TMenuItem;
387 yoffy 1.390 N68: TMenuItem;
388     S6: TMenuItem;
389     N69: TMenuItem;
390 h677 1.547 ResRangeSelectPMenuItem: TMenuItem;
391 yoffy 1.415 ListColumnPopupMenu: TPopupMenu;
392 h677 1.485 N70: TMenuItem;
393     ID1: TMenuItem;
394     ID2: TMenuItem;
395     N53: TMenuItem;
396     ID3: TMenuItem;
397     N71: TMenuItem;
398 h677 1.487 N72: TMenuItem;
399     N73: TMenuItem;
400 h677 1.517 SelectComboBoxPanel: TPanel;
401     SelectComboBoxSplitter: TImage;
402 h677 1.570 ToolButton1: TToolButton;
403 h677 1.517 N74: TMenuItem;
404 genyakun 1.527 WikiFAQ: TMenuItem;
405 h677 1.542 GikoApplicationEvents: TApplicationEvents;
406 h677 1.583 N22: TMenuItem;
407     N42: TMenuItem;
408 h677 1.592 DAT2: TMenuItem;
409     N75: TMenuItem;
410     DAT3: TMenuItem;
411     N76: TMenuItem;
412 h677 1.600 FavoriteTreeItemNameCopyPopupMenu: TMenuItem;
413 h677 1.615 N77: TMenuItem;
414     N78: TMenuItem;
415 h677 1.618 SaveThreadFile: TMenuItem;
416     N79: TMenuItem;
417     HTML1: TMenuItem;
418     DAT4: TMenuItem;
419 h677 1.625 N80: TMenuItem;
420 h677 1.635 SameBoardThreadItem: TMenuItem;
421     N81: TMenuItem;
422 yoffy 1.251 procedure FormCreate(Sender: TObject);
423 hi_ 1.1 procedure FormDestroy(Sender: TObject);
424     procedure BrowserStatusTextChange(Sender: TObject;
425     const Text: WideString);
426     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
427     procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
428     var AllowChange: Boolean);
429     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
430     Shift: TShiftState);
431     procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
432     procedure MenuToolBarCustomDrawButton(Sender: TToolBar;
433     Button: TToolButton; State: TCustomDrawState;
434     var DefaultDraw: Boolean);
435     procedure BrowserBeforeNavigate2(Sender: TObject;
436     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
437     Headers: OleVariant; var Cancel: WordBool);
438     procedure TreeViewCustomDraw(Sender: TCustomTreeView;
439     const ARect: TRect; var DefaultDraw: Boolean);
440     procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
441     Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
442     procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
443     procedure ListViewCustomDraw(Sender: TCustomListView;
444     const ARect: TRect; var DefaultDraw: Boolean);
445     procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
446     Shift: TShiftState; X, Y: Integer);
447     procedure TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
448     procedure MessageListViewResize(Sender: TObject);
449 yoffy 1.138 procedure CabinetVisible( isVisible : Boolean );
450 hi_ 1.1 procedure FormResize(Sender: TObject);
451     procedure ListPopupMenuPopup(Sender: TObject);
452     procedure TreePopupMenuPopup(Sender: TObject);
453     procedure BrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
454     var Cancel: WordBool);
455     procedure ListSplitterMoved(Sender: TObject);
456     procedure BrowserTabChange(Sender: TObject);
457     procedure BrowserTabMouseDown(Sender: TObject; Button: TMouseButton;
458     Shift: TShiftState; X, Y: Integer);
459     procedure BrowserTabDragOver(Sender, Source: TObject; X, Y: Integer;
460     State: TDragState; var Accept: Boolean);
461     procedure BrowserTabDragDrop(Sender, Source: TObject; X, Y: Integer);
462     procedure BrowserTabMouseMove(Sender: TObject; Shift: TShiftState; X,
463     Y: Integer);
464     procedure BrowserDocumentComplete(Sender: TObject;
465     const pDisp: IDispatch; var URL: OleVariant);
466     procedure RoundNamePopupMenuPopup(Sender: TObject);
467     procedure FormShow(Sender: TObject);
468     procedure BrowserTabToolBarResize(Sender: TObject);
469     procedure FavoriteMenuClick(Sender: TObject);
470 yoffy 1.2 procedure MainCoolBarResize(Sender: TObject);
471     procedure AddressToolBarResize(Sender: TObject);
472 hi_ 1.1 procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
473     Shift: TShiftState);
474 yoffy 1.2 procedure BrowserEnter(Sender: TObject);
475 hi_ 1.1 procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
476     procedure PreviewTimerTimer(Sender: TObject);
477     procedure MessageHideButtonClick(Sender: TObject);
478 h677 1.541 procedure HistoryAllClearToolButtonClick(Sender: TObject);
479 yoffy 1.2 procedure MainCoolBarBandInfo(Sender: TObject;
480     var BandInfo: PReBarBandInfoA);
481     procedure MainCoolBarChevronClick(Sender: TObject;
482 yoffy 1.51 RebarChevron: PNMRebarChevron);
483     procedure ListCoolBarBandInfo(Sender: TObject;
484     var BandInfo: PReBarBandInfoA);
485     procedure ListCoolBarChevronClick(Sender: TObject;
486     RebarChevron: PNMRebarChevron);
487     procedure BrowserCoolBarBandInfo(Sender: TObject;
488     var BandInfo: PReBarBandInfoA);
489 yoffy 1.2 procedure BrowserCoolBarChevronClick(Sender: TObject;
490 yoffy 1.51 RebarChevron: PNMRebarChevron);
491     procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
492     procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
493     WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
494     procedure SelectComboBoxChange(Sender: TObject);
495     procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
496     Shift: TShiftState);
497     procedure SelectComboBoxExit(Sender: TObject);
498     procedure SelectComboBoxSplitterMouseMove(Sender: TObject;
499     Shift: TShiftState; X, Y: Integer);
500     procedure SelectComboBoxSplitterMouseDown(Sender: TObject;
501     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
502     procedure SelectComboBoxSplitterMouseUp(Sender: TObject;
503     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
504     procedure StatusBarResize(Sender: TObject);
505     procedure SelectComboBoxEnter(Sender: TObject);
506 yoffy 1.100 procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
507     Y: Integer);
508 yoffy 1.71 procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
509 yoffy 1.100 procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
510     var S: String);
511     procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
512     Shift: TShiftState);
513     procedure FavoriteTreePopupMenuPopup(Sender: TObject);
514     procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
515     procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
516     Shift: TShiftState; X, Y: Integer);
517     procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
518     State: TDragState; var Accept: Boolean);
519     procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
520     Y: Integer);
521 yoffy 1.142 procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
522 h677 1.174 procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
523     var Handled: Boolean);
524 h677 1.187 procedure BrowserTabPopupMenuPopup(Sender: TObject);
525 yoffy 1.216 procedure BrowserTabResize(Sender: TObject);
526 yoffy 1.236 procedure TreeViewKeyDown(Sender: TObject; var Key: Word;
527     Shift: TShiftState);
528 yoffy 1.246 procedure FavoriteTreeViewMouseDown(Sender: TObject;
529 yoffy 1.248 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
530 yoffy 1.250 procedure MessagePanelResize(Sender: TObject);
531 yoffy 1.276 procedure OnResized;
532 h677 1.539 procedure SelectTimerTimer(Sender: TObject);
533 yoffy 1.425 procedure ListViewColumnRightClick(Sender: TObject;
534 yoffy 1.415 Column: TListColumn; Point: TPoint);
535 h677 1.478 procedure ListViewCustomDrawItem(Sender: TCustomListView;
536 h677 1.463 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
537     procedure FormActivate(Sender: TObject);
538 h677 1.472 procedure BrowserPanelResize(Sender: TObject);
539 h677 1.482 procedure MenuToolBarResize(Sender: TObject);
540     procedure ListToolBarResize(Sender: TObject);
541     procedure BrowserToolBarResize(Sender: TObject);
542 h677 1.539 procedure KokoPopupMenuPopup(Sender: TObject);
543 h677 1.517 procedure ListViewKeyUp(Sender: TObject; var Key: Word;
544     Shift: TShiftState);
545     procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
546     var AllowEdit: Boolean);
547 h677 1.570 procedure CabinetCloseSpeedButtonClick(Sender: TObject);
548 h677 1.541 procedure FavoriteArrangeToolButtonClick(Sender: TObject);
549 h677 1.542 procedure GikoApplicationEventsMessage(var Msg: tagMSG;
550     var Handled: Boolean);
551     procedure GikoApplicationEventsDeactivate(Sender: TObject);
552     procedure GikoApplicationEventsException(Sender: TObject; E: Exception);
553 h677 1.574 procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
554 h677 1.548 Shift: TShiftState; X, Y: Integer);
555 h677 1.585 procedure GetResURLMenuClick(Sender: TObject);
556 h677 1.612 procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
557     var Handled: Boolean);
558 hi_ 1.1 private
559     { Private 鐃緒申鐃緒申 }
560     FEnabledCloseButton: Boolean;
561     FClickNode: TTreeNode;
562     FHttpState: Boolean;
563 h677 1.619 FPreviewBrowser: TPreviewBrowser;
564 hi_ 1.1 FPreviewURL: string;
565     FBrowserSizeHeight: Integer;
566     FBrowserSizeWidth: Integer;
567     FTabHintIndex: Integer;
568     FListStyle: TViewStyle; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
569     FItemNoVisible: Boolean; //鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?
570     FViewType: TGikoViewType; //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?
571 h677 1.517 FActiveList: TObject;
572 h677 1.299 FActiveContent: TBrowserRecord; //
573 yoffy 1.133 FActiveBBS : TBBS;
574 h677 1.623 FHistoryList: THistoryList; //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?
575 hi_ 1.1 FTreeType: TGikoTreeType;
576     FWorkCount: Integer;
577     FNameCookie: string;
578     FMailCookie: string;
579     FDownloadTitle: string; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
580     FDownloadMax: Integer; //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?
581     FEvent: THTMLDocumentEventSink;//鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?
582 yoffy 1.51 IsDraggingSelectComboBox : Boolean;
583     DraggingSelectComboBoxPosition : TPoint;
584 yoffy 1.54 FSearchDialog: TSearchDialog;
585 yoffy 1.100 FDropSpaceNode: TTreeNode;
586 yoffy 1.424 FDragTime : Cardinal; ///< 鐃緒申鐃緒申鐃?鐃緒申D&D鐃?
587     FDragButton : TToolButton; ///< 鐃緒申鐃緒申鐃?鐃緒申D&D鐃?鐃緒申Drag鐃緒申鐃緒申鐃緒申Button鐃緒申鐃緒申
588     FDragWFirst : Boolean; ///< WebTab鐃緒申D&D鐃?
589     FListViewBackGroundColor : TColor; ///< ListView鐃緒申BackGroundColor
590     FUseOddResOddColor : Boolean; ///< 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申
591     FOddColor : TColor; ///< 鐃緒申鐃緒申鐃?
592     FSelectResWord : string; ///< 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?
593     FIsIgnoreResize : TResizeType; ///< 鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
594     FIsMinimize : TMinimizeType; ///< 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
595     FOldFormWidth : Integer; ///< 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
596     FToolBarSettingSender : TToolBarSettingSenderType; ///< 鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?
597     FMouseDownPos : TPoint; ///< 鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
598 h677 1.303 FBrowsers: TList;
599 yoffy 1.424 FResRangeMenuSelect : Longint; ///< ResRangeButton 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 (鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申 ResRange 鐃緒申鐃緒申)
600 h677 1.423 FStartUp : Boolean;
601 yoffy 1.427 FIsHandledWheel : Boolean; ///< 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 WM_MOUSEWHEEL 鐃緒申鐃緒申鐃緒申鐃緒申
602 h677 1.517 DiffComp: Boolean; //Add by Genyakun 鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申True鐃緒申鐃緒申鐃緒申
603 h677 1.548 FOrigenCaption: String; //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
604 h677 1.581 FPreviewBrowserRect: TRect; ///< 鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
605     FActionListGroupIndexes: array of Integer; ///<GikoDM鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申GroupIndex鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
606 h677 1.636 FResPopupBrowser: TResPopupBrowser;
607 hi_ 1.1 procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
608     procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
609 q9_ 1.233 procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
610 hi_ 1.1 procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
611     procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
612     procedure ListClick;
613 h677 1.295 procedure ListDoubleClick(Shift: TShiftState);
614 hi_ 1.1 function Hook(var Message: TMessage): Boolean;
615     procedure AddRoundNameMenu(MenuItem: TMenuItem);
616     procedure SetMenuFont;
617     procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
618 yoffy 1.62 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
619     procedure FavoriteClick(Sender: TObject); overload;
620 yoffy 1.100 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
621 hi_ 1.1 function OnDocumentContextMenu(Sender: TObject): WordBool;
622     function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
623 yoffy 1.2 procedure MenuBarChevronMenu;
624     procedure LinkBarChevronMenu;
625     procedure ToolBarChevronMenu(ToolBar: TToolBar);
626 yoffy 1.100 procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
627     procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
628     procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
629     procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
630 yoffy 1.85 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
631 yoffy 1.72 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
632 yoffy 1.100 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
633     procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
634 yoffy 1.72 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
635 yoffy 1.236 //
636 yoffy 1.143 procedure SetListViewBackGroundColor(value: TColor);
637 yoffy 1.123 procedure BBSMenuItemOnClick( Sender : TObject );
638 yoffy 1.424 /// CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
639 yoffy 1.216 procedure SaveCoolBarSettings;
640 h677 1.471 procedure SaveMainCoolBarSettings;
641     procedure SaveBoardCoolBarSettings;
642     procedure SaveBrowserCoolBarSettings;
643 yoffy 1.424 /// CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
644 yoffy 1.216 procedure LoadCoolBarSettings;
645 yoffy 1.424 /// 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
646 yoffy 1.276 procedure OnMinimize;
647 yoffy 1.424 /// 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
648 yoffy 1.248 procedure OnMinimized;
649 yoffy 1.424 /// TreeView 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
650 yoffy 1.236 procedure TreeClick( Node : TTreeNode );
651 yoffy 1.424 /// TreeView 鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
652 yoffy 1.236 procedure TreeDoubleClick( Node : TTreeNode );
653 yoffy 1.424 /// 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃? BBS 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
654 yoffy 1.289 procedure SetBBSMenu;
655 yoffy 1.415 /// ListColumnPopupMenu 鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
656     procedure ListColumnPopupMenuOnClick( Sender : TObject );
657 yoffy 1.480 //! 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
658     procedure SetSelectWord( const text : string );
659 h677 1.535 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
660     function GetScreenCursor(): TCursor;
661     //鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
662     procedure SetScreenCursor(Cursor : TCursor);
663 h677 1.550 //! 鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
664     procedure CreateControlThread();
665     //! 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
666     procedure CreateBrowsers(count: Integer);
667 h677 1.581 //! ActionList鐃緒申GroupIndex鐃緒申鐃緒申鐃緒申
668     procedure GetGroupIndex(ActionList: TActionList);
669     //! ActionList鐃緒申GroupIndex鐃緒申鐃緒申鐃緒申
670     procedure SetGroupIndex(ActionList: TActionList);
671 h677 1.585 //! 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申(鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 or 鐃?鐃緒申JUMP鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申DL鐃緒申鐃緒申)
672     procedure OpenThreadItem(Thread: TThreadItem; URL: String);
673 h677 1.596 //! ListView鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
674     procedure RefreshListView(Thread: TThreadItem);
675 h677 1.598 //! 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
676     procedure ClearThreadRengeAction;
677 h677 1.614 //! 鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申
678     procedure UnStoredTaskTray;
679 h677 1.617 //! 鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申
680     procedure ShowEditors(nCmdShow: Integer);
681 h677 1.632 //! 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申Browser鐃緒申鐃?鐃緒申
682     procedure ReleaseOldestBrowser;
683 h677 1.635 //! 鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
684     procedure AddMenuSameBoardThread;
685     //! 鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
686     procedure SameBoardThreadSubItemOnClick(Sender: TObject);
687 h677 1.636 //! 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
688     procedure CreateResPopupBrowser;
689 hi_ 1.1 protected
690     procedure CreateParams(var Params: TCreateParams); override;
691 yoffy 1.2 procedure WndProc(var Message: TMessage); override;
692 hi_ 1.1 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
693     procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
694     procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
695 yoffy 1.216
696 hi_ 1.1 public
697     { Public 鐃緒申鐃緒申 }
698 h677 1.533 LastRoundTime: TDateTime;
699     BrowserNullTab: TBrowserRecord;
700 hi_ 1.1 FControlThread: TThreadControl;
701 h677 1.614 FIconData : TNotifyIconData;
702 yoffy 1.444 procedure MoveToURL(const inURL: string);
703 h677 1.530 function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord;
704 hi_ 1.1 procedure ReloadBBS;
705     function GetHttpState: Boolean;
706     procedure SetEnabledCloseButton(Enabled: Boolean);
707     function GetTreeNode(Data: TObject): TTreeNode;
708     procedure ListViewAllSelect;
709     property ListStyle: TViewStyle read FListStyle write FListStyle;
710     property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
711     property ViewType: TGikoViewType read FViewType write FViewType;
712     property NameCookie: string read FNameCookie write FNameCookie;
713     property MailCookie: string read FMailCookie write FMailCookie;
714 h677 1.532 property ClickNode: TTreeNode read FClickNode write FClickNode;
715 h677 1.538 property TreeType: TGikoTreeType read FTreeType write FTreeType;
716 h677 1.534 property ActiveContent: TBrowserRecord read FActiveContent write FActiveContent;
717 h677 1.533 property ResRangeMenuSelect: Longint read FResRangeMenuSelect write FResRangeMenuSelect;
718 h677 1.534 property SelectResWord : string read FSelectResWord write FSelectResWord;
719     property BrowserSizeWidth: Integer read FBrowserSizeWidth write FBrowserSizeWidth;
720     property BrowserSizeHeight: Integer read FBrowserSizeHeight write FBrowserSizeHeight;
721     property SearchDialog: TSearchDialog read FSearchDialog write FSearchDialog;
722     property ToolBarSettingSender : TToolBarSettingSenderType
723     read FToolBarSettingSender write FToolBarSettingSender;
724 h677 1.535 property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
725 h677 1.538 property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
726     property WorkCount: Integer read FWorkCount write FWorkCount;
727 h677 1.299 procedure SetContent(inThread: TBrowserRecord);
728 h677 1.636 function GetActiveContent(popup :Boolean = false): TThreadItem;
729 hi_ 1.1 function GetActiveList: TObject;
730 h677 1.533
731 hi_ 1.1 procedure SetListViewType(AViewType: TGikoViewType); overload;
732     procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
733     procedure PlaySound(SoundEventName: string);
734 yoffy 1.123 procedure ShowBBSTree( inBBS : TBBS );
735 yoffy 1.248 procedure ShowBBSTreeOld( inBBS : TBBS );
736 hi_ 1.1 procedure ShowHistoryTree;
737     procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
738     procedure SetBrowserTabState;
739 yoffy 1.2 procedure SetToolBarPopup;
740 yoffy 1.100 procedure ShowFavoriteAddDialog( Item : TObject );
741 h677 1.433 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
742     procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
743 yoffy 1.143 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
744     property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
745     property OddColor : TColor read FOddColor write FOddColor;
746 yoffy 1.209 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
747 yoffy 1.218 procedure OnPlugInMenuItem( Sender : TObject );
748 h677 1.433 procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
749     /// ListView 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申 KuroutSetting鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
750     procedure ActiveListColumnSave;
751     procedure SetActiveList(Obj: TObject);
752     property ActiveList: TObject read GetActiveList write SetActiveList;
753 h677 1.482 /// CoolBar 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
754     procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
755 h677 1.485 //鐃緒申鐃緒申ID鐃緒申鐃緒申鐃緒申鐃?鐃緒申
756     procedure IndividualAbonID(Atype : Integer);
757     //鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申
758     procedure IndividualAbon(Atag, Atype : Integer);
759 h677 1.532 //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申 true:鐃?鐃緒申鐃緒申鐃?鐃? false:鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
760     procedure RepaintAllTabsBrowser();
761     //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
762     procedure SetLinkBar;
763     procedure FavoriteBrowseFolder( node: TTreeNode );
764     //鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?
765     procedure DownloadContent(ThreadItem: TThreadItem; ForceDownload: Boolean = False);
766     //鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?
767     procedure DownloadList(Board: TBoard; ForceDownload: Boolean = False);
768     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
769     procedure DeleteHistory( threadItem: TThreadItem );
770 h677 1.606 //鐃?鐃?鐃緒申鐃緒申鐃緒申 鐃?鐃緒申鐃?鐃?鐃?鐃緒申
771 h677 1.532 procedure DeleteTab(ThreadItem: TThreadItem); overload;
772 h677 1.606 //鐃?鐃?鐃緒申鐃緒申鐃緒申 鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申
773 h677 1.533 procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
774 h677 1.606 // 鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?
775     procedure DeleteTab(index, selectIndex: Integer); overload;
776 h677 1.533 //鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
777 h677 1.634 procedure BrowserMovement(const AName: string); overload;
778     //鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
779     procedure BrowserMovement(scroll: Integer); overload;
780 h677 1.533 //Application鐃緒申MainForm鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
781 h677 1.534 function GetMainForm(): TComponent;
782 h677 1.533 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
783 h677 1.534 //! 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?
784     procedure OnGestureStart(Sender: TObject);
785     //! 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申
786     procedure OnGestureMove(Sender: TObject);
787     //! 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
788     procedure OnGestureEnd(Sender: TObject);
789     /// 鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
790     procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
791 h677 1.535 //ListView鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
792     procedure SelectListItem(List: TList);
793 h677 1.536 //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
794     procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
795 h677 1.537 //
796     procedure ModifySelectList;
797     //
798     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
799     //
800     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
801 h677 1.538 //
802 h677 1.537 procedure SetSelectRoundName(Sender: TObject);
803 h677 1.538 //
804     function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
805     //
806     function WebBrowserClick(Sender: TObject): WordBool;
807 h677 1.550 //! 鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
808     procedure SetSelectComboBox();
809 h677 1.585
810 h677 1.614 //! 鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
811     procedure TaskTrayIconMessage(var Msg : TMsg); message WM_USER + 2010;
812 h677 1.615 //! 鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申
813     procedure StoredTaskTray;
814 hi_ 1.1 published
815     property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
816     end;
817    
818     TFavoriteMenuItem = class(TMenuItem)
819     private
820     FData : Pointer;
821     public
822     property Data: Pointer read FData write FData;
823     end;
824    
825 yoffy 1.123 TBBSMenuItem = class(TMenuItem)
826     private
827     FData : Pointer;
828     public
829     property Data: Pointer read FData write FData;
830     end;
831    
832 hi_ 1.1 TLinkToolButton = class(TToolButton)
833     private
834     FData : Pointer;
835     public
836     property Data: Pointer read FData write FData;
837     end;
838    
839     var
840     GikoForm: TGikoForm;
841    
842     implementation
843    
844     uses
845 h677 1.536 GikoUtil, IndividualAbon, Math, Kotehan, KeySetting,
846 h677 1.614 YofUtils, ToolBarUtil, ToolBarSetting,
847 h677 1.536 GikoXMLDoc, RoundName, IniFiles, FavoriteAdd,
848 h677 1.619 FavoriteArrange, AddressHistory, Gesture,
849 yoffy 1.480 About, Option, Round, Splash, Sort, ListSelect, Imm,
850 h677 1.521 NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter,
851 h677 1.583 HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage,
852 h677 1.630 InputAssistDataModule, Types, ReplaceDataModule;
853 hi_ 1.1
854     const
855     BLANK_HTML: string = 'about:blank';
856 h677 1.542 BROWSER_COUNT = 5; //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申
857     //D&D鐃緒申鐃?
858     DandD_THRESHOLD = 5; //D&D鐃緒申鐃緒申鐃?鐃?pixcel)
859     //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申
860     HTML_FILE_NAME = 'temp_preview.html';
861     //鐃緒申鐃?鐃?鐃?鐃?ID
862 yoffy 1.278 USER_TREECLICK = WM_USER + 2000;
863     USER_RESIZED = WM_USER + 2001;
864     USER_MINIMIZED = WM_USER + 2002;
865     USER_SETLINKBAR = WM_USER + 2003;
866 yoffy 1.434 USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser
867 h677 1.614 USER_TASKTRAY = WM_USER + 2010;
868 hi_ 1.1 {$R *.DFM}
869    
870     procedure TGikoForm.CreateParams(var Params: TCreateParams);
871     begin
872     inherited;
873     if FormStyle in [fsNormal, fsStayOnTop] then begin
874     if BorderStyle in [bsSingle, bsSizeable] then begin
875     Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
876     Params.WndParent := 0;
877     end;
878     end;
879     end;
880    
881     procedure TGikoForm.FormCreate(Sender: TObject);
882     const
883     TVS_NOTOOLTIPS = $0080;
884     var
885     FileName: string;
886     Style: DWORD;
887     msg: string;
888     i: Integer;
889     wp: TWindowPlacement;
890     begin
891     {$IFDEF DEBUG}
892     AllocConsole;
893     Writeln('============================================================');
894     Writeln(' 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃? 鐃?鐃緒申鐃?鐃?鐃緒申');
895     Writeln('');
896     Writeln(' 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
897     Writeln(' 鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申');
898     Writeln('============================================================');
899     {$ENDIF}
900 h677 1.580 //try
901 h677 1.586 Sort.SetSortDate(Now());
902    
903 h677 1.514 FTreeType := gttNone;
904     // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
905 h677 1.471 FStartUp := true;
906 hi_ 1.1 Application.HookMainWindow(Hook);
907 h677 1.514 FIsIgnoreResize := rtResizing;
908 h677 1.581 //ActionList鐃緒申GuoupIndex鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?0鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
909     //(鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申Down鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申GroupIndex鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申)
910     //鐃緒申鐃緒申鐃緒申鐃緒申Set鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?Action鐃緒申Checked鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
911     GetGroupIndex(GikoDM.GikoFormActionList);
912 yoffy 1.51 FSearchDialog := nil;
913 h677 1.636 FResPopupBrowser := nil;
914 h677 1.550 CreateBrowsers(BROWSER_COUNT);
915 h677 1.615 FIconData.uID := 0;
916 h677 1.636
917 h677 1.514 //鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?
918     SetMenuFont;
919 yoffy 1.216
920 hi_ 1.1 //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申
921     Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
922    
923     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
924 h677 1.513 AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
925 hi_ 1.1
926     EnabledCloseButton := True;
927 h677 1.176
928 hi_ 1.1 //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
929     ListView.ViewStyle := GikoSys.Setting.ListStyle;
930    
931     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?
932     AnimePanel.Top := 0;
933     AnimePanel.Left := 0;
934    
935     //鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
936    
937     //鐃?鐃緒申鐃?鐃?鐃?鐃?
938     CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
939    
940     //鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
941 h677 1.539 GikoDM.MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
942     GikoDM.MsgBarVisibleActionExecute(nil);
943 hi_ 1.1 MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
944    
945     //鐃?鐃?鐃?鐃?鐃?鐃?鐃?
946 h677 1.539 GikoDM.StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
947     GikoDM.StatusBarVisibleActionExecute(nil);
948 hi_ 1.1
949     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
950     TreeView.Items.BeginUpdate;
951 yoffy 1.100 FavoriteTreeView.Items.BeginUpdate;
952 hi_ 1.1 ListView.Items.BeginUpdate;
953     try
954     TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
955     TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
956     TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
957     TreeView.Color := GikoSys.Setting.CabinetBackColor;
958 h677 1.473 FavoriteTreeView.Font.Assign(TreeView.Font);
959 yoffy 1.67 FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
960    
961 hi_ 1.1 ListView.Font.Name := GikoSys.Setting.ListFontName;
962     ListView.Font.Size := GikoSys.Setting.ListFontSize;
963     ListView.Font.Color := GikoSys.Setting.ListFontColor;
964 h677 1.473 ListView.Font.Style := [];
965     if GikoSys.Setting.ListFontBold then
966     ListView.Font.Style := [fsbold];
967     if GikoSys.Setting.ListFontItalic then
968     ListView.Font.Style := ListView.Font.Style + [fsitalic];
969    
970 yoffy 1.418 ListViewBackGroundColor := clWhite; // 鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
971     ListViewBackGroundColor := GikoSys.Setting.ListBackColor; // 鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?
972 yoffy 1.236 FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
973     FOddColor := GikoSys.Setting.OddColor;
974 h677 1.109
975 hi_ 1.1 finally
976     TreeView.Items.EndUpdate;
977 yoffy 1.100 FavoriteTreeView.Items.EndUpdate;
978 hi_ 1.1 ListView.Items.EndUpdate;
979     end;
980     //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
981 h677 1.539 GikoDM.ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
982 hi_ 1.1
983 h677 1.581 //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
984     GikoDM.MuteAction.Checked := GikoSys.Setting.Mute;
985    
986     // 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
987     FResRangeMenuSelect := GikoSys.ResRange;
988     case GikoSys.ResRange of
989     Ord( grrAll ):
990     begin
991     GikoDM.AllResAction.Execute;
992     end;
993     Ord( grrSelect ):
994     begin
995     SelectComboBox.Text := SelectComboBox.Items[ 1 ];
996     GikoDM.SelectResAction.Checked := True;
997     end;
998     else
999     case FResRangeMenuSelect of
1000     Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True;
1001     Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True;
1002     100: GikoDM.OnlyAHundredResAction.Checked := True;
1003     end;
1004     end;
1005    
1006     // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1007     case GikoSys.Setting.ThreadRange of
1008     gtrAll:
1009     begin
1010     GikoDM.AllItemAction.Checked := True;
1011     ViewType := gvtAll;
1012     end;
1013     gtrLog:
1014     begin
1015     GikoDM.LogItemAction.Checked := True;
1016     ViewType := gvtLog;
1017     end;
1018     gtrNew:
1019     begin
1020     GikoDM.NewItemAction.Checked := True;
1021     ViewType := gvtNew;
1022     end;
1023 h677 1.592 gtrLive:
1024     begin
1025     GikoDM.LiveItemAction.Checked := True;
1026     ViewType := gvtLive;
1027     end;
1028     gtrArch:
1029     begin
1030     GikoDM.ArchiveItemAction.Checked := True;
1031     ViewType := gvtArch;
1032     end;
1033 h677 1.581 end;
1034    
1035    
1036 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
1037     BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1038     BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1039 h677 1.473 BrowserTab.Font.Style := [];
1040     if GikoSys.Setting.BrowserTabFontBold then
1041     BrowserTab.Font.Style := [fsBold];
1042     if GikoSys.Setting.BrowserTabFontItalic then
1043     BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
1044 h677 1.582 BrowserTab.DoubleBuffered := True;
1045 yoffy 1.133 FDragWFirst := false;
1046 h677 1.299 SetContent(BrowserNullTab); //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1047    
1048 h677 1.581 //鐃?鐃緒申鐃?鐃?鐃?鐃?
1049     GikoDM.BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1050    
1051     if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1052     GikoDM.BrowserTabTopAction.Checked := True;
1053     end else begin
1054     GikoDM.BrowserTabBottomAction.Checked := True;
1055     end;
1056    
1057     if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1058     GikoDM.BrowserTabTabStyleAction.Checked := True;
1059     end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1060     GikoDM.BrowserTabButtonStyleAction.Checked := True;
1061     end else begin
1062     GikoDM.BrowserTabFlatStyleAction.Checked := True;
1063     end;
1064    
1065 h677 1.514 //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1066     ProgressBar.Parent := StatusBar;
1067     ProgressBar.Top := 2;
1068     ProgressBar.Left := 0;
1069     ProgressBar.Width := StatusBar.Panels[0].Width;
1070     ProgressBar.Height := StatusBar.Height - 2;
1071     ProgressBar.Position := 0;
1072    
1073     // 鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?(ReadBoardFile, LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1074     InitializeBoardPlugIns;
1075    
1076     // 鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申(ReadFavorite 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1077     GikoSys.ListBoardFile;
1078 h677 1.580 //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申
1079     try
1080 h677 1.514 // 鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1081 h677 1.580 if (SplashWindow <> nil) then begin
1082     SplashWindow.ProgressBar.Max := Length(BBSs) * 20;
1083     end;
1084     except
1085     end;
1086 h677 1.514 // 鐃緒申鐃緒申鐃緒申鐃緒申BBS鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1087     for i := Length(BBSs) - 1 downto 0 do begin
1088     if not BBSs[i].IsBoardFileRead then
1089     GikoSys.ReadBoardFile(BBSs[i]);
1090    
1091     if SplashWindow <> nil then begin
1092     SplashWindow.ProgressBar.StepBy(20);
1093     SplashWindow.Update;
1094     end;
1095     end;
1096 h677 1.580
1097 h677 1.514 //鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1098     RoundList := TRoundList.Create;
1099     RoundList.LoadRoundBoardFile;
1100     RoundList.LoadRoundThreadFile;
1101    
1102     //TreeView鐃緒申鐃緒申鐃緒申鐃?鐃緒申ToolTip鐃緒申鐃緒申鐃?鐃緒申
1103     Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1104     Style := Style or TVS_NOTOOLTIPS;
1105     SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1106    
1107     // 鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1108     TreeView.Align := alClient;
1109     FavoriteTreeView.Align := alClient;
1110     FavoriteTreeView.Visible := False;
1111    
1112     // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1113     SetBBSMenu;
1114 hi_ 1.1
1115     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1116     wp.length := sizeof(wp);
1117     wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1118     wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1119     wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1120     wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1121     wp.showCmd := SW_HIDE;
1122     SetWindowPlacement(Handle, @wp);
1123 h677 1.514 //Self.Update;
1124 hi_ 1.1
1125     if GikoSys.Setting.WindowMax then
1126 h677 1.514 WindowState := wsMaximized;
1127 hi_ 1.1
1128     //鐃?鐃?鐃?鐃?鐃緒申
1129     try
1130     FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1131     if FileExists(FileName) then
1132     Animate.FileName := FileName;
1133     except
1134     end;
1135    
1136     //鐃?鐃?鐃?鐃?
1137     FNameCookie := '';
1138     FMailCookie := '';
1139    
1140     //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1141     FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1142     FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1143    
1144 yoffy 1.420
1145     // 鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?(LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1146 h677 1.623 FHistoryList := THistoryList.Create;
1147 yoffy 1.420
1148     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1149 h677 1.623 FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml',
1150     TreeView, FTreeType);
1151 yoffy 1.420
1152     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1153     FavoriteDM.SetFavTreeView(FavoriteTreeView);
1154     FavoriteDM.ReadFavorite;
1155    
1156 h677 1.539 GikoDM.ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1157     GikoDM.ArrangeAction.Execute;
1158 hi_ 1.1
1159     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1160     case GikoSys.Setting.ListWidthState of
1161     glsMax: begin
1162     ViewPanel.Width := 1;
1163 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_NORMAL;
1164     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MIN;
1165 hi_ 1.1 end;
1166     glsMin: begin
1167     ViewPanel.Width := GikoSys.Setting.ListWidth;
1168 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MAX;
1169     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_NORMAL;
1170 hi_ 1.1 end;
1171     else begin
1172     ViewPanel.Width := GikoSys.Setting.ListWidth;
1173 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MAX;
1174     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MIN;
1175 hi_ 1.1 end;
1176     end;
1177     end else begin
1178     case GikoSys.Setting.ListHeightState of
1179     glsMax: begin
1180     ViewPanel.Height := 1;
1181 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_NORMAL;
1182     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MIN;
1183 hi_ 1.1 end;
1184     glsMin: begin
1185     ViewPanel.Height := GikoSys.Setting.ListHeight;
1186 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MAX;
1187     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_NORMAL;
1188 hi_ 1.1 end;
1189     else begin
1190     ViewPanel.Height := GikoSys.Setting.ListHeight;
1191 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MAX;
1192     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MIN;
1193 hi_ 1.1 end;
1194     end;
1195     end;
1196    
1197     //鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃?
1198 h677 1.550 CreateControlThread();
1199 hi_ 1.1
1200 yoffy 1.51 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1201     SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1202 yoffy 1.2
1203 hi_ 1.1 //鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申
1204     SetBrowserTabState;
1205    
1206     BrowserBoardNameLabel.Caption := '';
1207     BrowserNameLabel.Caption := '';
1208     FWorkCount := 0;
1209    
1210     FTabHintIndex := -1;
1211    
1212     //鐃?鐃?鐃緒申鐃?鐃?Wrapable
1213     ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1214     BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1215    
1216 yoffy 1.236 MakeDefaultINIFile();
1217 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1218 h677 1.539 ReadToolBarSetting(GikoDM.GikoFormActionList, StdToolBar);
1219     ReadToolBarSetting(GikoDM.GikoFormActionList, ListToolBar);
1220     ReadToolBarSetting(GikoDM.GikoFormActionList, BrowserToolBar);
1221 yoffy 1.2 SetToolBarPopup;
1222 yoffy 1.375
1223 h677 1.517 //ListToolBar鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申ComboBox鐃緒申鐃?鐃?
1224 h677 1.550 SetSelectComboBox();
1225 h677 1.514
1226     //鐃?鐃?鐃緒申鐃?鐃?鐃?
1227     AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1228    
1229     //鐃緒申鐃緒申鐃?鐃?鐃?
1230     SetLinkBar;
1231 yoffy 1.2 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1232    
1233     //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申
1234     if not FileExists(GikoSys.GetBoardFileName) then begin
1235     msg := '鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申' + #13#10#13#10
1236     + '鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申' + #13#10
1237     + '鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?';
1238     MsgBox(SplashWindow.Handle, msg, '鐃?鐃?鐃?鐃?', MB_OK or MB_ICONINFORMATION);
1239 h677 1.539 GikoDM.NewBoardAction.Execute;
1240 yoffy 1.2 end;
1241    
1242     //鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1243 h677 1.560 GikoSys.LoadKeySetting(GikoDM.GikoFormActionList, GikoSys.GetMainKeyFileName);
1244 yoffy 1.2
1245     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1246     // FLastRoundTime := 0;
1247    
1248 h677 1.547 ListView.OnData := TListViewUtils.ListViewData;
1249 h677 1.529
1250 yoffy 1.100 // 鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1251 h677 1.299 CabinetVisible( False );
1252 yoffy 1.141 if GikoSys.Setting.CabinetVisible then begin
1253     i := CabinetSelectPopupMenu.Items.Count - 1;
1254     if GikoSys.Setting.CabinetIndex = i - 1 then
1255 h677 1.539 GikoDM.CabinetHistoryAction.Execute
1256 yoffy 1.141 else if GikoSys.Setting.CabinetIndex = i then
1257 h677 1.539 GikoDM.CabinetFavoriteAction.Execute
1258 yoffy 1.141 else begin
1259     if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1260     ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1261 yoffy 1.265 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 2
1262 yoffy 1.424 FIsIgnoreResize := rtResizing;
1263 h677 1.539 GikoDM.CabinetBBSAction.Execute;
1264 yoffy 1.141 end;
1265     end else begin
1266 yoffy 1.248 ShowBBSTreeOld( BBSs[ 0 ] );
1267     PostMessage( Handle, USER_TREECLICK, 0, 0 );
1268 yoffy 1.141 end;
1269 yoffy 1.67
1270 yoffy 1.2 //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?
1271     for i := 1 to ParamCount do begin
1272     MoveToURL(ParamStr(i));
1273     end;
1274 h677 1.22
1275 h677 1.567 GikoDM.RepaintStatusBar;
1276 hi_ 1.32 StatusBarResize(Sender);
1277 h677 1.187
1278 yoffy 1.236 dummy1.Caption := ItemReservPMenu.Caption;
1279     dummy1.Hint := ItemReservPMenu.Hint;
1280 yoffy 1.216
1281 yoffy 1.500 {$IFDEF SPAM_FILTER_ENABLED}
1282 yoffy 1.468 // 鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申
1283     GikoSys.Bayesian.LoadFromFile( GikoSys.Setting.GetSpamFilterFileName );
1284 yoffy 1.500 {$ENDIF}
1285 yoffy 1.468
1286 yoffy 1.456 // 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?
1287     MouseGesture := TMouseGesture.Create;
1288     GikoSys.Setting.Gestures.LoadGesture(
1289 h677 1.539 GikoSys.Setting.GetGestureFileName, GikoDM.GikoFormActionList );
1290 yoffy 1.456 MouseGesture.Margin := GikoSys.Setting.Gestures.Margin;
1291     MouseGesture.OnGestureStart := OnGestureStart;
1292     MouseGesture.OnGestureMove := OnGestureMove;
1293     MouseGesture.OnGestureEnd := OnGestureEnd;
1294 yoffy 1.457 if GikoSys.Setting.GestureEnabled then
1295     MouseGesture.SetHook( Handle );
1296 genyakun 1.458
1297 h677 1.483 //2ch鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1298 h677 1.562 GikoSys.SetGikoMessage;
1299 h677 1.514
1300 genyakun 1.497 //鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1301     if GikoSys.Setting.AutoLogin then
1302 h677 1.539 GikoDM.LoginAction.Execute;
1303 genyakun 1.497
1304 h677 1.514 GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
1305 h677 1.541
1306     //鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1307     FavoriteAddToolButton.Caption := '鐃緒申鐃緒申...';
1308 h677 1.547 AntiIndivAbonMenuItem.Caption := '鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申';
1309 h677 1.541
1310 h677 1.583 //鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1311     InputAssistDM.Init(GikoSys.GetInputAssistFileName);
1312 h677 1.613
1313 h677 1.630 //鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1314     ReplaceDM.LoadFromFile(GikoSys.GetReplaceFileName);
1315 yoffy 1.2 end;
1316    
1317 yoffy 1.216 // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1318     procedure TGikoForm.SaveCoolBarSettings;
1319 yoffy 1.2 begin
1320    
1321 yoffy 1.424 if IsIconic( Handle ) or (FIsIgnoreResize <> rtNone) then
1322 yoffy 1.216 Exit;
1323 h677 1.471 SaveMainCoolBarSettings;
1324     SaveBoardCoolBarSettings;
1325     SaveBrowserCoolBarSettings;
1326 yoffy 1.2
1327 h677 1.471 end;
1328     procedure TGikoForm.SaveMainCoolBarSettings;
1329     var
1330     i : Integer;
1331     CoolSet : TCoolSet;
1332     begin
1333 yoffy 1.216 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1334     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1335     CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1336     CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1337     CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1338     GikoSys.Setting.MainCoolSet[i] := CoolSet;
1339     end;
1340 h677 1.471 end;
1341     procedure TGikoForm.SaveBoardCoolBarSettings;
1342     var
1343     i : Integer;
1344     CoolSet : TCoolSet;
1345     begin
1346 yoffy 1.216 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1347     for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1348     CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1349     CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1350     CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1351     GikoSys.Setting.ListCoolSet[i] := CoolSet;
1352     end;
1353 h677 1.471 end;
1354     procedure TGikoForm.SaveBrowserCoolBarSettings;
1355     var
1356     i : Integer;
1357     CoolSet : TCoolSet;
1358     begin
1359 yoffy 1.216 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1360     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1361     CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1362     CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1363     CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1364     GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1365 yoffy 1.2 end;
1366 yoffy 1.216 end;
1367     // CoolBar 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1368     procedure TGikoForm.LoadCoolBarSettings;
1369     var
1370     i : Integer;
1371     CoolSet : TCoolSet;
1372     begin
1373 yoffy 1.2
1374 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Main)
1375     MainCoolBar.Bands.BeginUpdate;
1376     try
1377 yoffy 1.216 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1378     for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1379 hi_ 1.1 CoolSet := GikoSys.Setting.MainCoolSet[i];
1380 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1381 yoffy 1.424 FIsIgnoreResize := rtNone;
1382 yoffy 1.263 SaveCoolBarSettings;
1383     Exit;
1384     end;
1385 hi_ 1.1 MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1386     MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1387 yoffy 1.264 MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1388 hi_ 1.1 end;
1389     finally
1390     MainCoolBar.Bands.EndUpdate;
1391     end;
1392    
1393     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Board)
1394     ListCoolBar.Bands.BeginUpdate;
1395     try
1396 yoffy 1.216 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1397     for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1398 hi_ 1.1 CoolSet := GikoSys.Setting.ListCoolSet[i];
1399 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1400 yoffy 1.424 FIsIgnoreResize := rtNone;
1401 yoffy 1.263 SaveCoolBarSettings;
1402     Exit;
1403     end;
1404 hi_ 1.1 ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1405     ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1406     ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1407     end;
1408     finally
1409     ListCoolBar.Bands.EndUpdate;
1410     end;
1411    
1412     //鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申(Browser)
1413     BrowserCoolBar.Bands.BeginUpdate;
1414     try
1415 yoffy 1.216 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1416 h677 1.514 for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1417 hi_ 1.1 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1418 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1419 yoffy 1.424 FIsIgnoreResize := rtNone;
1420 yoffy 1.263 SaveCoolBarSettings;
1421     Exit;
1422     end;
1423 hi_ 1.1 BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1424     BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1425     BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1426     end;
1427     finally
1428     BrowserCoolBar.Bands.EndUpdate;
1429     end;
1430    
1431     end;
1432 yoffy 1.216 //
1433     procedure TGikoForm.FormShow(Sender: TObject);
1434 h677 1.638 var
1435     item : TThreadItem;
1436 yoffy 1.216 begin
1437 h677 1.471 if FStartUp then begin
1438 h677 1.423 ShowWindow(Application.Handle, SW_HIDE);
1439    
1440     //FormCreate鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申FormShow鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1441     //鐃?鐃?鐃緒申鐃?鐃?鐃?鐃緒申
1442 h677 1.539 GikoDM.StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1443     GikoDM.StdToolBarVisibleActionExecute( nil );
1444     GikoDM.AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1445     GikoDM.AddressBarVisibleActionExecute( nil );
1446     GikoDM.LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1447     GikoDM.LinkBarVisibleActionExecute( nil );
1448     GikoDM.ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1449     GikoDM.ListToolBarVisibleActionExecute( nil );
1450     GikoDM.ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1451     GikoDM.ListNameBarVisibleActionExecute( nil );
1452     GikoDM.BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1453     GikoDM.BrowserToolBarVisibleActionExecute( nil );
1454     GikoDM.BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1455     GikoDM.BrowserNameBarVisibleActionExecute( nil );
1456 h677 1.423
1457     // CoolBar 鐃緒申鐃緒申
1458     LoadCoolBarSettings;
1459 yoffy 1.265
1460 h677 1.514 //鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1461 h677 1.517 // ResetBandInfo( ListCoolBar, ListToolBar );
1462 yoffy 1.424 FIsIgnoreResize := rtNone;
1463 genyakun 1.382
1464 h677 1.423 //FormCrete鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1465     if GikoSys.Setting.TabAutoLoadSave then begin
1466 h677 1.611 GikoDM.TabsOpenAction.Tag := 1;
1467     GikoDM.TabsOpenAction.Execute;
1468     GikoDM.TabsOpenAction.Tag := 0;
1469 h677 1.638 if (GikoSys.Setting.LastCloseTabURL <> '') then begin
1470     item := BBSsFindThreadFromURL( GikoSys.Setting.LastCloseTabURL );
1471     if (item <> nil) and (item.IsLogFile) then begin
1472     OpenThreadItem(item, item.URL);
1473     end;
1474     GikoSys.Setting.LastCloseTabURL := '';
1475     end;
1476 h677 1.423 end;
1477 h677 1.581
1478     //ActionList鐃緒申GroupIndex鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1479     SetGroupIndex(GikoDM.GikoFormActionList);
1480 h677 1.547
1481 h677 1.471 FStartUp := false;
1482 yoffy 1.397 end;
1483 yoffy 1.239 end;
1484 yoffy 1.216
1485 hi_ 1.1 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1486     begin
1487 yoffy 1.331 // if GikoForm.WindowState <> wsMinimized then
1488     // SaveCoolBarSettings;
1489 h677 1.599 CanClose := True;
1490 yoffy 1.236 if ( GikoSys.Setting.ShowDialogForEnd ) and
1491     (MessageDlg('鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1492     CanClose := false;
1493     Exit;
1494 h677 1.599 end;
1495    
1496 h677 1.638 GikoSys.Setting.LastCloseTabURL := '';
1497 h677 1.599 if GikoSys.Setting.TabAutoLoadSave then begin
1498 h677 1.611 GikoDM.TabsSaveAction.Execute;
1499 h677 1.638 if (GetActiveContent <> nil) and
1500     (GetActiveContent.IsLogFile) then begin
1501     GikoSys.Setting.LastCloseTabURL := GetActiveContent.URL;
1502     end;
1503 h677 1.599 end;
1504    
1505     if (SearchDialog <> nil) then begin
1506     if (SearchDialog.Visible) then begin
1507     SearchDialog.Close;
1508     try
1509     SearchDialog.Release;
1510     except
1511     end;
1512     SearchDialog := nil;
1513 yoffy 1.398 end;
1514 yoffy 1.236 end;
1515 h677 1.609
1516     //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?EditorForm鐃緒申鐃緒申鐃緒申鐃緒申
1517     GikoDM.CloseAllEditorAction.Execute;
1518    
1519 h677 1.241 Application.UnhookMainWindow(Hook);
1520     Application.Terminate;
1521     end;
1522    
1523     procedure TGikoForm.FormDestroy(Sender: TObject);
1524     var
1525 yoffy 1.376 i : Integer;
1526 h677 1.241 // CoolSet: TCoolSet;
1527 yoffy 1.376 wp : TWindowPlacement;
1528     tmpBool : Boolean;
1529 h677 1.241 begin
1530 yoffy 1.460 // 鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申
1531 yoffy 1.456 try
1532     MouseGesture.UnHook;
1533     except
1534     end;
1535 yoffy 1.236 try
1536 yoffy 1.410 ActiveListColumnSave;
1537 yoffy 1.236 except
1538     end;
1539     try
1540 h677 1.234 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
1541     wp.length := sizeof(wp);
1542     GetWindowPlacement(Handle, @wp);
1543     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1544     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1545     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1546     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1547     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1548    
1549     GikoSys.Setting.ListStyle := ListView.ViewStyle;
1550 h677 1.539 GikoSys.Setting.CabinetVisible := GikoDM.CabinetVisibleAction.Checked;
1551 h677 1.234 GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1552     GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1553     GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1554 h677 1.539 if GikoDM.ArrangeAction.Checked then
1555 h677 1.234 GikoSys.Setting.ListOrientation := gloVertical
1556     else
1557     GikoSys.Setting.ListOrientation := gloHorizontal;
1558     GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1559 yoffy 1.236 except
1560 yoffy 1.2 end;
1561 yoffy 1.378
1562     try
1563     // 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
1564     if not GikoSys.Setting.ResRangeHold then
1565 yoffy 1.380 GikoSys.Setting.ResRange := FResRangeMenuSelect;
1566 yoffy 1.378 except
1567     end;
1568 h677 1.483 if WindowState <> wsNormal then
1569     WindowState := wsNormal;
1570     SaveCoolBarSettings;
1571     try
1572     GikoSys.Setting.WriteWindowSettingFile;
1573     GikoSys.Setting.WriteNameMailSettingFile;
1574     except
1575     end;
1576 yoffy 1.378 // 鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申 CoolBar 鐃緒申鐃緒申
1577 yoffy 1.216 // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1578 h677 1.482
1579 yoffy 1.263 // 鐃緒申FormDestroy鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?2004/04/09鐃?
1580 yoffy 1.216 // CoolBar 鐃緒申鐃緒申
1581 h677 1.482 //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
1582 h677 1.483
1583 h677 1.583 //鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1584     InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName);
1585 yoffy 1.2
1586     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1587 hi_ 1.1 try
1588 yoffy 1.236 //FavoriteDM鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1589 yoffy 1.2 FavoriteDM.WriteFavorite;
1590 yoffy 1.236 FavoriteDM.Clear;
1591 hi_ 1.1 except
1592     end;
1593 h677 1.483 LockWindowUpdate(Self.Handle);
1594 hi_ 1.1 try
1595     //鐃?鐃?鐃?鐃緒申鐃?鐃?
1596 h677 1.321 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
1597     GikoSys.Setting.ShowDialogForAllTabClose := false;
1598 h677 1.539 GikoDM.AllTabCloseAction.Execute;
1599 h677 1.483 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
1600 h677 1.299 except
1601     end;
1602 h677 1.321 try
1603     for i := FBrowsers.Count - 1 downto 0 do begin
1604     TWebBrowser(FBrowsers[i]).Free;
1605     end;
1606     FBrowsers.Clear;
1607     FBrowsers.Capacity := 0;
1608     finally
1609     FBrowsers.Free;
1610 h677 1.303 end;
1611 h677 1.299 try
1612     if BrowserNullTab <> nil then begin
1613     BrowserNullTab.Browser := nil; {*BrowserNullTab鐃緒申Browser鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?
1614     *鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申Free鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1615     *}
1616     BrowserNullTab.Free;
1617 hi_ 1.1 end;
1618     except
1619     end;
1620 h677 1.483
1621 h677 1.224 try
1622 yoffy 1.236 TreeView.Items.BeginUpdate;
1623 yoffy 1.380 TreeView.Items.GetFirstNode.Free;
1624 yoffy 1.236 TreeView.Items.Clear;
1625     TreeView.Items.EndUpdate;
1626 h677 1.224 except
1627     end;
1628 h677 1.230
1629 hi_ 1.1 //鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1630     try
1631 yoffy 1.236 //AddressHistoryDM鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1632 h677 1.513 AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1633 hi_ 1.1 except
1634     end;
1635    
1636 h677 1.234 //鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
1637 hi_ 1.1 try
1638 h677 1.623 FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1639 hi_ 1.1 except
1640     end;
1641 yoffy 1.236 try
1642     try
1643 h677 1.623 FHistoryList.Clear;
1644 yoffy 1.236 except
1645     end;
1646     finally
1647     FHistoryList.Free;
1648     end;
1649 h677 1.221
1650 h677 1.182 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申&鐃?鐃緒申
1651     try
1652     RoundList.SaveRoundFile;
1653     except
1654     end;
1655 yoffy 1.236 try
1656 h677 1.234 try
1657 yoffy 1.236 RoundList.Clear;
1658 h677 1.234 except
1659     end;
1660 yoffy 1.236 finally
1661     RoundList.Free;
1662     end;
1663 h677 1.182
1664 yoffy 1.236 try
1665 h677 1.234 try
1666     FControlThread.Terminate;
1667 yoffy 1.236 FControlThread.WaitFor;
1668 h677 1.234 except
1669 h677 1.219 end;
1670 yoffy 1.236 finally
1671     FControlThread.Free;
1672     end;
1673 h677 1.609 // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1674     for i := GikoForm.PlugInMenu.Count - 1 downto 0 do begin
1675     GikoForm.PlugInMenu.items[i].Free;
1676     end;
1677     GikoForm.PlugInMenu.Clear;
1678    
1679 h677 1.230
1680 yoffy 1.155 // TBBS 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 TCategory, TBoard, TThreadItem 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1681     // TBoard, TThreadItem 鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申
1682     // BoardPluteIns 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1683 h677 1.550 for i := Length(BoardGroups) - 1 downto 0 do begin
1684 h677 1.517 //BoardGroups[i].Clear;
1685     BoardGroups[i].Free;
1686 h677 1.550 end;
1687 h677 1.514
1688 yoffy 1.126 try
1689 h677 1.220 for i := Length( BBSs ) - 1 downto 0 do begin
1690 h677 1.153 if BBSs[ i ] <> nil then
1691     BBSs[ i ].Free;
1692     BBSs[ i ] := nil;
1693     end;
1694     except
1695     end;
1696 yoffy 1.155
1697 h677 1.234 try
1698 yoffy 1.236 if FEvent <> nil then
1699     FEvent.Free;
1700 h677 1.181
1701 h677 1.636 // TODO 鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃?鐃緒申
1702     try
1703     if FResPopupBrowser <> nil then begin
1704     TOleControl(FResPopupBrowser).Parent := nil;
1705     FResPopupBrowser.Free;
1706     end;
1707    
1708     except
1709     end;
1710 yoffy 1.2 //Preview鐃?鐃緒申
1711 h677 1.636 if FPreviewBrowser <> nil then begin
1712 yoffy 1.2 FPreviewBrowser.Free;
1713     FPreviewBrowser := nil;
1714     end;
1715     except
1716     end;
1717 h677 1.550 LockWindowUpdate(0);
1718 hi_ 1.1 end;
1719    
1720 yoffy 1.289 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃? BBS 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃?鐃?
1721     procedure TGikoForm.SetBBSMenu;
1722 yoffy 1.123 var
1723     i : Integer;
1724 yoffy 1.149 item : TBBSMenuItem;
1725 hi_ 1.1 begin
1726    
1727 yoffy 1.148 // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1728     for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
1729     try
1730     if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
1731 yoffy 1.155 CabinetSelectPopupMenu.Items[ i ].Free;
1732     CabinetMenu.Items[ i ].Free;
1733 yoffy 1.289 BBSSelectPopupMenu.Items[ i ].Free;
1734 yoffy 1.148 end;
1735     except
1736     end;
1737     end;
1738 yoffy 1.289
1739     // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申
1740 yoffy 1.148 for i := Length( BBSs ) - 1 downto 0 do begin
1741     try
1742     item := TBBSMenuItem.Create( PopupMenu );
1743     item.Caption := BBSs[ i ].Title;
1744     item.Data := BBSs[ i ];
1745     item.OnClick := BBSMenuItemOnClick;
1746     CabinetSelectPopupMenu.Items.Insert( 0, item );
1747     item := TBBSMenuItem.Create( PopupMenu );
1748     item.Caption := BBSs[ i ].Title;
1749     item.Data := BBSs[ i ];
1750     item.OnClick := BBSMenuItemOnClick;
1751     CabinetMenu.Insert( 0, item );
1752 yoffy 1.289 item := TBBSMenuItem.Create( PopupMenu );
1753     item.Caption := BBSs[ i ].Title;
1754     item.Data := BBSs[ i ];
1755     item.OnClick := BBSMenuItemOnClick;
1756     BBSSelectPopupMenu.Items.Insert( 0, Item );
1757 yoffy 1.148 except
1758     end;
1759     end;
1760 yoffy 1.289
1761     end;
1762    
1763     procedure TGikoForm.ReloadBBS;
1764     var
1765     i : Integer;
1766 h677 1.321 tmpBool: Boolean;
1767 yoffy 1.289 begin
1768 h677 1.517 LockWindowUpdate(Self.Handle);
1769    
1770 yoffy 1.289 //鐃?鐃?鐃?鐃緒申鐃?鐃?
1771 h677 1.321 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
1772     GikoSys.Setting.ShowDialogForAllTabClose := false;
1773 h677 1.539 GikoDM.AllTabCloseAction.Execute;
1774 h677 1.321 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
1775 h677 1.320 SetContent(BrowserNullTab);
1776 yoffy 1.289 //TreeView鐃?鐃緒申鐃?鐃?BBS2ch.Free鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申XP鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃?
1777     TreeView.Items.Clear;
1778    
1779 h677 1.515 //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申
1780     try
1781     RoundList.SaveRoundFile;
1782     except
1783     end;
1784     //鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申
1785     try
1786     RoundList.Clear;
1787     except
1788     end;
1789    
1790     //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1791 h677 1.517 try
1792 h677 1.623 FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1793     FHistoryList.Clear;
1794 h677 1.517 except
1795     end;
1796 h677 1.515
1797     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1798 h677 1.517 try
1799     FavoriteDM.WriteFavorite;
1800     FavoriteDM.Clear;
1801     except
1802     end;
1803 h677 1.515
1804 h677 1.516 //鐃緒申鐃?鐃?鐃緒申鐃?PLUGIN鐃緒申鐃?鐃緒申
1805     for i := Length(BoardGroups) - 1 downto 0 do begin
1806 h677 1.517 try
1807     BoardGroups[i].Free;
1808     except
1809     end;
1810 h677 1.516 end;
1811 yoffy 1.289 //BBS鐃?鐃緒申
1812     try
1813     for i := Length( BBSs ) - 1 downto 0 do begin
1814     if BBSs[ i ] <> nil then
1815     BBSs[ i ].Free;
1816     BBSs[ i ] := nil;
1817     end;
1818     except
1819     end;
1820    
1821     ActiveList := nil;
1822    
1823     FTreeType := gttNone;
1824 h677 1.516
1825     //============鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申================================//
1826    
1827     // 鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃?(ReadBoardFile, LoadHistory 鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
1828     InitializeBoardPlugIns;
1829    
1830 yoffy 1.289 GikoSys.ListBoardFile; //鐃?鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申
1831    
1832 h677 1.515 // 鐃緒申鐃緒申鐃緒申鐃緒申BBS鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1833     for i := Length(BBSs) - 1 downto 0 do begin
1834     if not BBSs[i].IsBoardFileRead then
1835     GikoSys.ReadBoardFile(BBSs[i]);
1836     end;
1837    
1838 yoffy 1.289 // BBS 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?
1839     SetBBSMenu;
1840    
1841 yoffy 1.123 ShowBBSTree( BBSs[ 0 ] );
1842 yoffy 1.143
1843     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1844 h677 1.623 FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml',
1845     TreeView, FTreeType);
1846 yoffy 1.143
1847     //鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1848     FavoriteDM.ReadFavorite;
1849 yoffy 1.279
1850 yoffy 1.143 SetLinkBar;
1851    
1852 h677 1.515 //鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1853 h677 1.514 RoundList.LoadRoundBoardFile;
1854     RoundList.LoadRoundThreadFile;
1855    
1856 h677 1.517 LockWindowUpdate(0);
1857 hi_ 1.1 end;
1858    
1859 yoffy 1.602 {!
1860     \todo 鐃緒申鐃緒申 IE 7 鐃緒申鐃緒申 about:.. 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1861     (IE 7 鐃緒申 about:.. 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申)
1862     鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1863     }
1864 hi_ 1.1 procedure TGikoForm.BrowserStatusTextChange(Sender: TObject; const Text: WideString);
1865     var
1866     p: TPoint;
1867     s: string;
1868     tmp2: string;
1869     URL: string;
1870     ATitle: Boolean;
1871    
1872 yoffy 1.130 threadItem : TThreadItem;
1873     board : TBoard;
1874 yoffy 1.163 Protocol, Host, Path, Document, Port, Bookmark: string;
1875 yoffy 1.130
1876 h677 1.333 wkInt: Integer;
1877 hi_ 1.1 wkIntSt: Integer;
1878     wkIntTo: Integer;
1879     ActiveFileName: string;
1880     e: IHTMLElement;
1881     Ext: string;
1882     PathRec: TPathRec;
1883 yoffy 1.602 Text2: string;
1884 h677 1.636 cResPopup: TResPopupBrowser;
1885 hi_ 1.1 begin
1886 yoffy 1.602 // 鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃?鐃緒申 about:blank.. 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
1887     // IE 7 鐃緒申鐃緒申 about:blank.. 鐃緒申鐃緒申鐃緒申鐃緒申 about:.. 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申鐃緒申鐃緒申)
1888     if Pos('about:..', Text) = 1 then
1889 yoffy 1.603 Text2 := 'about:blank..' + Copy( Text, Length('about:..')+1, Length(Text) )
1890     else
1891     Text2 := Text;
1892 h677 1.316 if not( TObject(Sender) is TWebBrowser )then
1893     Exit;
1894 hi_ 1.1 try
1895     try
1896 h677 1.316 if (TWebBrowser(Sender) <> nil) and (not TWebBrowser(Sender).Busy) and (Assigned(TWebBrowser(Sender).Document)) then begin
1897     if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then begin
1898     OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis';
1899 h677 1.306 end;
1900 hi_ 1.1 end;
1901     except
1902     end;
1903     finally
1904     end;
1905     if PreviewTimer.Enabled then
1906     PreviewTimer.Enabled := False;
1907     Application.CancelHint;
1908 h677 1.333 try
1909     if GetActiveContent <> nil then
1910     ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
1911     else
1912     ActiveFileName := '';
1913     except
1914     FActiveContent := nil;
1915     Exit;
1916     end;
1917 h677 1.628 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
1918     if (StatusBar.Panels[1].Text = Text2) then begin
1919 h677 1.636 if Text2 = '' then begin
1920     if FResPopupBrowser <> nil then begin
1921     if not(Sender is TResPopupBrowser) then
1922     FResPopupBrowser.Clear
1923     else begin
1924     TResPopupBrowser(Sender).ChildClear;
1925     end;
1926     end;
1927     end;
1928 h677 1.628 Exit;
1929     end;
1930 yoffy 1.602 StatusBar.Panels[1].Text := Text2;
1931 hi_ 1.1
1932 h677 1.636
1933 hi_ 1.1 if FPreviewBrowser <> nil then
1934     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
1935    
1936 h677 1.636 if FResPopupBrowser <> nil then begin
1937     if not(Sender is TResPopupBrowser) then begin
1938     if (FResPopupBrowser.Visible) then begin
1939     FResPopupBrowser.Clear;
1940     end;
1941     end else begin
1942     TResPopupBrowser(Sender).ChildClear;
1943     end;
1944     end;
1945     cResPopup := nil;
1946    
1947     if not(Sender is TResPopupBrowser) then
1948     if not GikoSys.Setting.UnActivePopup then
1949     if not GikoForm.Active then
1950     Exit;
1951 hi_ 1.1
1952 h677 1.628
1953    
1954 hi_ 1.1 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
1955     //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
1956    
1957     s := '';
1958 yoffy 1.602 Ext := AnsiLowerCase(ExtractFileExt(Text2));
1959     if (Pos('http://', Text2) = 1) and (GikoSys.Setting.PreviewVisible) and
1960 hi_ 1.1 ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
1961     if FPreviewBrowser = nil then begin
1962     FPreviewBrowser := TPreviewBrowser.Create(Self);
1963     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
1964     TOleControl(FPreviewBrowser).Parent := nil;
1965     end;
1966 h677 1.316 FPreviewBrowser.Navigate(BLANK_HTML);//鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1967 yoffy 1.602 FPreviewURL := Text2;
1968 hi_ 1.1 PreviewTimer.Interval := GikoSys.Setting.PreviewWait;
1969     PreviewTimer.Enabled := True;
1970 yoffy 1.602 end else if (Pos('about:blank', Text2) = 1) or (Pos('http://', Text2) = 1) or (Pos('mailto:', Text2) = 1) then begin
1971     if Pos('mailto:', Text2) = 1 then begin
1972     s := StringReplace(Text2, 'mailto:', '', [rfIgnoreCase]);
1973 hi_ 1.1 //鐃?鐃?鐃?鐃?鐃?鐃緒申 鐃?鐃?鐃?3鐃緒申466鐃緒申鐃緒申鐃緒申鐃緒申
1974     GetCursorPos(p);
1975     p.x := p.x - TWebBrowser(Sender).ClientOrigin.x;
1976     p.y := p.y - TWebBrowser(Sender).ClientOrigin.y;
1977     e := IHTMLDocument2(TWebBrowser(Sender).Document).elementFromPoint(p.x, p.y);
1978     if (Assigned(e)) then begin
1979 h677 1.636 CreateResPopupBrowser;
1980     cResPopup := FResPopupBrowser.CreateNewBrowser;
1981 h677 1.297 tmp2 := ZenToHan(e.Get_outerText);
1982 hi_ 1.1 if (GikoSys.IsNumeric(tmp2)) then begin
1983     //鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
1984 h677 1.600 wkIntSt := StrToInt64(tmp2);
1985     wkIntTo := StrToInt64(tmp2);
1986 h677 1.636 cResPopup.PopupType := gptThread;
1987 h677 1.637 HTMLCreater.SetResPopupText(cResPopup, GetActiveContent(true), wkIntSt, wkIntTo, False, False);
1988 hi_ 1.1 end else begin
1989 h677 1.636 cResPopup.PopupType := gptRaw;
1990     cResPopup.Title := s;
1991 hi_ 1.1 end;
1992     end;
1993     end else begin
1994 h677 1.637 threadItem := GetActiveContent(true);
1995 yoffy 1.602 URL := THTMLCreate.GetRespopupURL(Text2, threadItem.URL);
1996 yoffy 1.274 PathRec := Gikosys.Parse2chURL2(URL);
1997 q9_ 1.354 if (PathRec.FNoParam) then begin
1998     PathRec.FSt := 1;
1999     PathRec.FTo := 1;
2000 h677 1.447 end else begin
2001 q9_ 1.352 Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
2002 h677 1.447 end;
2003 yoffy 1.163 GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
2004 hi_ 1.1
2005 h677 1.168 if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
2006 yoffy 1.162
2007 yoffy 1.163 URL := GikoSys.GetBrowsableThreadURL( URL );
2008 yoffy 1.274 wkIntSt := PathRec.FSt;
2009     wkIntTo := PathRec.FTo;
2010 hi_ 1.1
2011     if (wkIntSt = 0) and (wkIntTo = 0) then begin
2012     wkIntSt := 1;
2013     wkIntTo := 1;
2014     end else if (wkIntSt = 0) and (wkIntTo > 0) then begin
2015     wkIntSt := wkIntTo;
2016     end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
2017     wkIntTo := wkIntSt;
2018     end else if wkIntSt > wkIntTo then begin
2019 h677 1.333 wkInt := wkIntTo;
2020 hi_ 1.1 wkIntTo := wkIntSt;
2021 h677 1.333 wkIntSt := wkInt;
2022 hi_ 1.1 end;
2023 h677 1.299 if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
2024 yoffy 1.274 ATitle := false
2025     else
2026     ATitle := true;
2027 hi_ 1.1
2028 yoffy 1.160 threadItem := BBSsFindThreadFromURL( URL );
2029 h677 1.170
2030 yoffy 1.163 if (threadItem = nil) and GikoSys.Is2chHost( Host ) then begin
2031     board := BBSs[ 0 ].FindBBSID( PathRec.FBBS );
2032 yoffy 1.274 if board <> nil then begin
2033     if not board.IsThreadDatRead then
2034     GikoSys.ReadSubjectFile( board );
2035 yoffy 1.270 threadItem := board.FindThreadFromFileName( PathRec.FKey + '.dat' );
2036 yoffy 1.274 end;
2037 yoffy 1.130 end;
2038 h677 1.319
2039 yoffy 1.130 if threadItem <> nil then begin
2040 yoffy 1.127 //HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst);
2041 h677 1.512 //URL鐃緒申鐃緒申鐃緒申鐃緒申/鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?
2042     if ( IntToStr(wkIntSt) = ChangeFileExt(threadItem.FileName, '') ) then begin
2043     wkIntSt := 1;
2044     wkIntTo := 1;
2045     end;
2046 h677 1.636 CreateResPopupBrowser;
2047     cResPopup := FResPopupBrowser.CreateNewBrowser;
2048     cResPopup.PopupType := gptThread;
2049     HTMLCreater.SetResPopupText(cResPopup, threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst );
2050 yoffy 1.127 end;
2051 hi_ 1.1 end;
2052 h677 1.168 end;
2053 h677 1.636 if (cResPopup <> nil) then begin
2054     if cResPopup.PopupType = gptRaw then begin
2055     if cResPopup.Title <> '' then begin
2056     cResPopup.TitlePopup;
2057     end;
2058     end else begin
2059     if cResPopup.RawDocument <> '' then begin
2060     cResPopup.Popup;
2061     end else if cResPopup.Title <> '' then begin
2062     cResPopup.TitlePopup;
2063     end;
2064     end;
2065     end;
2066 hi_ 1.1 end;
2067     end;
2068    
2069     procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
2070     var
2071     SysMenu: HMenu;
2072     begin
2073     FEnabledCloseButton := Enabled;
2074     SysMenu := GetSystemMenu(Handle, False);
2075    
2076     if Enabled then begin
2077     EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED);
2078     end else begin
2079     EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
2080     end;
2081    
2082     DrawMenuBar(Handle);
2083     end;
2084    
2085     procedure TGikoForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
2086     var AllowChange: Boolean);
2087     begin
2088 q9_ 1.369 //鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
2089     // if FTreeType = gtt2ch then
2090     // FSortIndex := -1;
2091 hi_ 1.1 end;
2092    
2093     procedure TGikoForm.ListViewKeyDown(Sender: TObject; var Key: Word;
2094     Shift: TShiftState);
2095 yoffy 1.428 var
2096     pos : TPoint;
2097 hi_ 1.1 begin
2098 yoffy 1.236 if GetActiveList is TBoard then begin
2099 yoffy 1.428 case Key of
2100     VK_BACK:; // UpFolderButtonClick(Sender);
2101     VK_SPACE: ListDoubleClick(Shift);
2102     VK_RETURN: ListClick;
2103     VK_APPS:
2104     begin
2105     if ListView.Selected <> nil then begin
2106     pos.X := ListView.Column[ 0 ].Width;
2107     pos.Y := ListView.Selected.Top;
2108     end else begin
2109     pos.X := ListView.Left;
2110     pos.Y := ListView.Top;
2111     end;
2112     Windows.ClientToScreen( ListView.Handle, pos );
2113     ListPopupMenu.Popup( pos.X, pos.Y );
2114     end;
2115 yoffy 1.236 end;
2116     end else begin // TBBS, TCategory
2117 yoffy 1.428 case Key of
2118     VK_BACK:; // UpFolderButtonClick(Sender);
2119     VK_SPACE: ListClick;
2120     VK_RETURN: ListDoubleClick(Shift);
2121     VK_APPS:
2122     begin
2123     if ListView.Selected <> nil then begin
2124     pos.X := ListView.Column[ 0 ].Width;
2125     pos.Y := ListView.Selected.Top;
2126     end else begin
2127     pos.X := ListView.Left;
2128     pos.Y := ListView.Top;
2129     end;
2130     Windows.ClientToScreen( ListView.Handle, pos );
2131     ListPopupMenu.Popup( pos.X, pos.Y );
2132     end;
2133 yoffy 1.236 end;
2134 hi_ 1.1 end;
2135     end;
2136    
2137     function TGikoForm.GetHttpState: Boolean;
2138     begin
2139     Result := FHttpState;
2140     end;
2141    
2142     procedure TGikoForm.ListViewColumnClick(Sender: TObject;
2143     Column: TListColumn);
2144 yoffy 1.413 var
2145     id, idx : Integer;
2146     orderList : TList;
2147 h677 1.570 vSortIndex : Integer;
2148     vSortOrder : Boolean;
2149 hi_ 1.1 begin
2150 h677 1.530 idx := TListViewUtils.ActiveListTrueColumn( Column ).Tag;
2151 h677 1.570 if TObject( FActiveList ) is TBBS then begin
2152     orderList := GikoSys.Setting.BBSColumnOrder;
2153     vSortIndex := GikoSys.Setting.BBSSortIndex;
2154     vSortOrder := GikoSys.Setting.BBSSortOrder;
2155     end else if TObject( FActiveList ) is TCategory then begin
2156     orderList := GikoSys.Setting.CategoryColumnOrder;
2157     vSortIndex := GikoSys.Setting.CategorySortIndex;
2158     vSortOrder := GikoSys.Setting.CategorySortOrder;
2159     end else if TObject( FActiveList ) is TBoard then begin
2160     orderList := GikoSys.Setting.BoardColumnOrder;
2161     vSortIndex := GikoSys.Setting.BoardSortIndex;
2162     vSortOrder := GikoSys.Setting.BoardSortOrder;
2163     end else
2164 yoffy 1.413 Exit;
2165    
2166     id := Integer( orderList[ idx ] );
2167    
2168 h677 1.570
2169     if vSortIndex = id then
2170     vSortOrder := not vSortOrder
2171 h677 1.464 else begin
2172 h677 1.572 vSortOrder := id = 0;
2173 h677 1.570 end;
2174 h677 1.572
2175 h677 1.570 TListViewUtils.ListViewSort(Sender, ListView, Column, GikoDM.ListNumberVisibleAction.Checked, vSortOrder);
2176 hi_ 1.1 end;
2177    
2178     procedure TGikoForm.MenuToolBarCustomDrawButton(Sender: TToolBar;
2179     Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
2180     var
2181     ARect: TRect;
2182     begin
2183 yoffy 1.2 DefaultDraw := True;
2184     Exit;
2185 hi_ 1.1 DefaultDraw := False;
2186     if (cdsSelected in State) or (cdsHot in State) then begin
2187     Sender.Canvas.Brush.Color := clHighlight;
2188     Sender.Canvas.Font.Color := clHighlightText;
2189     end else begin
2190     Sender.Canvas.Brush.Color := clBtnFace;
2191     Sender.Canvas.Font.Color := clBtnText;
2192     end;
2193     ARect := Rect(Button.Left, Button.Top, Button.Left + Button.Width, Button.Top + Button.Height);
2194     Sender.Canvas.FillRect(ARect);
2195     DrawText(Sender.Canvas.Handle, PChar(Button.Caption), -1, ARect, DT_SINGLELINE or DT_VCENTER or DT_CENTER);
2196     end;
2197    
2198     function TGikoForm.GetTreeNode(Data: TObject): TTreeNode;
2199     var
2200     Nodes: TTreeNodes;
2201     i: integer;
2202     begin
2203     Nodes := TreeView.Items;
2204    
2205     for i := 0 to Nodes.Count - 1 do begin
2206     if Nodes.Item[i].Data = Data then begin
2207     Result := Nodes.Item[i];
2208     Exit;
2209     end;
2210     end;
2211     Result := nil;
2212     end;
2213    
2214     procedure TGikoForm.BrowserBeforeNavigate2(Sender: TObject;
2215     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
2216     Headers: OleVariant; var Cancel: WordBool);
2217     var
2218     sNo: string;
2219     p: TPoint;
2220 yoffy 1.56 const
2221     kMenuName: string = 'menu:';
2222 hi_ 1.1 begin
2223 h677 1.636 {$IFDEF DEBUG}
2224     Writeln(URL);
2225     {$ENDIF}
2226 yoffy 1.56 if Pos(kMenuName, URL) <> 0 then begin
2227 yoffy 1.100 sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
2228    
2229 hi_ 1.1 if not GikoSys.IsNumeric(sNo) then Exit;
2230    
2231     Cancel := True;
2232     GetCursorpos(p);
2233 h677 1.636 KokoPopupMenu.PopupComponent := nil;
2234     if (Sender is TComponent) then
2235     KokoPopupMenu.PopupComponent := TComponent(Sender);
2236 hi_ 1.1 KokoPopupMenu.Tag := StrToInt(sNo);
2237