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