Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.533 - (show annotations) (download) (as text)
Thu Nov 17 15:15:59 2005 UTC (18 years, 5 months ago) by h677
Branch: MAIN
Changes since 1.532: +21 -6 lines
File MIME type: text/x-pascal
。ノ・ケ・?テ・ノ。ノ・ォ・ニ・エ・熙゙、ヌーワソ「

1 unit Giko;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7 OleCtrls, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem, DateUtils, Math,
8 {$IF Defined(DELPRO) }
9 SHDocVw,
10 MSHTML,
11 {$ELSE}
12 SHDocVw_TLB,
13 MSHTML_TLB,
14 {$IFEND}
15 IdHTTP, ActiveX, ActnList, ImgList,
16 ToolWin, Buttons, {Clipbrd,} {HTTPApp,} YofUtils, IdComponent,
17 ShellAPI, UrlMon, Tabs, IdGlobal, StrUtils,
18 CommCtrl, IniFiles, Dialogs,
19 GikoSystem, GikoUtil, Setting, BoardGroup, ThreadControl, ItemDownload,
20 Editor, RoundData, RoundName, KeySetting, GikoPanel, Favorite, FavoriteAdd,
21 FavoriteArrange, AddressHistory, Preview, HTMLDocumentEvent, Kotehan,
22 HintWindow, GikoCoolBar, GikoListView, ToolBarSetting, ToolBarUtil,
23 IndividualAbon, Search, ExternalBoardManager, ExternalBoardPlugInMain,
24 StdActns, GikoXMLDoc, Variants, ExtActns,IdTCPConnection, IdBaseComponent,
25 IdTCPClient, Gesture;
26
27 type
28 TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
29 TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser);
30 TMinimizeType = (mtNone, mtMinimizing, mtMinimized);
31 TResizeType = (rtNone, rtResizing);
32
33 TBrowserRecord = class;
34
35 TGikoForm = class(TForm)
36 StatusBar: TStatusBar;
37 MainPanel: TPanel;
38 ClientPanel: TPanel;
39 TreeSplitter: TSplitter;
40 CabinetPanel: TPanel;
41 TreeView: TTreeView;
42 ThreadMainPanel: TPanel;
43 ListSplitter: TSplitter;
44 ViewPanel: TPanel;
45 ListView: TGikoListView;
46 ThreadPanel: TPanel;
47 MessagePanel: TPanel;
48 MessageBar: TPanel;
49 MessageHideButton: TSpeedButton;
50 MessageListView: TListView;
51 MessageSplitter: TSplitter;
52 Panel3: TPanel;
53 SpeedButton1: TSpeedButton;
54 ToolBar1: TToolBar;
55 CabinetSelectToolButton: TToolButton;
56 HistoryToolBar: TToolBar;
57 ToolButton15: TToolButton;
58 ToolButton18: TToolButton;
59 ItemIcon16: TImageList;
60 ItemIcon32: TImageList;
61 HotToobarImageList: TImageList;
62 ToobarImageList: TImageList;
63 ItemImageList: TImageList;
64 ActionList: TActionList;
65 LogDeleteAction: TAction;
66 KidokuAction: TAction;
67 StdToolBarVisibleAction: TAction;
68 SearchAction: TAction;
69 GikoNaviWebPageAction: TAction;
70 AboutAction: TAction;
71 ExitAction: TAction;
72 MsgBarVisibleAction: TAction;
73 StatusBarVisibleAction: TAction;
74 LargeIconAction: TAction;
75 SmallIconAction: TAction;
76 ListIconAction: TAction;
77 DetailIconAction: TAction;
78 CabinetBBSAction: TAction;
79 CabinetHistoryAction: TAction;
80 CabinetVisibleAction: TAction;
81 MidokuAction: TAction;
82 AllSelectAction: TAction;
83 UpFolderAction: TAction;
84 ListNumberVisibleAction: TAction;
85 AllItemAction: TAction;
86 LogItemAction: TAction;
87 NewItemAction: TAction;
88 SelectItemAction: TAction;
89 ShowThreadAction: TAction;
90 StopAction: TAction;
91 MainMenu: TMainMenu;
92 FileMenu: TMenuItem;
93 DeleteMenu: TMenuItem;
94 ExitMenu: TMenuItem;
95 KidokuMenu: TMenuItem;
96 MidokuMenu: TMenuItem;
97 AllSelectMenu: TMenuItem;
98 ViewMenu: TMenuItem;
99 StdToolBarMenu: TMenuItem;
100 CabinetMenu: TMenuItem;
101 H1: TMenuItem;
102 N4: TMenuItem;
103 CabinetVisibleMenu: TMenuItem;
104 MessageMenu: TMenuItem;
105 StatusBarMenu: TMenuItem;
106 MMSep03: TMenuItem;
107 LargeIconMenu: TMenuItem;
108 SmallIconMenu: TMenuItem;
109 ListMenu: TMenuItem;
110 DetailMenu: TMenuItem;
111 ToolMenu: TMenuItem;
112 Find1: TMenuItem;
113 RoundMenu: TMenuItem;
114 MMSep04: TMenuItem;
115 OptionMenu: TMenuItem;
116 HelpMenu: TMenuItem;
117 G1: TMenuItem;
118 N1: TMenuItem;
119 AboutMenu: TMenuItem;
120 IconStyle: TAction;
121 BrowserPopupMenu: TPopupMenu;
122 ShowThreadMenu: TMenuItem;
123 ShowBoardMenu: TMenuItem;
124 ShowBoardAction: TAction;
125 ListIconPopupMenu: TPopupMenu;
126 LargeIconPMenu: TMenuItem;
127 SmallIconPMenu: TMenuItem;
128 ListPMenu: TMenuItem;
129 DetailPMenu: TMenuItem;
130 CabinetCloseAction: TAction;
131 ClosePopupMenu: TPopupMenu;
132 CloseMenu: TMenuItem;
133 OptionAction: TAction;
134 U1: TMenuItem;
135 N3: TMenuItem;
136 B1: TMenuItem;
137 S1: TMenuItem;
138 N2: TMenuItem;
139 A1: TMenuItem;
140 L1: TMenuItem;
141 N5: TMenuItem;
142 S2: TMenuItem;
143 RoundAction: TAction;
144 ListPopupMenu: TPopupMenu;
145 ListRoundPMenu: TMenuItem;
146 ListReservPMenu: TMenuItem;
147 LPMSep01: TMenuItem;
148 ItemRoundPMenu: TMenuItem;
149 LPMSep02: TMenuItem;
150 KidokuPMenu: TMenuItem;
151 MidokuPMenu: TMenuItem;
152 AllSelectPMenu: TMenuItem;
153 UrlCopyPMenu: TMenuItem;
154 LPMSep05: TMenuItem;
155 DeletePMenu: TMenuItem;
156 LPMSep06: TMenuItem;
157 ViewPMenu: TMenuItem;
158 LargeIconLPMenu: TMenuItem;
159 SmallIconLPMenu: TMenuItem;
160 ListLPMenu: TMenuItem;
161 DetailLPMenu: TMenuItem;
162 T1: TMenuItem;
163 B2: TMenuItem;
164 N8: TMenuItem;
165 URLCopyAction: TAction;
166 URLC1: TMenuItem;
167 N9: TMenuItem;
168 N10: TMenuItem;
169 MsgBarCloseAction: TAction;
170 ScrollTopAction: TAction;
171 ScrollLastAction: TAction;
172 ScrollNewAction: TAction;
173 ScrollKokoAction: TAction;
174 EditorAction: TAction;
175 IEAction: TAction;
176 ItemReloadAction: TAction;
177 BrowserMaxAction: TAction;
178 G2: TMenuItem;
179 N11: TMenuItem;
180 T3: TMenuItem;
181 L2: TMenuItem;
182 N12: TMenuItem;
183 K1: TMenuItem;
184 N13: TMenuItem;
185 N14: TMenuItem;
186 R1: TMenuItem;
187 A2: TMenuItem;
188 N15: TMenuItem;
189 SelectListReloadAction: TAction;
190 SelectThreadReloadAction: TAction;
191 KokoPopupMenu: TPopupMenu;
192 KokomadePMenu: TMenuItem;
193 AllPMenu: TMenuItem;
194 MenuItem1: TMenuItem;
195 MenuItem2: TMenuItem;
196 BrowserTabCloseAction: TAction;
197 BrowserTabPopupMenu: TPopupMenu;
198 Close1: TMenuItem;
199 KokomadeAction: TAction;
200 ZenbuAction: TAction;
201 KokoResAction: TAction;
202 SelectItemURLCopyAction: TAction;
203 SelectReservAction: TAction;
204 NotSelectTabCloseAction: TAction;
205 A3: TMenuItem;
206 N16: TMenuItem;
207 A4: TMenuItem;
208 TreePopupMenu: TPopupMenu;
209 TreeSelectThreadPupupMenu: TMenuItem;
210 TreeSelectBoardPupupMenu: TMenuItem;
211 TPMSep01: TMenuItem;
212 TreeSelectURLPupupMenu: TMenuItem;
213 TreeSelectBoradReload: TAction;
214 TreeSelectThreadReload: TAction;
215 TreeSelectURLCopy: TAction;
216 ListToolBarVisibleAction: TAction;
217 BrowserToolBarVisibleAction: TAction;
218 T2: TMenuItem;
219 L3: TMenuItem;
220 B3: TMenuItem;
221 BrowserBottomPanel: TGikoPanel;
222 CabinetSelectPopupMenu: TPopupMenu;
223 H2: TMenuItem;
224 ItemReservPMenu: TMenuItem;
225 RoundNamePopupMenu: TPopupMenu;
226 SelectNewRoundName: TAction;
227 SelectDeleteRound: TAction;
228 NewBoardAction: TAction;
229 N7: TMenuItem;
230 B4: TMenuItem;
231 LoginAction: TAction;
232 L4: TMenuItem;
233 KeySettingAction: TAction;
234 K2: TMenuItem;
235 AllTabCloseAction: TAction;
236 A5: TMenuItem;
237 A6: TMenuItem;
238 C1: TMenuItem;
239 V1: TMenuItem;
240 N19: TMenuItem;
241 D1: TMenuItem;
242 D2: TMenuItem;
243 MessageImageList: TImageList;
244 ProgressBar: TProgressBar;
245 ArrangeAction: TAction;
246 URL1: TMenuItem;
247 NameURLCopyAction: TAction;
248 SelectItemNameURLCopyAction: TAction;
249 NameUrlCopyPMenu: TMenuItem;
250 URLC2: TMenuItem;
251 URLN1: TMenuItem;
252 N21: TMenuItem;
253 URLC3: TMenuItem;
254 URLN2: TMenuItem;
255 N23: TMenuItem;
256 ListCoolBar: TGikoCoolBar;
257 ListToolBar: TToolBar;
258 BrowserCoolBar: TGikoCoolBar;
259 BrowserToolBar: TToolBar;
260 ToolButton3: TToolButton;
261 ToolButton9: TToolButton;
262 ToolButton11: TToolButton;
263 ToolButton5: TToolButton;
264 ListNameToolBar: TToolBar;
265 ListNameLabel: TLabel;
266 FolderImage: TImage;
267 BrowserNameToolBar: TToolBar;
268 ItemBoardImage: TImage;
269 BrowserBoardNameLabel: TLabel;
270 ItemImage: TImage;
271 BrowserNameLabel: TLabel;
272 ActiveLogDeleteAction: TAction;
273 D3: TMenuItem;
274 N25: TMenuItem;
275 N26: TMenuItem;
276 ListNameBarVisibleAction: TAction;
277 D4: TMenuItem;
278 BrowserNameBarVisibleAction: TAction;
279 S3: TMenuItem;
280 R2: TMenuItem;
281 TreeSelectNameURLCopy: TAction;
282 TreeSelectNameURLPupupMenu: TMenuItem;
283 N27: TMenuItem;
284 H3: TMenuItem;
285 PaneInitAction: TAction;
286 I1: TMenuItem;
287 BrowserTabToolBar: TToolBar;
288 BrowserTab: TTabControl;
289 BrowserMinAction: TAction;
290 About1: TMenuItem;
291 N28: TMenuItem;
292 SelectTextClearAction: TAction;
293 MailTextClearAction: TAction;
294 NameTextClearAction: TAction;
295 S4: TMenuItem;
296 N29: TMenuItem;
297 N30: TMenuItem;
298 LeftmostTabSelectAction: TAction;
299 LeftTabSelectAction: TAction;
300 RightTabSelectAction: TAction;
301 RightmostTabSelectAction: TAction;
302 N31: TMenuItem;
303 L5: TMenuItem;
304 L6: TMenuItem;
305 A7: TMenuItem;
306 R3: TMenuItem;
307 FavoriteMenu: TMenuItem;
308 FavoriteAddAction: TAction;
309 N32: TMenuItem;
310 BoardFavoriteAddMenu: TMenuItem;
311 BoardFavoriteAddAction: TAction;
312 ThreadFavoriteAddAction: TAction;
313 ThreadFavoriteAddMenu: TMenuItem;
314 TreeSelectFavoriteAddAction: TAction;
315 N33: TMenuItem;
316 TreeSelectFavoriteAddPupupMenu: TMenuItem;
317 FavoriteArrangeAction: TAction;
318 FavoriteTreeView: TTreeView;
319 StateIconImageList: TImageList;
320 TopPanel: TPanel;
321 TopRightPanel: TPanel;
322 AnimePanel: TPanel;
323 Animate: TAnimate;
324 TopCoolPanel: TPanel;
325 MainCoolBar: TGikoCoolBar;
326 MenuToolBar: TToolBar;
327 StdToolBar: TToolBar;
328 AddressToolBar: TToolBar;
329 AddressComboBox: TComboBox;
330 MoveToToolButton: TToolButton;
331 MoveToAction: TAction;
332 AddressImageList: TImageList;
333 AddressBarVisibleAction: TAction;
334 AddressToolBarMenu: TMenuItem;
335 T4: TMenuItem;
336 BrowserTabVisibleAction: TAction;
337 Show1: TMenuItem;
338 N34: TMenuItem;
339 BrowserTabTopAction: TAction;
340 BrowserTabBottomAction: TAction;
341 T5: TMenuItem;
342 B5: TMenuItem;
343 N35: TMenuItem;
344 BrowserTabTabStyleAction: TAction;
345 BrowserTabButtonStyleAction: TAction;
346 BrowserTabFlatStyleAction: TAction;
347 A8: TMenuItem;
348 U2: TMenuItem;
349 F1: TMenuItem;
350 PreviewTimer: TTimer;
351 MonazillaWebPageAction: TAction;
352 MonazillaWebPageAction1: TMenuItem;
353 GikoHelpAction: TAction;
354 N36: TMenuItem;
355 H4: TMenuItem;
356 KotehanAction: TAction;
357 K3: TMenuItem;
358 LinkBarVisibleAction: TAction;
359 L7: TMenuItem;
360 N37: TMenuItem;
361 A9: TMenuItem;
362 ChevronPopupMenu: TPopupMenu;
363 BBS2chWebPageAction: TAction;
364 N2N1: TMenuItem;
365 N38: TMenuItem;
366 GikoFolderOpenAction: TAction;
367 F2: TMenuItem;
368 LinkToolBar: TToolBar;
369 a10: TMenuItem;
370 ThreadEditorAction: TAction;
371 N39: TMenuItem;
372 T6: TMenuItem;
373 N40: TMenuItem;
374 LinkBarPopupMenu: TPopupMenu;
375 ToolBarSettingAction: TAction;
376 T7: TMenuItem;
377 ThreadPopupMenu: TPopupMenu;
378 MenuItem4: TMenuItem;
379 MenuItem5: TMenuItem;
380 MenuItem6: TMenuItem;
381 T8: TMenuItem;
382 NameCopyAction: TAction;
383 BoardIEAction: TAction;
384 URLN3: TMenuItem;
385 SelectItemNameCopyAction: TAction;
386 SelectItemNameCopyAction1: TMenuItem;
387 B6: TMenuItem;
388 T9: TMenuItem;
389 C2: TMenuItem;
390 SelectComboBox: TComboBox;
391 MainCoolBarPopupMenu: TPopupMenu;
392 StdToolBarVisiblePMenu: TMenuItem;
393 AddressToolBarVisiblePMenu: TMenuItem;
394 LinkToolBarVisiblePMenu: TMenuItem;
395 NG1: TMenuItem;
396 NG2: TMenuItem;
397 N43: TMenuItem;
398 N44: TMenuItem;
399 L9: TMenuItem;
400 I3: TMenuItem;
401 N45: TMenuItem;
402 B9: TMenuItem;
403 R5: TMenuItem;
404 T12: TMenuItem;
405 Show3: TMenuItem;
406 N46: TMenuItem;
407 T13: TMenuItem;
408 B10: TMenuItem;
409 N47: TMenuItem;
410 A12: TMenuItem;
411 U4: TMenuItem;
412 F4: TMenuItem;
413 N48: TMenuItem;
414 T14: TMenuItem;
415 SelectResAction: TAction;
416 ToolButton16: TToolButton;
417 AllResAction: TAction;
418 N50: TMenuItem;
419 A11: TMenuItem;
420 S5: TMenuItem;
421 Reload: TMenuItem;
422 GoBack: TMenuItem;
423 GoFoward: TMenuItem;
424 EditNGAction: TAction;
425 ReloadAction: TAction;
426 GoFowardAction: TAction;
427 GoBackAction: TAction;
428 IndividualAbon1: TMenuItem;
429 N41: TMenuItem;
430 IndividualAbon2: TMenuItem;
431 N42: TMenuItem;
432 CancellIndividualAbon: TAction;
433 AntiIndividualAbon: TMenuItem;
434 N49: TMenuItem;
435 N51: TMenuItem;
436 N52: TMenuItem;
437 SearchBoardName: TMenuItem;
438 TreeSelectLogDeleteSeparator: TMenuItem;
439 TreeSelectSearchBoardName: TAction;
440 CabinetFavoriteAction: TAction;
441 N54: TMenuItem;
442 A13: TMenuItem;
443 FavoriteTreePopupMenu: TPopupMenu;
444 FavoriteTreeViewRenameAction: TAction;
445 FavoriteTreeRenamePopupMenu: TMenuItem;
446 FavoriteTreeViewNewFolderAction: TAction;
447 FavoriteTreeNewFolderPopupMenu: TMenuItem;
448 N56: TMenuItem;
449 FavoriteTreeViewDeleteAction: TAction;
450 FavoriteTreeDeletePopupMenu: TMenuItem;
451 FavoriteToolBar: TToolBar;
452 ToolButton17: TToolButton;
453 ToolButton19: TToolButton;
454 FavoriteTreeViewBrowseFolderAction: TAction;
455 FavoriteTreeBrowseFolderPopupMenu: TMenuItem;
456 N57: TMenuItem;
457 FavoriteTreeReloadPopupMenu: TMenuItem;
458 N58: TMenuItem;
459 FavoriteTreeURLCopyPopupMenu: TMenuItem;
460 FavoriteTreeNameCopyPopupMenu: TMenuItem;
461 FavoriteTreeLogDeletePopupMenu: TMenuItem;
462 N59: TMenuItem;
463 FavoriteTreeNameURLCopyPopupMenu: TMenuItem;
464 FavoriteTreeViewReloadAction: TAction;
465 FavoriteTreeViewURLCopyAction: TAction;
466 FavoriteTreeViewNameCopyAction: TAction;
467 FavoriteTreeViewNameURLCopyAction: TAction;
468 FavoriteTreeViewLogDeleteAction: TAction;
469 ResRangeAction: TAction;
470 ToolButton20: TToolButton;
471 N60: TMenuItem;
472 ExportFavoriteFileAction1: TMenuItem;
473 ExportFavoriteFile: TFileSaveAs;
474 N6: TMenuItem;
475 N17: TMenuItem;
476 FavoriteTreeViewBrowseBoardAction: TAction;
477 FavoriteTreeViewBrowseThreadAction: TAction;
478 UpBoardAction: TAction;
479 N18: TMenuItem;
480 N20: TMenuItem;
481 N24: TMenuItem;
482 N62: TMenuItem;
483 N61: TMenuItem;
484 N63: TMenuItem;
485 KoreCopy: TAction;
486 N64: TMenuItem;
487 dummy1: TMenuItem;
488 TreeSelectLogDeletePopupMenu: TMenuItem;
489 N65: TMenuItem;
490 BBSSelectPopupMenu: TPopupMenu;
491 PlugInMenu: TMenuItem;
492 TreeSelectNameCopy: TAction;
493 TreeSelectNamePupupMenu: TMenuItem;
494 BrowserPanel: TPanel;
495 SetFocusForBrowserAction: TAction;
496 SetFocusForThreadListAction: TAction;
497 SetFocusForCabinetAction: TAction;
498 FileRun1: TFileRun;
499 ThreadlistMaxAndFocusAction: TAction;
500 BrowserMaxAndFocusAction: TAction;
501 SelectTimer: TTimer;
502 SelectThreadSave: TMenuItem;
503 SelectItemSaveForHTML: TAction;
504 FileSaveAs1: TFileSaveAs;
505 N55: TMenuItem;
506 N66: TMenuItem;
507 dat1: TMenuItem;
508 SelectItemSaveForDat: TAction;
509 LogFolderOpenAction: TAction;
510 OpenLogFolder: TMenuItem;
511 Browser: TWebBrowser;
512 TabSave: TMenuItem;
513 TabOpen: TMenuItem;
514 TabsSaveAction: TAction;
515 TabsOpenAction: TAction;
516 ResRangePopupMenu: TPopupMenu;
517 N1001: TMenuItem;
518 N501: TMenuItem;
519 N22: TMenuItem;
520 OnlyAHundredResAction: TAction;
521 OnlyNewResAction: TAction;
522 OnlyKokoResAction: TAction;
523 A14: TMenuItem;
524 BrowsBoradHeadAction: TAction;
525 BrowsBoradHeadAction1: TMenuItem;
526 ThreadRangeAction: TAction;
527 ThreadRangePopupMenu: TPopupMenu;
528 A15: TMenuItem;
529 L8: TMenuItem;
530 N67: TMenuItem;
531 N68: TMenuItem;
532 S6: TMenuItem;
533 N69: TMenuItem;
534 S7: TMenuItem;
535 TabAutoSaveAction: TAction;
536 TabAutoLoadAction: TAction;
537 ListColumnPopupMenu: TPopupMenu;
538 JumpToNumOfResAction: TAction;
539 FavoriteTreeViewCollapseAction: TAction;
540 RightTabCloseAction: TAction;
541 LeftTabCloseAction: TAction;
542 N70: TMenuItem;
543 SameIDResAnchorAction: TAction;
544 ID1: TMenuItem;
545 IndividualAbon1Action: TAction;
546 IndividualAbon0Action: TAction;
547 AntiIndividualAbonAction: TAction;
548 AntiIndividualAbonDlgAction: TAction;
549 IndividualAbonID1Action: TAction;
550 ID2: TMenuItem;
551 N53: TMenuItem;
552 ID3: TMenuItem;
553 IndividualAbonID0Action: TAction;
554 N71: TMenuItem;
555 MuteAction: TAction;
556 N72: TMenuItem;
557 N73: TMenuItem;
558 SortActiveColumnAction: TAction;
559 SortNextColumnAction: TAction;
560 SortPrevColumnAction: TAction;
561 BeLogInOutAction: TAction;
562 UnSelectedListViewAction: TAction;
563 SelectComboBoxPanel: TPanel;
564 SelectComboBoxSplitter: TImage;
565 ToolButton1: TToolButton;
566 N74: TMenuItem;
567 WikiFAQ: TMenuItem;
568 WikiFAQWebPageAction: TAction;
569 procedure FormCreate(Sender: TObject);
570 procedure FormDestroy(Sender: TObject);
571 procedure BrowserStatusTextChange(Sender: TObject;
572 const Text: WideString);
573 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
574 procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
575 var AllowChange: Boolean);
576 procedure ListViewKeyDown(Sender: TObject; var Key: Word;
577 Shift: TShiftState);
578 procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
579 procedure MenuToolBarCustomDrawButton(Sender: TToolBar;
580 Button: TToolButton; State: TCustomDrawState;
581 var DefaultDraw: Boolean);
582 procedure BrowserBeforeNavigate2(Sender: TObject;
583 const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
584 Headers: OleVariant; var Cancel: WordBool);
585 procedure TreeViewCustomDraw(Sender: TCustomTreeView;
586 const ARect: TRect; var DefaultDraw: Boolean);
587 procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
588 Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
589 procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
590 procedure TreeViewDblClick(Sender: TObject);
591 procedure ListViewCustomDraw(Sender: TCustomListView;
592 const ARect: TRect; var DefaultDraw: Boolean);
593 procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
594 Shift: TShiftState; X, Y: Integer);
595 procedure TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
596 procedure MessageListViewResize(Sender: TObject);
597 procedure ExitActionExecute(Sender: TObject);
598 procedure AllSelectActionExecute(Sender: TObject);
599 procedure StdToolBarVisibleActionExecute(Sender: TObject);
600 procedure MsgBarVisibleActionExecute(Sender: TObject);
601 procedure StatusBarVisibleActionExecute(Sender: TObject);
602 procedure LargeIconActionExecute(Sender: TObject);
603 procedure SmallIconActionExecute(Sender: TObject);
604 procedure ListIconActionExecute(Sender: TObject);
605 procedure DetailIconActionExecute(Sender: TObject);
606 procedure SearchActionExecute(Sender: TObject);
607 procedure OptionActionExecute(Sender: TObject);
608 procedure GikoNaviWebPageActionExecute(Sender: TObject);
609 procedure AboutActionExecute(Sender: TObject);
610 procedure CabinetHistoryActionExecute(Sender: TObject);
611 procedure CabinetVisible( isVisible : Boolean );
612 procedure CabinetVisibleActionExecute(Sender: TObject);
613 procedure AllItemActionExecute(Sender: TObject);
614 procedure LogItemActionExecute(Sender: TObject);
615 procedure NewItemActionExecute(Sender: TObject);
616 procedure SelectItemActionExecute(Sender: TObject);
617 procedure ListNumberVisibleActionExecute(Sender: TObject);
618 procedure UpFolderActionExecute(Sender: TObject);
619 procedure IconStyleExecute(Sender: TObject);
620 procedure RoundActionExecute(Sender: TObject);
621 procedure StopActionExecute(Sender: TObject);
622 procedure MsgBarCloseActionExecute(Sender: TObject);
623 procedure BrowserMaxActionExecute(Sender: TObject);
624 procedure ScrollTopActionExecute(Sender: TObject);
625 procedure ScrollLastActionExecute(Sender: TObject);
626 procedure ScrollNewActionExecute(Sender: TObject);
627 procedure ScrollKokoActionExecute(Sender: TObject);
628 procedure EditorActionExecute(Sender: TObject);
629 procedure IEActionExecute(Sender: TObject);
630 procedure ShowThreadActionExecute(Sender: TObject);
631 procedure ShowBoardActionExecute(Sender: TObject);
632 procedure URLCopyActionExecute(Sender: TObject);
633 procedure ItemReloadActionExecute(Sender: TObject);
634 procedure SelectListReloadActionExecute(Sender: TObject);
635 procedure SelectThreadReloadActionExecute(Sender: TObject);
636 procedure SelectListReloadActionUpdate(Sender: TObject);
637 procedure UpFolderActionUpdate(Sender: TObject);
638 procedure FormResize(Sender: TObject);
639 procedure ScrollKokoActionUpdate(Sender: TObject);
640 procedure SelectThreadReloadActionUpdate(Sender: TObject);
641 procedure LogDeleteActionExecute(Sender: TObject);
642 procedure KokomadeActionExecute(Sender: TObject);
643 procedure ZenbuActionExecute(Sender: TObject);
644 procedure KokoResActionExecute(Sender: TObject);
645 procedure ListPopupMenuPopup(Sender: TObject);
646 procedure SelectItemURLCopyActionExecute(Sender: TObject);
647 procedure AllSelectActionUpdate(Sender: TObject);
648 procedure BrowserTabCloseActionExecute(Sender: TObject);
649 procedure NotSelectTabCloseActionExecute(Sender: TObject);
650 procedure TreeSelectBoradReloadExecute(Sender: TObject);
651 procedure TreeSelectThreadReloadExecute(Sender: TObject);
652 procedure TreeSelectURLCopyExecute(Sender: TObject);
653 procedure TreePopupMenuPopup(Sender: TObject);
654 procedure ListToolBarVisibleActionExecute(Sender: TObject);
655 procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
656 procedure BrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
657 var Cancel: WordBool);
658 procedure ListSplitterMoved(Sender: TObject);
659 procedure BrowserTabChange(Sender: TObject);
660 procedure BrowserTabMouseDown(Sender: TObject; Button: TMouseButton;
661 Shift: TShiftState; X, Y: Integer);
662 procedure BrowserTabDragOver(Sender, Source: TObject; X, Y: Integer;
663 State: TDragState; var Accept: Boolean);
664 procedure BrowserTabDragDrop(Sender, Source: TObject; X, Y: Integer);
665 procedure BrowserTabMouseMove(Sender: TObject; Shift: TShiftState; X,
666 Y: Integer);
667 procedure BrowserDocumentComplete(Sender: TObject;
668 const pDisp: IDispatch; var URL: OleVariant);
669 procedure SelectReservActionUpdate(Sender: TObject);
670 procedure RoundNamePopupMenuPopup(Sender: TObject);
671 procedure SelectNewRoundNameExecute(Sender: TObject);
672 procedure SelectDeleteRoundExecute(Sender: TObject);
673 procedure SelectReservActionExecute(Sender: TObject);
674 procedure NewBoardActionExecute(Sender: TObject);
675 procedure LoginActionExecute(Sender: TObject);
676 procedure KeySettingActionExecute(Sender: TObject);
677 procedure AllTabCloseActionExecute(Sender: TObject);
678 procedure ArrangeActionExecute(Sender: TObject);
679 procedure NameURLCopyActionExecute(Sender: TObject);
680 procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
681 procedure AllTabCloseActionUpdate(Sender: TObject);
682 procedure ActiveLogDeleteActionExecute(Sender: TObject);
683 procedure ListNameBarVisibleActionExecute(Sender: TObject);
684 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
685 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
686 procedure PaneInitActionExecute(Sender: TObject);
687 procedure FormShow(Sender: TObject);
688 procedure BrowserTabToolBarResize(Sender: TObject);
689 procedure BrowserMinActionExecute(Sender: TObject);
690 procedure SelectTextClearActionExecute(Sender: TObject);
691 procedure NameTextClearActionExecute(Sender: TObject);
692 procedure MailTextClearActionExecute(Sender: TObject);
693 procedure LeftmostTabSelectActionExecute(Sender: TObject);
694 procedure LeftTabSelectActionExecute(Sender: TObject);
695 procedure RightTabSelectActionExecute(Sender: TObject);
696 procedure RightmostTabSelectActionExecute(Sender: TObject);
697 procedure LeftTabSelectActionUpdate(Sender: TObject);
698 procedure RightTabSelectActionUpdate(Sender: TObject);
699 procedure FavoriteMenuClick(Sender: TObject);
700 procedure FavoriteAddActionExecute(Sender: TObject);
701 procedure BoardFavoriteAddActionExecute(Sender: TObject);
702 procedure BoardFavoriteAddActionUpdate(Sender: TObject);
703 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
704 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
705 procedure FavoriteArrangeActionExecute(Sender: TObject);
706 procedure MainCoolBarResize(Sender: TObject);
707 procedure MoveToActionExecute(Sender: TObject);
708 procedure AddressToolBarResize(Sender: TObject);
709 procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
710 Shift: TShiftState);
711 procedure AddressBarVisibleActionExecute(Sender: TObject);
712 procedure BrowserEnter(Sender: TObject);
713 procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
714 procedure BrowserTabVisibleActionExecute(Sender: TObject);
715 procedure BrowserTabTopActionExecute(Sender: TObject);
716 procedure BrowserTabBottomActionExecute(Sender: TObject);
717 procedure BrowserTabTabStyleActionExecute(Sender: TObject);
718 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
719 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
720 procedure PreviewTimerTimer(Sender: TObject);
721 procedure MessageHideButtonClick(Sender: TObject);
722 procedure MonazillaWebPageActionExecute(Sender: TObject);
723 procedure GikoHelpActionExecute(Sender: TObject);
724 procedure ToolButton18Click(Sender: TObject);
725 procedure KotehanActionExecute(Sender: TObject);
726 procedure LinkBarVisibleActionExecute(Sender: TObject);
727 procedure BBS2chWebPageActionExecute(Sender: TObject);
728 procedure GikoFolderOpenActionExecute(Sender: TObject);
729 procedure MainCoolBarBandInfo(Sender: TObject;
730 var BandInfo: PReBarBandInfoA);
731 procedure MainCoolBarChevronClick(Sender: TObject;
732 RebarChevron: PNMRebarChevron);
733 procedure ListCoolBarBandInfo(Sender: TObject;
734 var BandInfo: PReBarBandInfoA);
735 procedure ListCoolBarChevronClick(Sender: TObject;
736 RebarChevron: PNMRebarChevron);
737 procedure BrowserCoolBarBandInfo(Sender: TObject;
738 var BandInfo: PReBarBandInfoA);
739 procedure BrowserCoolBarChevronClick(Sender: TObject;
740 RebarChevron: PNMRebarChevron);
741 procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
742 procedure ThreadEditorActionExecute(Sender: TObject);
743 procedure ToolBarSettingActionExecute(Sender: TObject);
744 procedure NameCopyActionExecute(Sender: TObject);
745 procedure BoardIEActionExecute(Sender: TObject);
746 procedure SelectItemNameCopyActionExecute(Sender: TObject);
747 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
748 procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
749 WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
750 procedure SelectComboBoxChange(Sender: TObject);
751 procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
752 Shift: TShiftState);
753 procedure SelectComboBoxExit(Sender: TObject);
754 procedure SelectResActionExecute(Sender: TObject);
755 procedure AllResActionExecute(Sender: TObject);
756 procedure ReloadClick(Sender: TObject);
757 procedure GoBackClick(Sender: TObject);
758 procedure GoFowardClick(Sender: TObject);
759 procedure SelectComboBoxSplitterMouseMove(Sender: TObject;
760 Shift: TShiftState; X, Y: Integer);
761 procedure SelectComboBoxSplitterMouseDown(Sender: TObject;
762 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
763 procedure SelectComboBoxSplitterMouseUp(Sender: TObject;
764 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
765 procedure StatusBarResize(Sender: TObject);
766 procedure SelectComboBoxEnter(Sender: TObject);
767 procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
768 procedure CabinetFavoriteActionExecute(Sender: TObject);
769 procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
770 Y: Integer);
771 procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
772 procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
773 var S: String);
774 procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
775 Shift: TShiftState);
776 procedure FavoriteTreePopupMenuPopup(Sender: TObject);
777 procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
778 procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
779 procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
780 procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
781 procedure FavoriteTreeViewDblClick(Sender: TObject);
782 procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
783 procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
784 procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
785 procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
786 procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
787 procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
788 procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
789 Shift: TShiftState; X, Y: Integer);
790 procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
791 State: TDragState; var Accept: Boolean);
792 procedure ResRangeActionExecute(Sender: TObject);
793 procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
794 Y: Integer);
795 procedure ListCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
796 var Handled: Boolean);
797 procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
798 var Handled: Boolean);
799 procedure BrowserCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
800 var Handled: Boolean);
801 procedure ExportFavoriteFileAccept(Sender: TObject);
802 procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
803 procedure CabinetBBSActionExecute(Sender: TObject);
804 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
805 procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
806 procedure UpBoardActionExecute(Sender: TObject);
807 procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
808 var Handled: Boolean);
809 procedure KoreCopyExecute(Sender: TObject);
810 procedure BrowserTabPopupMenuPopup(Sender: TObject);
811 procedure BrowserTabResize(Sender: TObject);
812 procedure TreeViewClick(Sender: TObject);
813 procedure TreeViewKeyDown(Sender: TObject; var Key: Word;
814 Shift: TShiftState);
815 procedure FavoriteTreeViewMouseDown(Sender: TObject;
816 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
817 procedure MessagePanelResize(Sender: TObject);
818 procedure OnResized;
819 procedure TreeSelectNameCopyExecute(Sender: TObject);
820 procedure FavoriteTreeViewMouseUp(Sender: TObject;
821 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
822 procedure SetFocusForBrowserActionExecute(Sender: TObject);
823 procedure SetFocusForBrowserActionUpdate(Sender: TObject);
824 procedure SetFocusForThreadListActionExecute(Sender: TObject);
825 procedure SetFocusForCabinetActionExecute(Sender: TObject);
826 procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
827 procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
828 procedure SetFocusForCabinetActionUpdate(Sender: TObject);
829 procedure SelectTimerTimer(Sender: TObject);
830 procedure SelectItemSaveForHTMLExecute(Sender: TObject);
831 procedure KidokuActionExecute(Sender: TObject);
832 procedure MidokuActionExecute(Sender: TObject);
833 procedure SelectItemSaveForDatExecute(Sender: TObject);
834 procedure LogFolderOpenActionExecute(Sender: TObject);
835 procedure TabsSaveActionExecute(Sender: TObject);
836 procedure TabsOpenActionExecute(Sender: TObject);
837 procedure OnlyAHundredResActionExecute(Sender: TObject);
838 procedure OnlyKokoResActionExecute(Sender: TObject);
839 procedure OnlyNewResActionExecute(Sender: TObject);
840 procedure BrowsBoradHeadActionExecute(Sender: TObject);
841 procedure EditNGActionExecute(Sender: TObject);
842 procedure ThreadRangeActionExecute(Sender: TObject);
843 procedure TabAutoSaveActionExecute(Sender: TObject);
844 procedure TabAutoLoadActionExecute(Sender: TObject);
845 procedure ListViewColumnRightClick(Sender: TObject;
846 Column: TListColumn; Point: TPoint);
847 procedure JumpToNumOfResActionExecute(Sender: TObject);
848 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
849 procedure ListViewCustomDrawItem(Sender: TCustomListView;
850 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
851 procedure FormActivate(Sender: TObject);
852 procedure BrowserPanelResize(Sender: TObject);
853 procedure MenuToolBarResize(Sender: TObject);
854 procedure ListToolBarResize(Sender: TObject);
855 procedure BrowserToolBarResize(Sender: TObject);
856 procedure RightTabCloseActionExecute(Sender: TObject);
857 procedure RightTabCloseActionUpdate(Sender: TObject);
858 procedure LeftTabCloseActionExecute(Sender: TObject);
859 procedure SameIDResAnchorActionExecute(Sender: TObject);
860 procedure IndividualAbon1ActionExecute(Sender: TObject);
861 procedure IndividualAbon0ActionExecute(Sender: TObject);
862 procedure AntiIndividualAbonActionExecute(Sender: TObject);
863 procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
864 procedure IndividualAbonID1ActionExecute(Sender: TObject);
865 procedure IndividualAbonID0ActionExecute(Sender: TObject);
866 procedure KokoPopupMenuPopup(Sender: TObject);
867 procedure MuteActionExecute(Sender: TObject);
868 procedure SortActiveColumnActionExecute(Sender: TObject);
869 procedure SortNextColumnActionExecute(Sender: TObject);
870 procedure SortPrevColumnActionExecute(Sender: TObject);
871 procedure BeLogInOutActionExecute(Sender: TObject);
872 procedure BeLogInOutActionUpdate(Sender: TObject);
873 procedure UnSelectedListViewActionExecute(Sender: TObject);
874 procedure ListViewKeyUp(Sender: TObject; var Key: Word;
875 Shift: TShiftState);
876 procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
877 var AllowEdit: Boolean);
878 procedure WikiFAQWebPageActionExecute(Sender: TObject);
879 private
880 { Private ?ス?ス?ス?ス }
881 FSortIndex: Integer;
882 FSortOrder: Boolean;
883 FEnabledCloseButton: Boolean;
884 FClickNode: TTreeNode;
885 FHttpState: Boolean;
886 FHint: TResPopup;
887 FPreviewBrowser: TWebBrowser;
888 FPreviewURL: string;
889 FBrowserSizeHeight: Integer;
890 FBrowserSizeWidth: Integer;
891 FTabHintIndex: Integer;
892 FListStyle: TViewStyle; //?ス?ス?スX?スg?スA?スC?スR?ス?ス?スX?ス^?スC?ス?ス
893 FItemNoVisible: Boolean; //?ス?ス?スX?スg?ス?ス?ス?ス?ス\?ス?ス?スt?ス?ス?スO
894 FViewType: TGikoViewType; //?ス?ス?スX?スg?スA?スC?スe?ス?ス?ス\?ス?ス?ス^?スC?スv
895 FActiveList: TObject;
896 FActiveContent: TBrowserRecord; //
897 FActiveBBS : TBBS;
898 FHistoryList: TList; //?スq?スX?スg?ス?ス?ス?ス?スX?スg
899 FTreeType: TGikoTreeType;
900 FWorkCount: Integer;
901 FNameCookie: string;
902 FMailCookie: string;
903 FDownloadTitle: string; //?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス^?スC?スg?ス?ス?ス?ス
904 FDownloadMax: Integer; //?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?スT?スC?スY
905 FEvent: THTMLDocumentEventSink;//?スu?ス?ス?スE?スU?スh?スL?ス?ス?ス?ス?ス?ス?スg?スC?スx?ス?ス?スg
906 IsDraggingSelectComboBox : Boolean;
907 DraggingSelectComboBoxPosition : TPoint;
908 FSearchDialog: TSearchDialog;
909 FDropSpaceNode: TTreeNode;
910 FDragTime : Cardinal; ///< ?ス?ス?ス?ス?スN?ス?スD&D?スp
911 FDragButton : TToolButton; ///< ?ス?ス?ス?ス?スN?ス?スD&D?スp?ス?スDrag?ス?ス?ス?ス?ス?スButton?ス?ス?ス?ス
912 FDragWFirst : Boolean; ///< WebTab?ス?スD&D?スp
913 FListViewBackGroundColor : TColor; ///< ListView?ス?スBackGroundColor
914 FUseOddResOddColor : Boolean; ///< ?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スF?ス?ス?ス\?ス?ス
915 FOddColor : TColor; ///< ?ス?ス?ス?ス?スF
916 FSelectResWord : string; ///< ?ス?ス?スX?スi?ス?ス?ス?ス?ス[?スh
917 FIsIgnoreResize : TResizeType; ///< ?ス?ス?スT?スC?スY?スC?スx?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
918 FIsMinimize : TMinimizeType; ///< ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
919 FOldFormWidth : Integer; ///< ?ス?ス?スO?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス
920 FToolBarSettingSender : TToolBarSettingSenderType; ///< ?スc?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?スN?ス[?ス?ス?スo?ス[
921 FMouseDownPos : TPoint; ///< ?スu?ス?ス?スE?スU?ス^?スu?ス?ス?ス}?スE?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スW
922 FBrowsers: TList;
923 FResRangeMenuSelect : Longint; ///< ResRangeButton ?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス (?スt?スH?ス[?ス}?スb?スg?ス?ス ResRange ?ス?ス?ス?ス)
924 FStartUp : Boolean;
925 FIsHandledWheel : Boolean; ///< ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス WM_MOUSEWHEEL ?ス?ス?ス?ス?ス?ス?ス?ス
926 DiffComp: Boolean; //Add by Genyakun ?スX?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スTrue?ス?ス?ス?ス?ス?ス
927 FOrigenCaption: String; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スc?ス?ス?ス[?ス?ス?スA?スC?スe?ス?ス?ス?ス?スW?ス?ス?ス?ス?ス?ス?スW?スO?ス?ス?ス?ス?ス?ス?ス?ス
928 procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
929 procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
930 procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
931 procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
932 procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
933 procedure ListClick;
934 procedure ListDoubleClick(Shift: TShiftState);
935 procedure SelectListItem(List: TList);
936 function Hook(var Message: TMessage): Boolean;
937 procedure AddRoundNameMenu(MenuItem: TMenuItem);
938 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
939 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
940 procedure SetSelectRoundName(Sender: TObject);
941 function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
942 procedure SetMenuFont;
943 procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
944 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
945 procedure FavoriteClick(Sender: TObject); overload;
946 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
947 function OnDocumentContextMenu(Sender: TObject): WordBool;
948 procedure ShowTextPopup;
949 function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
950 procedure MenuBarChevronMenu;
951 procedure LinkBarChevronMenu;
952 procedure ToolBarChevronMenu(ToolBar: TToolBar);
953 procedure ModifySelectList;
954 procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
955 procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
956 procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
957 procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
958 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
959 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
960 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
961 procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
962 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
963 //
964 procedure SetListViewBackGroundColor(value: TColor);
965 procedure BBSMenuItemOnClick( Sender : TObject );
966 //
967 procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
968 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
969 procedure SaveCoolBarSettings;
970 procedure SaveMainCoolBarSettings;
971 procedure SaveBoardCoolBarSettings;
972 procedure SaveBrowserCoolBarSettings;
973 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
974 procedure LoadCoolBarSettings;
975 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
976 procedure OnMinimize;
977 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
978 procedure OnMinimized;
979 /// TreeView ?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
980 procedure TreeClick( Node : TTreeNode );
981 /// TreeView ?ス?ス?ス_?スu?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
982 procedure TreeDoubleClick( Node : TTreeNode );
983 /// ?スM?スR?スi?スr?ス?ス?ス?ス?スb?スZ?ス[?スW?ス?ス?ス[?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
984 procedure HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
985 /// ?スu?ス?ス?スE?スU?ス?ス?スL?ス[?ス_?スE?ス?ス?スC?スx?ス?ス?スg
986 /// ?スC?スx?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス True ?ス?ス?ス?ス?ス?ス
987 // function BrowserKeydown(var Msg: TMsg; Key: Word; State:TShiftState) : Boolean;
988 /// ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
989 procedure SetBBSMenu;
990 function WebBrowserClick(Sender: TObject): WordBool;
991 /// ?ス^?スu?ス?ス?ス?ス
992 function GetTabURLs(AStringList: TStringList) : Boolean;
993 /// ?ス^?スu?ス?ス?ス?ス
994 function SaveTabURLs : Boolean;
995 /// ?ス^?スu?ス?ス?ス?ス?スo?ス?ス
996 function LoadTabURLs : Boolean;
997 /// ?スo?ス?ス?スh?ス?ス?ス?ス?ス?ス?スv?スZ?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
998 procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
999 /// ListColumnPopupMenu ?スA?スC?スe?ス?ス?ス?ス?スN?ス?ス?スb?スN?スC?スx?ス?ス?スg
1000 procedure ListColumnPopupMenuOnClick( Sender : TObject );
1001 // BrowserRecord?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFBrowser?ス?ス?スO?ス?ス
1002 procedure ReleaseBrowser( BRecord: TBrowserRecord);
1003 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?スn
1004 procedure OnGestureStart(Sender: TObject);
1005 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?ス?ス
1006 procedure OnGestureMove(Sender: TObject);
1007 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スI?ス?ス
1008 procedure OnGestureEnd(Sender: TObject);
1009 //! ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1010 procedure SetSelectWord( const text : string );
1011 protected
1012 procedure CreateParams(var Params: TCreateParams); override;
1013 procedure WndProc(var Message: TMessage); override;
1014 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
1015 procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
1016 procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
1017
1018 public
1019 { Public ?ス?ス?ス?ス }
1020 LastRoundTime: TDateTime;
1021 BrowserNullTab: TBrowserRecord;
1022 FControlThread: TThreadControl;
1023 procedure MoveToURL(const inURL: string);
1024 function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord;
1025 procedure ReloadBBS;
1026 function GetHttpState: Boolean;
1027 procedure SetEnabledCloseButton(Enabled: Boolean);
1028 function GetTreeNode(Data: TObject): TTreeNode;
1029 procedure AppFormDeactivate(Sender: TObject);
1030 procedure ListViewAllSelect;
1031 property ListStyle: TViewStyle read FListStyle write FListStyle;
1032 property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
1033 property ViewType: TGikoViewType read FViewType write FViewType;
1034 property NameCookie: string read FNameCookie write FNameCookie;
1035 property MailCookie: string read FMailCookie write FMailCookie;
1036 property ClickNode: TTreeNode read FClickNode write FClickNode;
1037 property TreeType: TGikoTreeType read FTreeType;
1038 property ActiveContent: TBrowserRecord read FActiveContent write FActiveContent;
1039 property ResRangeMenuSelect: Longint read FResRangeMenuSelect write FResRangeMenuSelect;
1040 property SelectResWord : string read FSelectResWord write FSelectResWord;
1041 property BrowserSizeWidth: Integer read FBrowserSizeWidth write FBrowserSizeWidth;
1042 property BrowserSizeHeight: Integer read FBrowserSizeHeight write FBrowserSizeHeight;
1043 procedure SetContent(inThread: TBrowserRecord);
1044 function GetActiveContent: TThreadItem;
1045 function GetActiveList: TObject;
1046
1047 procedure SetListViewType(AViewType: TGikoViewType); overload;
1048 procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
1049 procedure PlaySound(SoundEventName: string);
1050 function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
1051 procedure ClearHistory;
1052 procedure SaveHistory;
1053 procedure LoadHistory;
1054 procedure ShowBBSTree( inBBS : TBBS );
1055 procedure ShowBBSTreeOld( inBBS : TBBS );
1056 procedure ShowHistoryTree;
1057 procedure SetHistoryTreeNode;
1058 procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
1059 procedure SetBrowserTabState;
1060 procedure SetToolBarPopup;
1061 procedure ShowFavoriteAddDialog( Item : TObject );
1062 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
1063 procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
1064 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
1065 property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
1066 property OddColor : TColor read FOddColor write FOddColor;
1067 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
1068 procedure OnPlugInMenuItem( Sender : TObject );
1069 procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
1070 /// ListView ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スu?ス?ス?ス?ス?ス?ス KuroutSetting?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1071 procedure ActiveListColumnSave;
1072 procedure SetActiveList(Obj: TObject);
1073 property ActiveList: TObject read GetActiveList write SetActiveList;
1074 /// CoolBar ?ス?ス?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス
1075 procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
1076 //?ス?ス?ス?スID?ス?ス?ス?ス?ス?ス?ス`?ス?ス
1077 procedure IndividualAbonID(Atype : Integer);
1078 //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス`?ス?ス
1079 procedure IndividualAbon(Atag, Atype : Integer);
1080 //ID?スA?ス?ス?スJ?ス[?ス?ス?ス?ス
1081 procedure IDAnchorPopup(Abody :string);
1082 //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス`?ス?ス true:?スS?ス?ス?ス?ス?ス^?スu false:?スA?スN?スe?スB?スu?ス?ス?ス^?スu?ス?ス?ス?ス
1083 procedure RepaintAllTabsBrowser();
1084 //?ス?ス?ス?ス?スN?スo?ス[?ス?ス?ス?ス
1085 procedure SetLinkBar;
1086 procedure FavoriteBrowseFolder( node: TTreeNode );
1087 //?スX?ス?ス?スb?スh?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
1088 procedure DownloadContent(ThreadItem: TThreadItem; ForceDownload: Boolean = False);
1089 //?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
1090 procedure DownloadList(Board: TBoard; ForceDownload: Boolean = False);
1091 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1092 procedure DeleteHistory( threadItem: TThreadItem );
1093 //?ス^?スu?ス?ス?ス?ス?ス?ス
1094 procedure DeleteTab(ThreadItem: TThreadItem); overload;
1095 procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
1096 //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スX?スN?ス?ス?ス[?ス?ス
1097 procedure BrowserMovement(const AName: string); overload;
1098 //?スw?ス?ス?ス?ス?ス?ス?スu?ス?ス?スE?スU?ス?ス?スX?スN?ス?ス?ス[?ス?ス
1099 procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;
1100 //Application?ス?スMainForm?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1101 function GetMainForm(): TComponent;
1102 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
1103 published
1104 property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1105 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1106 procedure DependActiveCntentActionUpdate(Sender: TObject);
1107 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1108 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
1109 //TAction?ス?スActiveList?ス?スTBoard?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1110 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
1111 //?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1112 procedure AppException(Sender: TObject; E: Exception);
1113 end;
1114
1115 TFavoriteMenuItem = class(TMenuItem)
1116 private
1117 FData : Pointer;
1118 public
1119 property Data: Pointer read FData write FData;
1120 end;
1121
1122 TBBSMenuItem = class(TMenuItem)
1123 private
1124 FData : Pointer;
1125 public
1126 property Data: Pointer read FData write FData;
1127 end;
1128
1129 TLinkToolButton = class(TToolButton)
1130 private
1131 FData : Pointer;
1132 public
1133 property Data: Pointer read FData write FData;
1134 end;
1135
1136 TBrowserRecord = class( TObject )
1137 private
1138 FBrowser : TWebBrowser;
1139 FEvent: THTMLDocumentEventSink; ///< ?スu?ス?ス?スE?スU?スh?スL?ス?ス?ス?ス?ス?ス?スg?スC?スx?ス?ス?スg
1140 FThread : TThreadItem;
1141 FLastSize : Integer;
1142 FRepaint : Boolean;
1143 FMovement : string; ///< ?スX?スN?ス?ス?ス[?ス?ス?ス?ス?スA?ス?ス?スJ?ス[
1144 public
1145 destructor Destroy; override;
1146 property Browser : TWebBrowser read FBrowser write FBrowser;
1147 property Thread : TThreadItem read FThread write FThread;
1148 property LastSize : Integer read FLastSize write FLastSize;
1149 property Repaint : Boolean read FRepaint write FRepaint;
1150 property Movement : string read FMovement write FMovement;
1151 end;
1152
1153 var
1154 GikoForm: TGikoForm;
1155
1156 implementation
1157
1158 uses
1159 About, Option, Round, Splash, Sort, ListSelect, Imm,
1160 NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter,
1161 HTMLCreate, ListViewUtils, GikoDataModule;
1162
1163 const
1164 CAPTION_NAME: string = '?スM?スR?スi?スr';
1165 BLANK_HTML: string = 'about:blank';
1166 SELECTCOMBOBOX_NAME: string = ''; // '?スX?ス?ス?スb?スh?スi?ス?ス?ス?ス?ス?ス';
1167 SELECTCOMBOBOX_COLOR: TColor = clWindow;
1168 //D&D?ス?ス?スl
1169 DandD_THRESHOLD = 5; //D&D?ス?ス?ス?ス?スl?スipixcel)
1170 //?スc?ス?ス?ス[?スE?ス?ス?スX?スg?スA?スC?スR?ス?ス
1171 //ITEM_ICON_CATEGORY1 = 2; //?スJ?スe?スS?ス?ス?スA?スC?スR?ス?ス
1172 //ITEM_ICON_CATEGORY2 = 3; //?スJ?スe?スS?ス?ス?スA?スC?スR?ス?ス
1173 //ITEM_ICON_BOARD_NOSUBJECT = 3; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1174 //ITEM_ICON_BOARD1 = 4; //?ス?ス?スA?スC?スR?ス?ス
1175 //ITEM_ICON_BOARD2 = 5; //?ス?ス?スA?スC?スR?ス?ス
1176 ITEM_ICON_THREADLOG1 = 6; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1177 ITEM_ICON_THREADLOG2 = 7; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1178 //ITEM_ICON_THREAD1 = 8; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1179 //ITEM_ICON_THREAD2 = 9; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1180 //ITEM_ICON_THREADNEW1 = 10; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?スV?ス?ス?スj
1181 //ITEM_ICON_THREADNEW2 = 11; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?スV?ス?ス?スj
1182 ITEM_ICON_SORT1 = 12; //?ス\?ス[?スg?スA?スC?スR?ス?ス
1183 ITEM_ICON_SORT2 = 13; //?ス\?ス[?スg?スA?スC?スR?ス?ス
1184 //ITEM_ICON_BOARD_LOG = 17; //?スX?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1185 //ITEM_ICON_BOARD_NEW = 18; //?スX?ス?ス?スV?ス?ス?ス?ス?スA?スC?スR?ス?ス
1186
1187 //?スc?ス[?ス?ス?スo?ス[?スA?スC?スR?ス?ス
1188 TOOL_ICON_HEIGHT_MAX = 16; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1189 TOOL_ICON_HEIGHT_MIN = 17; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1190 TOOL_ICON_HEIGHT_NORMAL = 18; //?ス?ス?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
1191 TOOL_ICON_WIDTH_MAX = 19; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1192 TOOL_ICON_WIDTH_MIN = 20; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1193 TOOL_ICON_WIDTH_NORMAL = 21; //?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
1194
1195 TOOL_ICON_FAV_FOLDER = 30; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スt?スH?ス?ス?ス_?スA?スC?スR?ス?ス
1196 TOOL_ICON_FAV_BOARD = 31; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1197 TOOL_ICON_FAV_THREAD = 32; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スX?ス?ス?スA?スC?スR?ス?ス
1198
1199 HTML_FILE_NAME = 'temp_preview.html';
1200
1201 WM_XBUTTONDOWN = $020B;
1202 WM_XBUTTONUP = $020C;
1203 WM_XBUTTONDBLCLK = $020D;
1204 XBUTTON1 = $0001;
1205 XBUTTON2 = $0002;
1206 USER_TREECLICK = WM_USER + 2000;
1207 USER_RESIZED = WM_USER + 2001;
1208 USER_MINIMIZED = WM_USER + 2002;
1209 USER_SETLINKBAR = WM_USER + 2003;
1210 USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser
1211 SELECTTIME_INTERBAL = 110;
1212
1213 BROWSER_COUNT = 5; //?スu?ス?ス?スE?スU?ス?ス?ス?ス
1214
1215 URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
1216 URL_MONAZILLA: string = 'http://www.monazilla.org/';
1217 URL_2ch: string = 'http://www.2ch.net/';
1218 URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
1219
1220 {$R *.DFM}
1221
1222 procedure TGikoForm.CreateParams(var Params: TCreateParams);
1223 begin
1224 inherited;
1225 if FormStyle in [fsNormal, fsStayOnTop] then begin
1226 if BorderStyle in [bsSingle, bsSizeable] then begin
1227 Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
1228 Params.WndParent := 0;
1229 end;
1230 end;
1231 end;
1232
1233 procedure TGikoForm.FormCreate(Sender: TObject);
1234 const
1235 TVS_NOTOOLTIPS = $0080;
1236 var
1237 FileName: string;
1238 Style: DWORD;
1239 msg: string;
1240 i: Integer;
1241 wp: TWindowPlacement;
1242 s: string;
1243 newbrowser: TWebBrowser;
1244 ToolButton: TToolButton;
1245 begin
1246 {$IFDEF DEBUG}
1247 AllocConsole;
1248 Writeln('============================================================');
1249 Writeln(' ?スM?スR?スi?スr?スf?スo?スb?スO ?スR?ス?ス?ス\?ス[?ス?ス');
1250 Writeln('');
1251 Writeln(' ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB');
1252 Writeln(' ?スI?ス?ス?ス?ス?ス?ス?スA?スM?スR?スi?スr?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス');
1253 Writeln('============================================================');
1254 {$ENDIF}
1255 FTreeType := gttNone;
1256 // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1257 FStartUp := true;
1258 // LockWindowUpdate(Self.Handle);
1259 Application.OnDeactivate := AppFormDeactivate;
1260 //Self.OnDeactivate := AppFormDeactivate;
1261 Application.HookMainWindow(Hook);
1262 Application.OnException := AppException; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス
1263 // Application.OnMessage := HandleAppMessage; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス@by?ス@?ス?ス?ス?ス?ス?ス
1264 FIsIgnoreResize := rtResizing;
1265
1266 FSearchDialog := nil;
1267 BrowserNullTab := TBrowserRecord.Create;
1268 BrowserNullTab.Browser := Browser;
1269 BrowserNullTab.Browser.Navigate(BLANK_HTML);
1270 FBrowsers := TList.Create;
1271 for i := 0 to BROWSER_COUNT -1 do begin
1272 FBrowsers.Add(TWebBrowser.Create(BrowserPanel));
1273 newBrowser := FBrowsers[FBrowsers.Count - 1];
1274 TOleControl(newBrowser).Parent := BrowserPanel;
1275 TOleControl(newBrowser).Align := alNone;
1276 TOleControl(newBrowser).Left := 0;
1277 TOleControl(newBrowser).Top := 0;
1278 newBrowser.OnDocumentComplete := BrowserDocumentComplete;
1279 newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2;
1280 newBrowser.OnEnter := BrowserEnter;
1281 newBrowser.OnNewWindow2 := BrowserNewWindow2;
1282 newBrowser.OnStatusTextChange := BrowserStatusTextChange;
1283 newBrowser.Navigate(BLANK_HTML);
1284 ShowWindow(newBrowser.Handle, SW_HIDE);
1285 end;
1286 BrowserNullTab.Browser.BringToFront;
1287 ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
1288
1289 //?ス?ス?スj?ス?ス?ス[?スt?スH?ス?ス?スg
1290 SetMenuFont;
1291
1292 //?ス?ス?ス?ス?スJ?ス[?ス\?ス?ス
1293 Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
1294
1295 //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1296 //AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1297 AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1298
1299 EnabledCloseButton := True;
1300
1301 //?ス?ス?スX?スg?スX?ス^?スC?ス?ス
1302 ListView.ViewStyle := GikoSys.Setting.ListStyle;
1303
1304 //?スA?スj?ス?ス?スp?スl?ス?ス?ス?ス?スu
1305 AnimePanel.Top := 0;
1306 AnimePanel.Left := 0;
1307
1308 //?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1309
1310 //?スL?ス?ス?スr?スl?スb?スg
1311 CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
1312
1313 //?ス?ス?スb?スZ?ス[?スW?スo?ス[
1314 MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
1315 MsgBarVisibleActionExecute(nil);
1316 MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
1317
1318 //?スX?スe?ス[?ス^?スX?スo?ス[
1319 StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
1320 StatusBarVisibleActionExecute(nil);
1321
1322 //?スt?スH?ス?ス?スg?スE?スF?ス?ス?ス?ス
1323 TreeView.Items.BeginUpdate;
1324 FavoriteTreeView.Items.BeginUpdate;
1325 ListView.Items.BeginUpdate;
1326 try
1327 TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1328 TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1329 TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1330 TreeView.Color := GikoSys.Setting.CabinetBackColor;
1331 FavoriteTreeView.Font.Assign(TreeView.Font);
1332 FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1333
1334 ListView.Font.Name := GikoSys.Setting.ListFontName;
1335 ListView.Font.Size := GikoSys.Setting.ListFontSize;
1336 ListView.Font.Color := GikoSys.Setting.ListFontColor;
1337 ListView.Font.Style := [];
1338 if GikoSys.Setting.ListFontBold then
1339 ListView.Font.Style := [fsbold];
1340 if GikoSys.Setting.ListFontItalic then
1341 ListView.Font.Style := ListView.Font.Style + [fsitalic];
1342
1343 ListViewBackGroundColor := clWhite; // ?スf?スt?スH?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1344 ListViewBackGroundColor := GikoSys.Setting.ListBackColor; // ?ス?ス?ス[?スU?ス?ス?ス`?ス?ス?ス?ス?スX
1345 FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
1346 FOddColor := GikoSys.Setting.OddColor;
1347
1348 finally
1349 TreeView.Items.EndUpdate;
1350 FavoriteTreeView.Items.EndUpdate;
1351 ListView.Items.EndUpdate;
1352 end;
1353 //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
1354 ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
1355
1356 //?スu?ス?ス?スE?スU?ス^?スu?スt?スH?ス?ス?スg
1357 BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1358 BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1359 BrowserTab.Font.Style := [];
1360 if GikoSys.Setting.BrowserTabFontBold then
1361 BrowserTab.Font.Style := [fsBold];
1362 if GikoSys.Setting.BrowserTabFontItalic then
1363 BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
1364 FDragWFirst := false;
1365 SetContent(BrowserNullTab); //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス?ス?ス\?ス?ス
1366
1367 //?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス?ス?ス
1368 ProgressBar.Parent := StatusBar;
1369 ProgressBar.Top := 2;
1370 ProgressBar.Left := 0;
1371 ProgressBar.Width := StatusBar.Panels[0].Width;
1372 ProgressBar.Height := StatusBar.Height - 2;
1373 ProgressBar.Position := 0;
1374
1375 // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1376 InitializeBoardPlugIns;
1377
1378 // ?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス(ReadFavorite ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1379 GikoSys.ListBoardFile;
1380
1381 // ?スX?スv?ス?ス?スb?スV?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス
1382 SplashWindow.ProgressBar.Max := Length(BBSs) * 20;
1383
1384 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1385 for i := Length(BBSs) - 1 downto 0 do begin
1386 if not BBSs[i].IsBoardFileRead then
1387 GikoSys.ReadBoardFile(BBSs[i]);
1388
1389 if SplashWindow <> nil then begin
1390 SplashWindow.ProgressBar.StepBy(20);
1391 SplashWindow.Update;
1392 end;
1393 end;
1394 //?ス?ス?ス?ス?スf?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス
1395 RoundList := TRoundList.Create;
1396 RoundList.LoadRoundBoardFile;
1397 RoundList.LoadRoundThreadFile;
1398
1399 //TreeView?ス?ス?ス?ス?ス?ス?スL?ス?スToolTip?ス?ス?ス?ス?ス\?ス?ス
1400 Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1401 Style := Style or TVS_NOTOOLTIPS;
1402 SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1403
1404 // ?スc?ス?ス?ス[?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1405 TreeView.Align := alClient;
1406 FavoriteTreeView.Align := alClient;
1407 FavoriteTreeView.Visible := False;
1408
1409 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
1410 SetBBSMenu;
1411
1412 //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1413 wp.length := sizeof(wp);
1414 wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1415 wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1416 wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1417 wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1418 wp.showCmd := SW_HIDE;
1419 SetWindowPlacement(Handle, @wp);
1420 //Self.Update;
1421
1422 if GikoSys.Setting.WindowMax then
1423 WindowState := wsMaximized;
1424
1425 //?スM?スR?スA?スj?ス?ス
1426 try
1427 FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1428 if FileExists(FileName) then
1429 Animate.FileName := FileName;
1430 except
1431 end;
1432
1433 //?スN?スb?スL?ス[
1434 FNameCookie := '';
1435 FMailCookie := '';
1436
1437 //?スX?ス?ス?スS?ス?ス?ス\?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1438 AllItemAction.Checked := True;
1439 AllResAction.Checked := True;
1440
1441 //?スu?ス?ス?スE?スU?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
1442 FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1443 FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1444
1445
1446 // ?スq?スX?スg?ス?ス?ス?ス?スX?スg(LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1447 FHistoryList := TList.Create;
1448
1449 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1450 LoadHistory;
1451
1452 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1453 FavoriteDM.SetFavTreeView(FavoriteTreeView);
1454 FavoriteDM.ReadFavorite;
1455
1456 ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1457 ArrangeAction.Execute;
1458
1459 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1460 case GikoSys.Setting.ListWidthState of
1461 glsMax: begin
1462 ViewPanel.Width := 1;
1463 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1464 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1465 end;
1466 glsMin: begin
1467 ViewPanel.Width := GikoSys.Setting.ListWidth;
1468 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1469 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1470 end;
1471 else begin
1472 ViewPanel.Width := GikoSys.Setting.ListWidth;
1473 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1474 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1475 end;
1476 end;
1477 end else begin
1478 case GikoSys.Setting.ListHeightState of
1479 glsMax: begin
1480 ViewPanel.Height := 1;
1481 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1482 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1483 end;
1484 glsMin: begin
1485 ViewPanel.Height := GikoSys.Setting.ListHeight;
1486 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1487 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1488 end;
1489 else begin
1490 ViewPanel.Height := GikoSys.Setting.ListHeight;
1491 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1492 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1493 end;
1494 end;
1495 end;
1496
1497 //?ス_?スE?ス?ス?ス?ス?ス[?スh?スI?スu?スW?スF?スN?スg
1498 FControlThread := TThreadControl.Create(True);
1499 FControlThread.MaxThreadCount := 1;
1500 FControlThread.Resume;
1501 FControlThread.OnDownloadEnd := DownloadEnd;
1502 FControlThread.OnDownloadMsg := DownloadMsg;
1503 FControlThread.OnWork := Work;
1504 FControlThread.OnWorkBegin := WorkBegin;
1505 FControlThread.OnWorkEnd := WorkEnd;
1506 // ProgressPanel.Width := FControlThread.MaxThreadCount * 12;
1507
1508 // ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1509 SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1510
1511 //?スu?ス?ス?スE?スU?ス^?スu?ス?ス?ス?ス
1512 SetBrowserTabState;
1513
1514 BrowserBoardNameLabel.Caption := '';
1515 BrowserNameLabel.Caption := '';
1516 FWorkCount := 0;
1517
1518 FTabHintIndex := -1;
1519
1520 //?スc?ス[?ス?ス?スo?ス[Wrapable
1521 ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1522 BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1523
1524 MakeDefaultINIFile();
1525 //?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1526 ReadToolBarSetting(ActionList, StdToolBar);
1527 ReadToolBarSetting(ActionList, ListToolBar);
1528 ReadToolBarSetting(ActionList, BrowserToolBar);
1529 SetToolBarPopup;
1530
1531 //ListToolBar?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?スComboBox?ス?ス?スz?スu
1532 SelectComboBoxPanel.Visible := False;
1533 try
1534 for i := ListToolBar.ControlCount - 1 downto 0 do
1535 begin
1536 if ListToolBar.Controls[ i ].Action = SelectItemAction then
1537 begin
1538 SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
1539 SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
1540 SelectComboBoxPanel.Parent := ListToolBar;
1541 SelectComboBoxPanel.Visible := True;
1542
1543 SelectComboBox.Left := 0;
1544 SelectComboBox.Top := 0;
1545 SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
1546 SelectComboBox.Width := SelectComboBoxPanel.Width -
1547 SelectComboBoxSplitter.Width;
1548
1549 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1550 ToolButton := TToolButton.Create(ListToolBar);
1551 ToolButton.Name := 'SelectComboBoxDummy';
1552 ToolButton.Style := tbsSeparator;
1553 ToolButton.Width := 0;
1554 ToolButton.Left := ListToolBar.Controls[ i ].Left;
1555 ListToolBar.InsertControl(ToolButton);
1556 ToolButton.Visible := False;
1557
1558 // ?スX?ス?ス?スb?スh?スi?ス?ス?ス?ス?ス?ス?ス?ス?スZ?スp?ス?ス?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス
1559 if (i + 1) < ListToolBar.ControlCount then
1560 if ListToolBar.Controls[ i + 1 ] is TToolButton then
1561 if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1562 ListToolBar.Controls[ i + 1 ].Visible := False;
1563
1564
1565 // ?スX?ス?ス?スb?スh?スi?ス?ス?ス{?ス^?ス?ス?ス?ス?スB?ス?ス
1566 ListToolBar.Controls[ i ].Visible := False;
1567
1568 break;
1569 end;
1570 end;
1571 except
1572 end;
1573
1574
1575 //?スA?スh?ス?ス?スX?スo?ス[
1576 AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1577
1578 //?ス?ス?ス?ス?スN?スo?ス[
1579 SetLinkBar;
1580
1581 // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
1582 FResRangeMenuSelect := GikoSys.ResRange;
1583 case GikoSys.ResRange of
1584 Ord( grrAll ):
1585 begin
1586 AllResAction.Execute;
1587 end;
1588 Ord( grrSelect ):
1589 begin
1590 SelectComboBox.Text := SelectComboBox.Items[ 1 ];
1591 SelectResAction.Checked := True;
1592 end;
1593 else
1594 // ResRangeAction.Execute;
1595 case FResRangeMenuSelect of
1596 Ord( grrKoko ): OnlyKokoResAction.Checked := True;
1597 Ord( grrNew ): OnlyNewResAction.Checked := True;
1598 100: OnlyAHundredResAction.Checked := True;
1599 end;
1600 end;
1601
1602 // ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1603 // ThreadRangeAction.Execute;
1604 case GikoSys.Setting.ThreadRange of
1605 gtrAll:
1606 begin
1607 AllItemAction.Checked := True;
1608 ViewType := gvtAll;
1609 end;
1610 gtrLog:
1611 begin
1612 LogItemAction.Checked := True;
1613 ViewType := gvtLog;
1614 end;
1615 gtrNew:
1616 begin
1617 NewItemAction.Checked := True;
1618 ViewType := gvtNew;
1619 end;
1620 end;
1621
1622
1623 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1624
1625 //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス\?ス?ス
1626 if not FileExists(GikoSys.GetBoardFileName) then begin
1627 msg := '?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス?ス?スM?スR?スi?スr?ス?ス?ス?ス?ス?ス?ス?ス?スg?スp?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス' + #13#10#13#10
1628 + '?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スQ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス' + #13#10
1629 + '?ス?ス?ス?ス?スo?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スX?スV?スv?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB';
1630 MsgBox(SplashWindow.Handle, msg, '?スM?スR?スi?スr', MB_OK or MB_ICONINFORMATION);
1631 NewBoardAction.Execute;
1632 end;
1633
1634 //?スL?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1635 GikoSys.LoadKeySetting(ActionList);
1636
1637 //?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
1638 // FLastRoundTime := 0;
1639
1640 //ResHint
1641 FHint := TResPopup.Create(Self);
1642
1643 ListView.OnData := TListViewUtils.ListViewData;
1644
1645 // ?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?ス?ス?ス?ス?ス?ス
1646 CabinetVisible( False );
1647 if GikoSys.Setting.CabinetVisible then begin
1648 i := CabinetSelectPopupMenu.Items.Count - 1;
1649 if GikoSys.Setting.CabinetIndex = i - 1 then
1650 CabinetHistoryAction.Execute
1651 else if GikoSys.Setting.CabinetIndex = i then
1652 CabinetFavoriteAction.Execute
1653 else begin
1654 if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1655 ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1656 // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス 2
1657 FIsIgnoreResize := rtResizing;
1658 CabinetBBSAction.Execute;
1659 end;
1660 end else begin
1661 ShowBBSTreeOld( BBSs[ 0 ] );
1662 PostMessage( Handle, USER_TREECLICK, 0, 0 );
1663 end;
1664
1665
1666 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?スJ?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?スj
1667 for i := 1 to ParamCount do begin
1668 MoveToURL(ParamStr(i));
1669 end;
1670
1671 s := GikoSys.FAbon.NGwordname;
1672 StatusBar.Panels[2].Text := s;
1673 StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
1674 StatusBarResize(Sender);
1675
1676 dummy1.Caption := ItemReservPMenu.Caption;
1677 dummy1.Hint := ItemReservPMenu.Hint;
1678
1679 //Samba24?ス?ス?スt?ス@?スC?ス?ス?ス`?スF?スb?スN
1680 GikoSys.SambaFileExists();
1681
1682 {$IFDEF SPAM_FILTER_ENABLED}
1683 // ?スX?スp?ス?ス?スt?スB?ス?ス?ス^?スw?スK?ス?ス?ス?ス
1684 GikoSys.Bayesian.LoadFromFile( GikoSys.Setting.GetSpamFilterFileName );
1685 {$ENDIF}
1686
1687 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[
1688 MouseGesture := TMouseGesture.Create;
1689 GikoSys.Setting.Gestures.LoadGesture(
1690 GikoSys.Setting.GetGestureFileName, ActionList );
1691 MouseGesture.Margin := GikoSys.Setting.Gestures.Margin;
1692 MouseGesture.OnGestureStart := OnGestureStart;
1693 MouseGesture.OnGestureMove := OnGestureMove;
1694 MouseGesture.OnGestureEnd := OnGestureEnd;
1695 if GikoSys.Setting.GestureEnabled then
1696 MouseGesture.SetHook( Handle );
1697
1698 //2ch?ス?ス?ス?ス?ス?ス?ス?ス?スo?ス?ス
1699 GikoSys.Setting.SetMessages;
1700
1701 //?スI?ス[?スg?ス?ス?スO?スC?ス?ス
1702 if GikoSys.Setting.AutoLogin then
1703 LoginAction.Execute;
1704
1705 MuteAction.Checked := GikoSys.Setting.Mute;
1706
1707 GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
1708 // LockWindowUpdate(0);
1709 end;
1710
1711 // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1712 procedure TGikoForm.SaveCoolBarSettings;
1713 begin
1714
1715 if IsIconic( Handle ) or (FIsIgnoreResize <> rtNone) then
1716 Exit;
1717 SaveMainCoolBarSettings;
1718 SaveBoardCoolBarSettings;
1719 SaveBrowserCoolBarSettings;
1720
1721 end;
1722 procedure TGikoForm.SaveMainCoolBarSettings;
1723 var
1724 i : Integer;
1725 CoolSet : TCoolSet;
1726 begin
1727 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1728 for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1729 CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1730 CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1731 CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1732 GikoSys.Setting.MainCoolSet[i] := CoolSet;
1733 end;
1734 end;
1735 procedure TGikoForm.SaveBoardCoolBarSettings;
1736 var
1737 i : Integer;
1738 CoolSet : TCoolSet;
1739 begin
1740 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1741 for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1742 CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1743 CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1744 CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1745 GikoSys.Setting.ListCoolSet[i] := CoolSet;
1746 end;
1747 end;
1748 procedure TGikoForm.SaveBrowserCoolBarSettings;
1749 var
1750 i : Integer;
1751 CoolSet : TCoolSet;
1752 begin
1753 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1754 for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1755 CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1756 CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1757 CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1758 GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1759 end;
1760 end;
1761 // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1762 procedure TGikoForm.LoadCoolBarSettings;
1763 var
1764 i : Integer;
1765 CoolSet : TCoolSet;
1766 begin
1767
1768 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1769 MainCoolBar.Bands.BeginUpdate;
1770 try
1771 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1772 for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1773 CoolSet := GikoSys.Setting.MainCoolSet[i];
1774 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1775 FIsIgnoreResize := rtNone;
1776 SaveCoolBarSettings;
1777 Exit;
1778 end;
1779 MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1780 MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1781 MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1782 end;
1783 finally
1784 MainCoolBar.Bands.EndUpdate;
1785 end;
1786
1787 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1788 ListCoolBar.Bands.BeginUpdate;
1789 try
1790 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1791 for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1792 CoolSet := GikoSys.Setting.ListCoolSet[i];
1793 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1794 FIsIgnoreResize := rtNone;
1795 SaveCoolBarSettings;
1796 Exit;
1797 end;
1798 ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1799 ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1800 ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1801 end;
1802 finally
1803 ListCoolBar.Bands.EndUpdate;
1804 end;
1805
1806 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1807 BrowserCoolBar.Bands.BeginUpdate;
1808 try
1809 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1810 for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1811 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1812 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1813 FIsIgnoreResize := rtNone;
1814 SaveCoolBarSettings;
1815 Exit;
1816 end;
1817 BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1818 BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1819 BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1820 end;
1821 finally
1822 BrowserCoolBar.Bands.EndUpdate;
1823 end;
1824
1825 end;
1826 //
1827 procedure TGikoForm.FormShow(Sender: TObject);
1828 begin
1829 if FStartUp then begin
1830 ShowWindow(Application.Handle, SW_HIDE);
1831
1832 //FormCreate?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スf?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1833 //?スc?ス[?ス?ス?スo?ス[?ス\?ス?ス
1834 StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1835 StdToolBarVisibleActionExecute( nil );
1836 AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1837 AddressBarVisibleActionExecute( nil );
1838 LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1839 LinkBarVisibleActionExecute( nil );
1840 ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1841 ListToolBarVisibleActionExecute( nil );
1842 ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1843 ListNameBarVisibleActionExecute( nil );
1844 BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1845 BrowserToolBarVisibleActionExecute( nil );
1846 BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1847 BrowserNameBarVisibleActionExecute( nil );
1848
1849 //?スu?ス?ス?スE?スU?ス^?スu
1850 BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1851 BrowserTabVisibleActionExecute(nil);
1852
1853 if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1854 BrowserTabTopAction.Checked := True;
1855 BrowserTabTopActionExecute(nil);
1856 end else begin
1857 BrowserTabBottomAction.Checked := True;
1858 BrowserTabBottomActionExecute(nil);
1859 end;
1860
1861 if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1862 BrowserTabTabStyleAction.Checked := True;
1863 BrowserTabTabStyleActionExecute(nil);
1864 end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1865 BrowserTabButtonStyleAction.Checked := True;
1866 BrowserTabButtonStyleActionExecute(nil);
1867 end else begin
1868 BrowserTabFlatStyleAction.Checked := True;
1869 BrowserTabFlatStyleActionExecute(nil);
1870 end;
1871
1872 // ListView ?ス?ス?スw?スb?ス_?スh?ス?ス?スb?スO
1873 // ListView.FullDrag := True;
1874
1875 // CoolBar ?ス?ス?ス?ス
1876 LoadCoolBarSettings;
1877
1878 //?スd?スv?ス@?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1879 // ResetBandInfo( ListCoolBar, ListToolBar );
1880 FIsIgnoreResize := rtNone;
1881
1882 //TabAutoLoad
1883 //FormCrete?ス?ス?ス?ス?ス?ス?ス?ス?スB
1884 if GikoSys.Setting.TabAutoLoadSave then begin
1885 TabAutoLoadAction.Execute;
1886 end;
1887 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スT?ス|?ス[?スg?ス@?ス\
1888 if GikoSys.Setting.GengoSupport then begin
1889 //?ス\?ス?ス?スn
1890 //Test?ス?ス?ス?ス
1891 end;
1892 FStartUp := false;
1893 end;
1894 end;
1895
1896 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1897 begin
1898 // if GikoForm.WindowState <> wsMinimized then
1899 // SaveCoolBarSettings;
1900 if ( GikoSys.Setting.ShowDialogForEnd ) and
1901 (MessageDlg('?スM?スR?スi?スr?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1902 CanClose := false;
1903 Exit;
1904 end else begin
1905 CanClose := True;
1906 if GikoSys.Setting.TabAutoLoadSave then begin
1907 TabAutoSaveAction.Execute;
1908 end;
1909 end;
1910 { //2ch?ス?ス?ス?ス?ス?ス?ス?スFree
1911 if GikoSys.Setting.Gengo <> nil then begin
1912 GikoSys.Setting.Gengo.Free;
1913 end;
1914 }
1915 Application.UnhookMainWindow(Hook);
1916 Application.Terminate;
1917 end;
1918
1919 procedure TGikoForm.FormDestroy(Sender: TObject);
1920 var
1921 i : Integer;
1922 // CoolSet: TCoolSet;
1923 wp : TWindowPlacement;
1924 tmpBool : Boolean;
1925 begin
1926 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?ス?ス
1927 try
1928 MouseGesture.UnHook;
1929 except
1930 end;
1931 try
1932 ActiveListColumnSave;
1933 except
1934 end;
1935 try
1936 //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1937 wp.length := sizeof(wp);
1938 GetWindowPlacement(Handle, @wp);
1939 GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1940 GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1941 GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1942 GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1943 GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1944
1945 GikoSys.Setting.ListStyle := ListView.ViewStyle;
1946 GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1947 GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1948 GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1949 GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1950 if ArrangeAction.Checked then
1951 GikoSys.Setting.ListOrientation := gloVertical
1952 else
1953 GikoSys.Setting.ListOrientation := gloHorizontal;
1954 GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1955 except
1956 end;
1957
1958 try
1959 // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
1960 if not GikoSys.Setting.ResRangeHold then
1961 GikoSys.Setting.ResRange := FResRangeMenuSelect;
1962 except
1963 end;
1964 if WindowState <> wsNormal then
1965 WindowState := wsNormal;
1966 SaveCoolBarSettings;
1967 try
1968 GikoSys.Setting.WriteWindowSettingFile;
1969 GikoSys.Setting.WriteNameMailSettingFile;
1970 except
1971 end;
1972 // ?ス?ス?スA?ス?ス?ス^?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?スA?スE?スB?ス?ス?スh?スE?スT?スC?スY?ス?ス CoolBar ?ス?ス?ス?ス
1973 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スl?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1974
1975 // ?ス?スFormDestroy?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スB?スi?ス?ス?ス?ス?ス?ス?ス@2004/04/09?スj
1976 // CoolBar ?ス?ス?ス?ス
1977 //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
1978
1979
1980 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1981 try
1982 //FavoriteDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
1983 FavoriteDM.WriteFavorite;
1984 FavoriteDM.Clear;
1985 except
1986 end;
1987 LockWindowUpdate(Self.Handle);
1988 try
1989 //?ス^?スu?スN?ス?ス?ス[?スY
1990 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
1991 GikoSys.Setting.ShowDialogForAllTabClose := false;
1992 AllTabCloseAction.Execute;
1993 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
1994 except
1995 end;
1996 try
1997 for i := FBrowsers.Count - 1 downto 0 do begin
1998 TWebBrowser(FBrowsers[i]).Free;
1999 end;
2000 FBrowsers.Clear;
2001 FBrowsers.Capacity := 0;
2002 finally
2003 FBrowsers.Free;
2004 end;
2005 try
2006 if BrowserNullTab <> nil then begin
2007 BrowserNullTab.Browser := nil; {*BrowserNullTab?ス?スBrowser?ス?ス?ス?ス?スv?ス?ス?ス?ス?ス\?ス?ス?スt?ス?ス?ス?ス?ス?ス?スz
2008 *?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFree?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
2009 *}
2010 BrowserNullTab.Free;
2011 end;
2012 except
2013 end;
2014
2015 try
2016 TreeView.Items.BeginUpdate;
2017 TreeView.Items.GetFirstNode.Free;
2018 TreeView.Items.Clear;
2019 TreeView.Items.EndUpdate;
2020 except
2021 end;
2022
2023 //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
2024 try
2025 //AddressHistoryDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スB
2026 //AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
2027 AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
2028 except
2029 end;
2030
2031 //?スq?スX?スg?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
2032 try
2033 SaveHistory;
2034 except
2035 end;
2036 try
2037 try
2038 ClearHistory;
2039 except
2040 end;
2041 finally
2042 FHistoryList.Free;
2043 end;
2044
2045 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス&?スj?ス?ス
2046 try
2047 RoundList.SaveRoundFile;
2048 except
2049 end;
2050 try
2051 try
2052 RoundList.Clear;
2053 except
2054 end;
2055 finally
2056 RoundList.Free;
2057 end;
2058
2059 try
2060 try
2061 FControlThread.Terminate;
2062 FControlThread.WaitFor;
2063 except
2064 end;
2065 finally
2066 FControlThread.Free;
2067 end;
2068
2069 // TBBS ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス TCategory, TBoard, TThreadItem ?ス?ス?ス?ス?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス
2070 // TBoard, TThreadItem ?ス?ス?スf?スX?スg?ス?ス?スN?ス^?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?スj?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
2071 // BoardPluteIns ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス
2072 for i := Length(BoardGroups) - 1 downto 0 do begin
2073 //BoardGroups[i].Clear;
2074 BoardGroups[i].Free;
2075 end;
2076
2077 try
2078 for i := Length( BBSs ) - 1 downto 0 do begin
2079 if BBSs[ i ] <> nil then
2080 BBSs[ i ].Free;
2081 BBSs[ i ] := nil;
2082 end;
2083 except
2084 end;
2085
2086 try
2087 if FEvent <> nil then
2088 FEvent.Free;
2089
2090 //Hint?スj?ス?ス
2091 if FHint <> nil then begin
2092 FHint.ReleaseHandle;
2093 FHint.Free;
2094 FHint := nil;
2095 end;
2096 //Preview?スj?ス?ス
2097 if TPreviewBrowser <> nil then begin
2098 FPreviewBrowser.Free;
2099 FPreviewBrowser := nil;
2100 end;
2101 except
2102 end;
2103 LockWindowUpdate(0);
2104 end;
2105
2106 // ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
2107 procedure TGikoForm.SetBBSMenu;
2108 var
2109 i : Integer;
2110 item : TBBSMenuItem;
2111 begin
2112
2113 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
2114 for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
2115 try
2116 if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
2117 CabinetSelectPopupMenu.Items[ i ].Free;
2118 CabinetMenu.Items[ i ].Free;
2119 BBSSelectPopupMenu.Items[ i ].Free;
2120 end;
2121 except
2122 end;
2123 end;
2124
2125 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
2126 for i := Length( BBSs ) - 1 downto 0 do begin
2127 try
2128 item := TBBSMenuItem.Create( PopupMenu );
2129 item.Caption := BBSs[ i ].Title;
2130 item.Data := BBSs[ i ];
2131 item.OnClick := BBSMenuItemOnClick;
2132 CabinetSelectPopupMenu.Items.Insert( 0, item );
2133 item := TBBSMenuItem.Create( PopupMenu );
2134 item.Caption := BBSs[ i ].Title;
2135 item.Data := BBSs[ i ];
2136 item.OnClick := BBSMenuItemOnClick;
2137 CabinetMenu.Insert( 0, item );
2138 item := TBBSMenuItem.Create( PopupMenu );
2139 item.Caption := BBSs[ i ].Title;
2140 item.Data := BBSs[ i ];
2141 item.OnClick := BBSMenuItemOnClick;
2142 BBSSelectPopupMenu.Items.Insert( 0, Item );
2143 except
2144 end;
2145 end;
2146
2147 end;
2148
2149 procedure TGikoForm.ReloadBBS;
2150 var
2151 i : Integer;
2152 tmpBool: Boolean;
2153 begin
2154 LockWindowUpdate(Self.Handle);
2155
2156 //?ス^?スu?スN?ス?ス?ス[?スY
2157 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2158 GikoSys.Setting.ShowDialogForAllTabClose := false;
2159 AllTabCloseAction.Execute;
2160 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
2161
2162 SetContent(BrowserNullTab);
2163 //TreeView?スN?ス?ス?スA?スiBBS2ch.Free?ス?ス?ス?ス?ス?ス?スN?ス?ス?スA?ス?ス?ス?ス?ス?スXP?スX?ス^?スC?ス?ス?ス?ス?ス?ス?スG?ス?ス?ス[?スo?ス?ス?スj
2164 TreeView.Items.Clear;
2165
2166 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
2167 try
2168 RoundList.SaveRoundFile;
2169 except
2170 end;
2171 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?スj?ス?ス
2172 try
2173 RoundList.Clear;
2174 except
2175 end;
2176
2177 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
2178 try
2179 SaveHistory;
2180 ClearHistory;
2181 except
2182 end;
2183
2184 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
2185 try
2186 FavoriteDM.WriteFavorite;
2187 FavoriteDM.Clear;
2188 except
2189 end;
2190
2191 //?ス?ス?スE?スX?ス?ス?スEPLUGIN?ス?ス?スj?ス?ス
2192 for i := Length(BoardGroups) - 1 downto 0 do begin
2193 try
2194 BoardGroups[i].Free;
2195 except
2196 end;
2197 end;
2198 //BBS?スj?ス?ス
2199 try
2200 for i := Length( BBSs ) - 1 downto 0 do begin
2201 if BBSs[ i ] <> nil then
2202 BBSs[ i ].Free;
2203 BBSs[ i ] := nil;
2204 end;
2205 except
2206 end;
2207
2208 ActiveList := nil;
2209
2210 FTreeType := gttNone;
2211
2212 //============?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス================================//
2213
2214 // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
2215 InitializeBoardPlugIns;
2216
2217 GikoSys.ListBoardFile; //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス
2218
2219 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2220 for i := Length(BBSs) - 1 downto 0 do begin
2221 if not BBSs[i].IsBoardFileRead then
2222 GikoSys.ReadBoardFile(BBSs[i]);
2223 end;
2224
2225 // BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スX?スV
2226 SetBBSMenu;
2227
2228 ShowBBSTree( BBSs[ 0 ] );
2229
2230 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2231 LoadHistory;
2232
2233 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2234 FavoriteDM.ReadFavorite;
2235
2236 SetLinkBar;
2237
2238 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2239 RoundList.LoadRoundBoardFile;
2240 RoundList.LoadRoundThreadFile;
2241
2242 LockWindowUpdate(0);
2243 //
2244 TabsOpenAction.Execute;
2245 end;
2246
2247
2248 procedure TGikoForm.BrowserStatusTextChange(Sender: TObject; const Text: WideString);
2249 var
2250 p: TPoint;
2251 s: string;
2252 tmp2: string;
2253 URL: string;
2254 ATitle: Boolean;
2255
2256 threadItem : TThreadItem;
2257 board : TBoard;
2258 Protocol, Host, Path, Document, Port, Bookmark: string;
2259
2260 wkInt: Integer;
2261 wkIntSt: Integer;
2262 wkIntTo: Integer;
2263 ActiveFileName: string;
2264 e: IHTMLElement;
2265 Ext: string;
2266 PathRec: TPathRec;
2267 begin
2268 if not( TObject(Sender) is TWebBrowser )then
2269 Exit;
2270 try
2271 try
2272 if (TWebBrowser(Sender) <> nil) and (not TWebBrowser(Sender).Busy) and (Assigned(TWebBrowser(Sender).Document)) then begin
2273 if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then begin
2274 OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis';
2275 end;
2276 end;
2277 except
2278 end;
2279 finally
2280 end;
2281 if PreviewTimer.Enabled then
2282 PreviewTimer.Enabled := False;
2283 Application.CancelHint;
2284 try
2285 if GetActiveContent <> nil then
2286 ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
2287 else
2288 ActiveFileName := '';
2289 except
2290 FActiveContent := nil;
2291 Exit;
2292 end;
2293
2294 StatusBar.Panels[1].Text := Text;
2295
2296 if FHint <> nil then begin
2297 FHint.ReleaseHandle;
2298 FHint.ClearAllRes;
2299 end;
2300 if FPreviewBrowser <> nil then
2301 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2302
2303 if not GikoSys.Setting.UnActivePopup then
2304 if not GikoForm.Active then
2305 Exit;
2306
2307 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
2308 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
2309
2310 s := '';
2311 Ext := AnsiLowerCase(ExtractFileExt(Text));
2312 if (Pos('http://', Text) = 1) and (GikoSys.Setting.PreviewVisible) and
2313 ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
2314 if FPreviewBrowser = nil then begin
2315 FPreviewBrowser := TPreviewBrowser.Create(Self);
2316 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2317 TOleControl(FPreviewBrowser).Parent := nil;
2318 end;
2319 FPreviewBrowser.Navigate(BLANK_HTML);//?スO?ス?ス?ス?ス?スv?ス?ス?スr?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スp
2320 FPreviewURL := Text;
2321 PreviewTimer.Interval := GikoSys.Setting.PreviewWait;
2322 PreviewTimer.Enabled := True;
2323 end else if (Pos('about:blank', Text) = 1) or (Pos('http://', Text) = 1) or (Pos('mailto:', Text) = 1) then begin
2324 if Pos('mailto:', Text) = 1 then begin
2325 s := StringReplace(Text, 'mailto:', '', [rfIgnoreCase]);
2326 //?スM?スR?スi?スr?スX?ス?ス ?スp?ス[?スg3?ス?ス466?ス?ス?ス?ス?ス?ス?ス?ス
2327 GetCursorPos(p);
2328 p.x := p.x - TWebBrowser(Sender).ClientOrigin.x;
2329 p.y := p.y - TWebBrowser(Sender).ClientOrigin.y;
2330 e := IHTMLDocument2(TWebBrowser(Sender).Document).elementFromPoint(p.x, p.y);
2331 if (Assigned(e)) then begin
2332 tmp2 := ZenToHan(e.Get_outerText);
2333 if (GikoSys.IsNumeric(tmp2)) then begin
2334 //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
2335 wkIntSt := StrToInt(tmp2);
2336 wkIntTo := StrToInt(tmp2);
2337 //s := GetThreadText(wkBBS, wkKey, wkIntSt, wkIntTo, False, False);
2338 FHint.PopupType := gptThread;
2339 HTMLCreater.SetResPopupText(FHint, GetActiveContent, wkIntSt, wkIntTo, False, False);
2340 end else begin
2341 FHint.PopupType := gptRaw;
2342 FHint.Caption := s;
2343 end;
2344 end;
2345 end else begin
2346 threadItem := GetActiveContent;
2347 URL := THTMLCreate.GetRespopupURL(Text, threadItem.URL);
2348 PathRec := Gikosys.Parse2chURL2(URL);
2349 if (PathRec.FNoParam) then begin
2350 PathRec.FSt := 1;
2351 PathRec.FTo := 1;
2352 end else begin
2353 Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
2354 end;
2355 GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
2356
2357 if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
2358
2359 URL := GikoSys.GetBrowsableThreadURL( URL );
2360 wkIntSt := PathRec.FSt;
2361 wkIntTo := PathRec.FTo;
2362
2363 if (wkIntSt = 0) and (wkIntTo = 0) then begin
2364 wkIntSt := 1;
2365 wkIntTo := 1;
2366 end else if (wkIntSt = 0) and (wkIntTo > 0) then begin
2367 wkIntSt := wkIntTo;
2368 end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
2369 wkIntTo := wkIntSt;
2370 end else if wkIntSt > wkIntTo then begin
2371 wkInt := wkIntTo;
2372 wkIntTo := wkIntSt;
2373 wkIntSt := wkInt;
2374 end;
2375 if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
2376 ATitle := false
2377 else
2378 ATitle := true;
2379
2380 threadItem := BBSsFindThreadFromURL( URL );
2381
2382 if (threadItem = nil) and GikoSys.Is2chHost( Host ) then begin
2383 board := BBSs[ 0 ].FindBBSID( PathRec.FBBS );
2384 if board <> nil then begin
2385 if not board.IsThreadDatRead then
2386 GikoSys.ReadSubjectFile( board );
2387 threadItem := board.FindThreadFromFileName( PathRec.FKey + '.dat' );
2388 end;
2389 end;
2390
2391 if threadItem <> nil then begin
2392 //HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst);
2393 //URL?ス?ス?ス?ス?ス?ス?ス?ス/?ス?ス?スt?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スp
2394 if ( IntToStr(wkIntSt) = ChangeFileExt(threadItem.FileName, '') ) then begin
2395 wkIntSt := 1;
2396 wkIntTo := 1;
2397 end;
2398 FHint.PopupType := gptThread;
2399 HTMLCreater.SetResPopupText(FHint, threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst );
2400 end;
2401 end;
2402 end;
2403
2404 if FHint.PopupType = gptRaw then begin
2405 if FHint.Caption <> '' then
2406 ShowTextPopup;
2407 end else begin
2408 if (FHint.ResCount <> 0) or (FHint.Title <> '') then
2409 ShowTextPopup;
2410 end;
2411 end;
2412 end;
2413
2414 procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
2415 var
2416 SysMenu: HMenu;
2417 begin
2418 FEnabledCloseButton := Enabled;
2419 SysMenu := GetSystemMenu(Handle, False);
2420
2421 if Enabled then begin
2422 EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED);
2423 end else begin
2424 EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
2425 end;
2426
2427 DrawMenuBar(Handle);
2428 end;
2429
2430 procedure TGikoForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
2431 var AllowChange: Boolean);
2432 begin
2433 //?ス\?ス[?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2434 // if FTreeType = gtt2ch then
2435 // FSortIndex := -1;
2436 end;
2437
2438 procedure TGikoForm.ListViewKeyDown(Sender: TObject; var Key: Word;
2439 Shift: TShiftState);
2440 var
2441 pos : TPoint;
2442 begin
2443 if GetActiveList is TBoard then begin
2444 case Key of
2445 VK_BACK:; // UpFolderButtonClick(Sender);
2446 VK_SPACE: ListDoubleClick(Shift);
2447 VK_RETURN: ListClick;
2448 VK_APPS:
2449 begin
2450 if ListView.Selected <> nil then begin
2451 pos.X := ListView.Column[ 0 ].Width;
2452 pos.Y := ListView.Selected.Top;
2453 end else begin
2454 pos.X := ListView.Left;
2455 pos.Y := ListView.Top;
2456 end;
2457 Windows.ClientToScreen( ListView.Handle, pos );
2458 ListPopupMenu.Popup( pos.X, pos.Y );
2459 end;
2460 end;
2461 end else begin // TBBS, TCategory
2462 case Key of
2463 VK_BACK:; // UpFolderButtonClick(Sender);
2464 VK_SPACE: ListClick;
2465 VK_RETURN: ListDoubleClick(Shift);
2466 VK_APPS:
2467 begin
2468 if ListView.Selected <> nil then begin
2469 pos.X := ListView.Column[ 0 ].Width;
2470 pos.Y := ListView.Selected.Top;
2471 end else begin
2472 pos.X := ListView.Left;
2473 pos.Y := ListView.Top;
2474 end;
2475 Windows.ClientToScreen( ListView.Handle, pos );
2476 ListPopupMenu.Popup( pos.X, pos.Y );
2477 end;
2478 end;
2479 end;
2480 end;
2481
2482 function TGikoForm.GetHttpState: Boolean;
2483 begin
2484 Result := FHttpState;
2485 end;
2486
2487 procedure TGikoForm.ListViewColumnClick(Sender: TObject;
2488 Column: TListColumn);
2489 var
2490 id, idx : Integer;
2491 orderList : TList;
2492 begin
2493 idx := TListViewUtils.ActiveListTrueColumn( Column ).Tag;
2494
2495 if TObject( FActiveList ) is TBBS then
2496 orderList := GikoSys.Setting.BBSColumnOrder
2497 else if TObject( FActiveList ) is TCategory then
2498 orderList := GikoSys.Setting.CategoryColumnOrder
2499 else if TObject( FActiveList ) is TBoard then
2500 orderList := GikoSys.Setting.BoardColumnOrder
2501 else
2502 Exit;
2503
2504 id := Integer( orderList[ idx ] );
2505
2506 if FSortIndex = id then
2507 FSortOrder := not FSortOrder
2508 else begin
2509 FSortOrder := id = 0;
2510 end;
2511
2512 TListViewUtils.ListViewSort(Sender, ListView, Column, ListNumberVisibleAction.Checked, FSortOrder, FSortIndex );
2513 end;
2514
2515 procedure TGikoForm.MenuToolBarCustomDrawButton(Sender: TToolBar;
2516 Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
2517 var
2518 ARect: TRect;
2519 begin
2520 DefaultDraw := True;
2521 Exit;
2522 DefaultDraw := False;
2523 if (cdsSelected in State) or (cdsHot in State) then begin
2524 Sender.Canvas.Brush.Color := clHighlight;
2525 Sender.Canvas.Font.Color := clHighlightText;
2526 end else begin
2527 Sender.Canvas.Brush.Color := clBtnFace;
2528 Sender.Canvas.Font.Color := clBtnText;
2529 end;
2530 ARect := Rect(Button.Left, Button.Top, Button.Left + Button.Width, Button.Top + Button.Height);
2531 Sender.Canvas.FillRect(ARect);
2532 DrawText(Sender.Canvas.Handle, PChar(Button.Caption), -1, ARect, DT_SINGLELINE or DT_VCENTER or DT_CENTER);
2533 end;
2534
2535 function TGikoForm.GetTreeNode(Data: TObject): TTreeNode;
2536 var
2537 Nodes: TTreeNodes;
2538 i: integer;
2539 begin
2540 Nodes := TreeView.Items;
2541
2542 for i := 0 to Nodes.Count - 1 do begin
2543 if Nodes.Item[i].Data = Data then begin
2544 Result := Nodes.Item[i];
2545 Exit;
2546 end;
2547 end;
2548 Result := nil;
2549 end;
2550
2551 procedure TGikoForm.BrowserBeforeNavigate2(Sender: TObject;
2552 const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
2553 Headers: OleVariant; var Cancel: WordBool);
2554 var
2555 sNo: string;
2556 p: TPoint;
2557 const
2558 kMenuName: string = 'menu:';
2559 begin
2560
2561 if Pos(kMenuName, URL) <> 0 then begin
2562 sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
2563
2564 if not GikoSys.IsNumeric(sNo) then Exit;
2565
2566 Cancel := True;
2567 GetCursorpos(p);
2568 KokoPopupMenu.Tag := StrToInt(sNo);
2569 KokoPopupMenu.Popup(p.x, p.y);
2570 end else if Pos('mailto', LowerCase(URL)) <> 0 then begin
2571 Cancel := not GikoSys.Setting.OpenMailer;
2572 end;
2573
2574 end;
2575
2576 procedure TGikoForm.AppFormDeactivate(Sender: TObject);
2577 begin
2578 Application.ProcessMessages;
2579 if not Application.Terminated then begin
2580 if PreviewTimer.Enabled then
2581 PreviewTimer.Enabled := False;
2582 //?スt?スH?ス[?スJ?スX?ス?ス?ス?ス?ス?ス?スA?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スq?ス?ス?スg?ス?ス?ス?ス?ス?ス
2583 if FHint <> nil then begin
2584 FHint.ReleaseHandle;
2585 FHint.ClearAllRes;
2586 end;
2587 //?スv?ス?ス?スr?ス?ス?ス[?ス?ス?スB?ス?ス
2588 if FPreviewBrowser <> nil then
2589 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2590 end;
2591 end;
2592
2593 procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
2594 const ARect: TRect; var DefaultDraw: Boolean);
2595 var
2596 NodeRect: TRect;
2597 i, j: Integer;
2598 IsBoardNode: Boolean;
2599 Cnt: Integer;
2600 CntText: string;
2601 TextWidth: Integer;
2602 TextRect: TRect;
2603 Board: TBoard;
2604 Category: TCategory;
2605 Bitmap: TBitmap;
2606 NodeWidth: Integer;
2607 begin
2608 DefaultDraw := True;
2609
2610 if FTreeType = gttHistory then Exit;
2611
2612 TreeView.Canvas.Font.Color := clBlue;
2613 IsBoardNode := False;
2614 for i := 0 to TreeView.Items.Count - 1 do begin
2615 Cnt := 0;
2616 if not TreeView.Items[i].IsVisible then
2617 continue;
2618
2619 if TObject(TreeView.Items[i].Data) is TCategory then begin
2620 if TreeView.Items[i].Expanded then
2621 continue;
2622
2623 IsBoardNode := False;
2624 Category := TCategory(TreeView.Items[i].Data);
2625 for j := 0 to Category.Count - 1 do begin
2626 Board := Category.Items[j];
2627 if Board <> nil then begin
2628 if Board.UnRead > 0 then begin
2629 Cnt := 1;
2630 Break;
2631 end;
2632 end;
2633 end;
2634 if Cnt <> 1 then
2635 continue;
2636 end else if TObject(TreeView.Items[i].Data) is TBoard then begin
2637 IsBoardNode := True;
2638 Board := TBoard(TreeView.Items[i].Data);
2639
2640 Cnt := Board.UnRead;
2641 if Cnt <= 0 then
2642 continue;
2643 end else
2644 continue;
2645
2646 Bitmap := TBitmap.Create;
2647 try
2648 Bitmap.Canvas.Font.Assign(TreeView.Canvas.Font);
2649 Bitmap.Canvas.Font.Style := [fsBold];
2650 NodeWidth := Bitmap.Canvas.TextWidth(TreeView.Items[i].Text);
2651 finally
2652 Bitmap.Free;
2653 end;
2654
2655 NodeRect := TreeView.Items[i].DisplayRect(True);
2656
2657 if IsBoardNode then
2658 CntText := '(' + IntToStr(Cnt) + ')'
2659 else if Cnt = 1 then
2660 CntText := '(+)';
2661
2662
2663 TextWidth := TreeView.Canvas.TextWidth(CntText);
2664
2665 TextRect := Rect(NodeRect.Left + NodeWidth + 8,
2666 NodeRect.Top,
2667 NodeRect.Left + NodeWidth + TextWidth + 8,
2668 NodeRect.Bottom);
2669 DrawText(TreeView.Canvas.Handle,
2670 PChar(CntText),
2671 -1,
2672 TextRect,
2673 DT_SINGLELINE or DT_VCENTER);
2674 end;
2675 TreeViewCustomDrawItem(nil, nil, [], DefaultDraw);
2676 end;
2677
2678 procedure TGikoForm.TreeViewCustomDrawItem(Sender: TCustomTreeView;
2679 Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
2680 var
2681 Board: TBoard;
2682 Category: TCategory;
2683 i: Integer;
2684 begin
2685 DefaultDraw := True;
2686
2687 if FTreeType = gttHistory then Exit;
2688
2689 TreeView.Canvas.Font.Style := [];
2690 if Node <> nil then begin
2691 if TObject(Node.Data) is TCategory then begin
2692 Category := TCategory(Node.Data);
2693 for i := 0 to Category.Count - 1 do begin
2694 Board := Category.Items[i];
2695 if Board <> nil then begin
2696 if Board.UnRead > 0 then begin
2697 TreeView.Canvas.Font.Style := [fsBold];
2698 Break;
2699 end;
2700 end;
2701 end;
2702 end else if TObject(Node.Data) is TBoard then begin
2703 Board := TBoard(Node.Data);
2704 if Board.UnRead > 0 then
2705 TreeView.Canvas.Font.Style := [fsBold];
2706 end;
2707 end;
2708 end;
2709
2710 procedure TGikoForm.TreeViewExpanded(Sender: TObject; Node: TTreeNode);
2711 begin
2712 TreeView.Invalidate;
2713
2714 if TObject(Node.Data) is TBBS then begin
2715 TBBS(Node.Data).NodeExpand := True;
2716 end else if TObject(Node.Data) is TCategory then begin
2717 TCategory(Node.Data).NodeExpand := True;
2718 end else if TObject(Node.Data) is TBoard then begin
2719 TBoard(Node.Data).NodeExpand := True;
2720 end;
2721 end;
2722
2723 {procedure TGikoForm.CabinetPanelVisible(PanelVisible: Boolean);
2724 begin
2725 TreeSplitter.Visible := PanelVisible;
2726 CabinetPanel.Visible := PanelVisible;
2727 CabinetToolButton.Down := PanelVisible;
2728 end;}
2729
2730 procedure TGikoForm.ListViewAllSelect;
2731 begin
2732 ListView.SetFocus;
2733 ListView.SelectAll;
2734 end;
2735
2736 procedure TGikoForm.TreeViewDblClick(Sender: TObject);
2737 var
2738 APoint: TPoint;
2739 HitTest: THitTests;
2740 begin
2741 GetCursorPos(APoint);
2742 APoint := TreeView.ScreenToClient(APoint);
2743 HitTest := TreeView.GetHitTestInfoAt(APoint.x, APoint.y);
2744 if not (htOnLabel in HitTest) then Exit;
2745
2746 TreeDoubleClick( TreeView.Selected );
2747 end;
2748
2749 procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
2750 begin
2751 AddMessageList(Msg, nil, Icon);
2752 end;
2753
2754 procedure TGikoForm.DownloadEnd(Sender: TObject; Item: TDownloadItem);
2755 var
2756 ATitle: string;
2757 s: string;
2758 boardPlugIn : TBoardPlugIn;
2759 i: Integer;
2760 browserRec : TBrowserRecord;
2761 begin
2762 try
2763 if Item.DownType = gdtBoard then
2764 ATitle := Item.Board.Title
2765 else
2766 ATitle := Item.ThreadItem.Title;
2767 if ATitle = '' then
2768 ATitle := GikoSys.Setting.GetMessage(Ord(gmUnKnown));
2769
2770 if Item.State in [gdsComplete, gdsDiffComplete] then begin
2771 //?ス?ス?ス?ス?スI?ス?ス
2772 if Item.DownType = gdtBoard then begin
2773 //?ス?ス
2774 Item.SaveListFile;
2775 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureItiran)), nil, gmiOK);
2776 if GetActiveList = Item.Board then begin
2777 FActiveList := nil;
2778 SetActiveList(Item.Board);
2779 end;
2780 Item.Board.Modified := True;
2781 Item.Board.IsThreadDatRead := True;
2782 PlaySound('New');
2783 end else if Item.DownType = gdtThread then begin
2784 //?スX?ス?ス
2785 Item.SaveItemFile;
2786 Item.ThreadItem.NewArrival := True;
2787 //if (Item.ThreadItem.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin
2788 if (Item.ThreadItem.ParentBoard.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin
2789 //boardPlugIn := Item.ThreadItem.BoardPlugIn;
2790 boardPlugIn := Item.ThreadItem.ParentBoard.BoardPlugIn;
2791 Item.ThreadItem.Title := DivideStrLine(boardPlugIn.GetDat( DWORD( Item.ThreadItem ), 1 )).FTitle;
2792 ATitle := Item.ThreadItem.Title;
2793 end else if ATitle = '?スi?ス?ス?ス?ス?スs?ス?ス?スj' then begin
2794 ATitle := DivideStrLine(GikoSys.ReadThreadFile(Item.ThreadItem.GetThreadFileName, 1)).FTitle;
2795 end;
2796 for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
2797 if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = Item.ThreadItem then begin
2798 TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
2799 break;
2800 end;
2801 end;
2802 if GikoSys.Setting.BrowserTabVisible then begin
2803 if GetActiveContent = Item.ThreadItem then
2804 browserRec := InsertBrowserTab(Item.ThreadItem)
2805 else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then
2806 browserRec := InsertBrowserTab(Item.ThreadItem, True)
2807 else
2808 browserRec := InsertBrowserTab(Item.ThreadItem, False);
2809 if browserRec.Thread = BrowserNullTab.Thread then begin
2810 browserRec.Movement := BrowserNullTab.Movement;
2811 BrowserNullTab.Movement := '';
2812 end;
2813 end else begin
2814 if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then
2815 InsertBrowserTab(Item.ThreadItem);
2816 end;
2817
2818 Application.ProcessMessages;
2819
2820 if Item.State = gdsComplete then begin
2821 PlaySound('New');
2822 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureSyutoku)), nil, gmiOK);
2823 //Add by Genyakun
2824 DiffComp := True;
2825 end else begin
2826 PlaySound('NewDiff');
2827 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureDiff)), nil, gmiOK);
2828 //Add by Genyakun
2829 DiffComp := True;
2830 end;
2831
2832 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スP?スO?スO?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2833 if (Item.ThreadItem.Round) and (Item.ThreadItem.Count > 1000) then begin
2834 Item.ThreadItem.Round := False;
2835 //Item.ThreadItem.RoundName := '';
2836 AddMessageList('?ス?ス1000?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス - [' + Item.ThreadItem.Title + ']', nil, gmiOK);
2837 end;
2838 TreeView.Refresh;
2839 //ListView?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス
2840 if (ActiveList <> nil) and (ActiveList is TBoard) then begin
2841 TBoard(ActiveList).LogThreadCount := TBoard(ActiveList).GetLogThreadCount;
2842 TBoard(ActiveList).NewThreadCount := TBoard(ActiveList).GetNewThreadCount;
2843 TBoard(ActiveList).UserThreadCount:= TBoard(ActiveList).GetUserThreadCount;
2844 //ListView?ス?ス?スA?スC?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV
2845 case GikoForm.ViewType of
2846 gvtAll: ListView.Items.Count := TBoard(ActiveList).Count;
2847 gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount;
2848 gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount;
2849 gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount;
2850 end;
2851 end;
2852 end;
2853 ListView.Refresh;
2854 end else if Item.State = gdsNotModify then begin
2855 //?ス?ス?スX?スi?スV
2856 { if (Item.DownType = gdtThread) and (AddHistory(Item.ThreadItem)) then begin
2857 //SetContent(Item.ThreadItem);
2858 InsertBrowserTab(Item.ThreadItem);
2859 end;}
2860 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmNotMod)), nil, gmiSAD);
2861 PlaySound('NoChange');
2862 Screen.Cursor := crDefault;
2863 end else if Item.State = gdsAbort then begin
2864 //?ス?ス?スf
2865 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmAbort)), nil, gmiOK);
2866 end else if Item.State = gdsError then begin
2867 //?スG?ス?ス?ス[
2868 s := Item.ErrText;
2869 if s <> '' then
2870 s := ':' + s;
2871 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmError)) + ' (' + IntToStr(Item.ResponseCode) + ')' + s, nil, gmiNG);
2872 // if Item.ResponseCode = 302 then
2873 // AddMessageList('?ス?ス?ス?ス?ス?ス?ス]?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB', nil, gmiNG);
2874 PlaySound('Error');
2875 end;
2876 finally
2877 Item.Free;
2878 Dec(FWorkCount);
2879 if FWorkCount < 0 then FWorkCount := 0;
2880 if FWorkCount = 0 then begin
2881 try
2882 Animate.Active := False;
2883 finally
2884 Screen.Cursor := crDefault;
2885 end;
2886 end;
2887
2888 end;
2889 end;
2890
2891 procedure TGikoForm.WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
2892 begin
2893 // SetProgressValue(Number, 0, AWorkCountMax);
2894 // ProgressBar.Visible := True;
2895 ProgressBar.Position := 0;
2896 ProgressBar.Max := AWorkCountMax;
2897 FDownloadTitle := AWorkTitle;
2898 StatusBar.Panels[1].Text := FDownloadTitle + ' - ?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?スJ?スn?ス?ス?ス?ス?ス?ス';
2899 FDownloadMax := AWorkCountMax;
2900 end;
2901
2902 procedure TGikoForm.WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
2903 begin
2904 ProgressBar.Position := 0;
2905 if FDownloadMax <> 0 then
2906 StatusBar.Panels[1].Text := FDownloadTitle + ' - ?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス';
2907 end;
2908
2909 procedure TGikoForm.Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
2910 begin
2911 ProgressBar.Position := AWorkCount;
2912 // SetProgressValue(Number, AWorkCount);
2913 StatusBar.Panels[1].Text := FDownloadTitle + ' - ?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス (' + IntToStr(AWorkCount) + '/' + IntToStr(FDownloadMax) + ')';