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.692 - (hide annotations) (download) (as text)
Sun May 17 04:28:00 2009 UTC (14 years, 11 months ago) by h677
Branch: MAIN
CVS Tags: v1_60_0_791
Changes since 1.691: +14 -13 lines
File MIME type: text/x-pascal
close #16779
リンク履歴の戻る/進むで、キー設定でshift/ctrlを設定するとうまく動作しない不具合の修正。
MoveToURLを利用しているが、もともとの使い方として、shift/ctrlが押されているときはブラウザで開く機能があり、
アクションのショートカットキーとかぶるため動作しないので、アクションから呼び出すときは、shift/ctrlを
無視するように修正した。

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