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.538 - (show annotations) (download) (as text)
Sat Nov 19 16:37:45 2005 UTC (18 years, 5 months ago) by h677
Branch: MAIN
Changes since 1.537: +8 -5 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 procedure SetMenuFont;
934 procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
935 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
936 procedure FavoriteClick(Sender: TObject); overload;
937 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
938 function OnDocumentContextMenu(Sender: TObject): WordBool;
939 procedure ShowTextPopup;
940 function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
941 procedure MenuBarChevronMenu;
942 procedure LinkBarChevronMenu;
943 procedure ToolBarChevronMenu(ToolBar: TToolBar);
944 procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
945 procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
946 procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
947 procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
948 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
949 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
950 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
951 procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
952 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
953 //
954 procedure SetListViewBackGroundColor(value: TColor);
955 procedure BBSMenuItemOnClick( Sender : TObject );
956 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
957 procedure SaveCoolBarSettings;
958 procedure SaveMainCoolBarSettings;
959 procedure SaveBoardCoolBarSettings;
960 procedure SaveBrowserCoolBarSettings;
961 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
962 procedure LoadCoolBarSettings;
963 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
964 procedure OnMinimize;
965 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
966 procedure OnMinimized;
967 /// TreeView ?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
968 procedure TreeClick( Node : TTreeNode );
969 /// TreeView ?ス?ス?ス_?スu?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
970 procedure TreeDoubleClick( Node : TTreeNode );
971 /// ?スM?スR?スi?スr?ス?ス?ス?ス?スb?スZ?ス[?スW?ス?ス?ス[?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
972 procedure HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
973 /// ?スu?ス?ス?スE?スU?ス?ス?スL?ス[?ス_?スE?ス?ス?スC?スx?ス?ス?スg
974 /// ?スC?スx?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス True ?ス?ス?ス?ス?ス?ス
975 // function BrowserKeydown(var Msg: TMsg; Key: Word; State:TShiftState) : Boolean;
976 /// ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
977 procedure SetBBSMenu;
978 /// ?ス^?スu?ス?ス?ス?ス
979 function GetTabURLs(AStringList: TStringList) : Boolean;
980 /// ListColumnPopupMenu ?スA?スC?スe?ス?ス?ス?ス?スN?ス?ス?スb?スN?スC?スx?ス?ス?スg
981 procedure ListColumnPopupMenuOnClick( Sender : TObject );
982 // BrowserRecord?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFBrowser?ス?ス?スO?ス?ス
983 procedure ReleaseBrowser( BRecord: TBrowserRecord);
984 //! ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
985 procedure SetSelectWord( const text : string );
986 //?ス?ス?ス?ス?ス?ス?スJ?ス[?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
987 function GetScreenCursor(): TCursor;
988 //?スJ?ス[?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
989 procedure SetScreenCursor(Cursor : TCursor);
990 protected
991 procedure CreateParams(var Params: TCreateParams); override;
992 procedure WndProc(var Message: TMessage); override;
993 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
994 procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
995 procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
996
997 public
998 { Public ?ス?ス?ス?ス }
999 LastRoundTime: TDateTime;
1000 BrowserNullTab: TBrowserRecord;
1001 FControlThread: TThreadControl;
1002 procedure MoveToURL(const inURL: string);
1003 function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord;
1004 procedure ReloadBBS;
1005 function GetHttpState: Boolean;
1006 procedure SetEnabledCloseButton(Enabled: Boolean);
1007 function GetTreeNode(Data: TObject): TTreeNode;
1008 procedure AppFormDeactivate(Sender: TObject);
1009 procedure ListViewAllSelect;
1010 property ListStyle: TViewStyle read FListStyle write FListStyle;
1011 property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
1012 property ViewType: TGikoViewType read FViewType write FViewType;
1013 property NameCookie: string read FNameCookie write FNameCookie;
1014 property MailCookie: string read FMailCookie write FMailCookie;
1015 property ClickNode: TTreeNode read FClickNode write FClickNode;
1016 property TreeType: TGikoTreeType read FTreeType write FTreeType;
1017 property ActiveContent: TBrowserRecord read FActiveContent write FActiveContent;
1018 property ResRangeMenuSelect: Longint read FResRangeMenuSelect write FResRangeMenuSelect;
1019 property SelectResWord : string read FSelectResWord write FSelectResWord;
1020 property BrowserSizeWidth: Integer read FBrowserSizeWidth write FBrowserSizeWidth;
1021 property BrowserSizeHeight: Integer read FBrowserSizeHeight write FBrowserSizeHeight;
1022 property SearchDialog: TSearchDialog read FSearchDialog write FSearchDialog;
1023 property ToolBarSettingSender : TToolBarSettingSenderType
1024 read FToolBarSettingSender write FToolBarSettingSender;
1025 property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
1026 property SortIndex: Integer read FSortIndex write FSortIndex;
1027 property SortOrder: Boolean read FSortOrder write FSortOrder;
1028 property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
1029 property WorkCount: Integer read FWorkCount write FWorkCount;
1030 procedure SetContent(inThread: TBrowserRecord);
1031 function GetActiveContent: TThreadItem;
1032 function GetActiveList: TObject;
1033
1034 procedure SetListViewType(AViewType: TGikoViewType); overload;
1035 procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
1036 procedure PlaySound(SoundEventName: string);
1037 function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
1038 procedure ClearHistory;
1039 procedure SaveHistory;
1040 procedure LoadHistory;
1041 procedure ShowBBSTree( inBBS : TBBS );
1042 procedure ShowBBSTreeOld( inBBS : TBBS );
1043 procedure ShowHistoryTree;
1044 procedure SetHistoryTreeNode;
1045 procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
1046 procedure SetBrowserTabState;
1047 procedure SetToolBarPopup;
1048 procedure ShowFavoriteAddDialog( Item : TObject );
1049 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
1050 procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
1051 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
1052 property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
1053 property OddColor : TColor read FOddColor write FOddColor;
1054 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
1055 procedure OnPlugInMenuItem( Sender : TObject );
1056 procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
1057 /// ListView ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スu?ス?ス?ス?ス?ス?ス KuroutSetting?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1058 procedure ActiveListColumnSave;
1059 procedure SetActiveList(Obj: TObject);
1060 property ActiveList: TObject read GetActiveList write SetActiveList;
1061 /// CoolBar ?ス?ス?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス
1062 procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
1063 //?ス?ス?ス?スID?ス?ス?ス?ス?ス?ス?ス`?ス?ス
1064 procedure IndividualAbonID(Atype : Integer);
1065 //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス`?ス?ス
1066 procedure IndividualAbon(Atag, Atype : Integer);
1067 //ID?スA?ス?ス?スJ?ス[?ス?ス?ス?ス
1068 procedure IDAnchorPopup(Abody :string);
1069 //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス`?ス?ス true:?スS?ス?ス?ス?ス?ス^?スu false:?スA?スN?スe?スB?スu?ス?ス?ス^?スu?ス?ス?ス?ス
1070 procedure RepaintAllTabsBrowser();
1071 //?ス?ス?ス?ス?スN?スo?ス[?ス?ス?ス?ス
1072 procedure SetLinkBar;
1073 procedure FavoriteBrowseFolder( node: TTreeNode );
1074 //?スX?ス?ス?スb?スh?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
1075 procedure DownloadContent(ThreadItem: TThreadItem; ForceDownload: Boolean = False);
1076 //?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
1077 procedure DownloadList(Board: TBoard; ForceDownload: Boolean = False);
1078 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1079 procedure DeleteHistory( threadItem: TThreadItem );
1080 //?ス^?スu?ス?ス?ス?ス?ス?ス
1081 procedure DeleteTab(ThreadItem: TThreadItem); overload;
1082 procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
1083 //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スX?スN?ス?ス?ス[?ス?ス
1084 procedure BrowserMovement(const AName: string); overload;
1085 //?スw?ス?ス?ス?ス?ス?ス?スu?ス?ス?スE?スU?ス?ス?スX?スN?ス?ス?ス[?ス?ス
1086 procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload;
1087 //Application?ス?スMainForm?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1088 function GetMainForm(): TComponent;
1089 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
1090 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?スn
1091 procedure OnGestureStart(Sender: TObject);
1092 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?ス?ス
1093 procedure OnGestureMove(Sender: TObject);
1094 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スI?ス?ス
1095 procedure OnGestureEnd(Sender: TObject);
1096 /// ?スo?ス?ス?スh?ス?ス?ス?ス?ス?ス?スv?スZ?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1097 procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
1098 //?スX?スN?ス?ス?ス[?ス?ス?ス?ス?ス?スEditorForm?ス?ス?ス?ス?ス?ス?ス?ス
1099 function EditorFormExists(): boolean;
1100 //?スX?スN?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スEditorForm?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1101 procedure AllEditroFormNameTextClearClear();
1102 //?スX?スN?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スEditorForm?ス?ス?ス?ス?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1103 procedure AllEditroFormMailTextClearClear();
1104 //ListView?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1105 procedure SelectListItem(List: TList);
1106 /// ?ス^?スu?ス?ス?ス?ス
1107 function SaveTabURLs : Boolean;
1108 /// ?ス^?スu?ス?ス?ス?ス?スo?ス?ス
1109 function LoadTabURLs : Boolean;
1110 //?スw?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1111 procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
1112 //
1113 procedure ModifySelectList;
1114 //
1115 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
1116 //
1117 procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
1118 //
1119 procedure SetSelectRoundName(Sender: TObject);
1120 //
1121 function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
1122 //
1123 function WebBrowserClick(Sender: TObject): WordBool;
1124 published
1125 property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
1126 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1127 procedure DependActiveCntentActionUpdate(Sender: TObject);
1128 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1129 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
1130 //TAction?ス?スActiveList?ス?スTBoard?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
1131 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
1132 //?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1133 procedure AppException(Sender: TObject; E: Exception);
1134 end;
1135
1136 TFavoriteMenuItem = class(TMenuItem)
1137 private
1138 FData : Pointer;
1139 public
1140 property Data: Pointer read FData write FData;
1141 end;
1142
1143 TBBSMenuItem = class(TMenuItem)
1144 private
1145 FData : Pointer;
1146 public
1147 property Data: Pointer read FData write FData;
1148 end;
1149
1150 TLinkToolButton = class(TToolButton)
1151 private
1152 FData : Pointer;
1153 public
1154 property Data: Pointer read FData write FData;
1155 end;
1156
1157 TBrowserRecord = class( TObject )
1158 private
1159 FBrowser : TWebBrowser;
1160 FEvent: THTMLDocumentEventSink; ///< ?スu?ス?ス?スE?スU?スh?スL?ス?ス?ス?ス?ス?ス?スg?スC?スx?ス?ス?スg
1161 FThread : TThreadItem;
1162 FLastSize : Integer;
1163 FRepaint : Boolean;
1164 FMovement : string; ///< ?スX?スN?ス?ス?ス[?ス?ス?ス?ス?スA?ス?ス?スJ?ス[
1165 public
1166 destructor Destroy; override;
1167 property Browser : TWebBrowser read FBrowser write FBrowser;
1168 property Thread : TThreadItem read FThread write FThread;
1169 property LastSize : Integer read FLastSize write FLastSize;
1170 property Repaint : Boolean read FRepaint write FRepaint;
1171 property Movement : string read FMovement write FMovement;
1172 end;
1173
1174 var
1175 GikoForm: TGikoForm;
1176
1177 implementation
1178
1179 uses
1180 GikoUtil, IndividualAbon, Math, Kotehan, KeySetting,
1181 YofUtils, ShellAPI, ToolBarUtil, ToolBarSetting,
1182 GikoXMLDoc, RoundName, IniFiles, FavoriteAdd,
1183 FavoriteArrange, AddressHistory, Preview, Gesture,
1184 About, Option, Round, Splash, Sort, ListSelect, Imm,
1185 NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter,
1186 HTMLCreate, ListViewUtils, GikoDataModule;
1187
1188 const
1189 CAPTION_NAME: string = '?スM?スR?スi?スr';
1190 BLANK_HTML: string = 'about:blank';
1191 SELECTCOMBOBOX_NAME: string = ''; // '?スX?ス?ス?スb?スh?スi?ス?ス?ス?ス?ス?ス';
1192 SELECTCOMBOBOX_COLOR: TColor = clWindow;
1193 //D&D?ス?ス?スl
1194 DandD_THRESHOLD = 5; //D&D?ス?ス?ス?ス?スl?スipixcel)
1195 //?スc?ス?ス?ス[?スE?ス?ス?スX?スg?スA?スC?スR?ス?ス
1196 //ITEM_ICON_CATEGORY1 = 2; //?スJ?スe?スS?ス?ス?スA?スC?スR?ス?ス
1197 //ITEM_ICON_CATEGORY2 = 3; //?スJ?スe?スS?ス?ス?スA?スC?スR?ス?ス
1198 //ITEM_ICON_BOARD_NOSUBJECT = 3; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1199 //ITEM_ICON_BOARD1 = 4; //?ス?ス?スA?スC?スR?ス?ス
1200 //ITEM_ICON_BOARD2 = 5; //?ス?ス?スA?スC?スR?ス?ス
1201 ITEM_ICON_THREADLOG1 = 6; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1202 ITEM_ICON_THREADLOG2 = 7; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1203 //ITEM_ICON_THREAD1 = 8; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1204 //ITEM_ICON_THREAD2 = 9; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
1205 //ITEM_ICON_THREADNEW1 = 10; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?スV?ス?ス?スj
1206 //ITEM_ICON_THREADNEW2 = 11; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?スV?ス?ス?スj
1207 ITEM_ICON_SORT1 = 12; //?ス\?ス[?スg?スA?スC?スR?ス?ス
1208 ITEM_ICON_SORT2 = 13; //?ス\?ス[?スg?スA?スC?スR?ス?ス
1209 //ITEM_ICON_BOARD_LOG = 17; //?スX?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1210 //ITEM_ICON_BOARD_NEW = 18; //?スX?ス?ス?スV?ス?ス?ス?ス?スA?スC?スR?ス?ス
1211
1212 //?スc?ス[?ス?ス?スo?ス[?スA?スC?スR?ス?ス
1213 TOOL_ICON_HEIGHT_MAX = 16; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1214 TOOL_ICON_HEIGHT_MIN = 17; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1215 TOOL_ICON_HEIGHT_NORMAL = 18; //?ス?ス?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
1216 TOOL_ICON_WIDTH_MAX = 19; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1217 TOOL_ICON_WIDTH_MIN = 20; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1218 TOOL_ICON_WIDTH_NORMAL = 21; //?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
1219
1220 TOOL_ICON_FAV_FOLDER = 30; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スt?スH?ス?ス?ス_?スA?スC?スR?ス?ス
1221 TOOL_ICON_FAV_BOARD = 31; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
1222 TOOL_ICON_FAV_THREAD = 32; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スX?ス?ス?スA?スC?スR?ス?ス
1223
1224 HTML_FILE_NAME = 'temp_preview.html';
1225
1226 WM_XBUTTONDOWN = $020B;
1227 WM_XBUTTONUP = $020C;
1228 WM_XBUTTONDBLCLK = $020D;
1229 XBUTTON1 = $0001;
1230 XBUTTON2 = $0002;
1231 USER_TREECLICK = WM_USER + 2000;
1232 USER_RESIZED = WM_USER + 2001;
1233 USER_MINIMIZED = WM_USER + 2002;
1234 USER_SETLINKBAR = WM_USER + 2003;
1235 USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser
1236 SELECTTIME_INTERBAL = 110;
1237
1238 BROWSER_COUNT = 5; //?スu?ス?ス?スE?スU?ス?ス?ス?ス
1239
1240 URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
1241 URL_MONAZILLA: string = 'http://www.monazilla.org/';
1242 URL_2ch: string = 'http://www.2ch.net/';
1243 URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
1244
1245 {$R *.DFM}
1246
1247 procedure TGikoForm.CreateParams(var Params: TCreateParams);
1248 begin
1249 inherited;
1250 if FormStyle in [fsNormal, fsStayOnTop] then begin
1251 if BorderStyle in [bsSingle, bsSizeable] then begin
1252 Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
1253 Params.WndParent := 0;
1254 end;
1255 end;
1256 end;
1257
1258 procedure TGikoForm.FormCreate(Sender: TObject);
1259 const
1260 TVS_NOTOOLTIPS = $0080;
1261 var
1262 FileName: string;
1263 Style: DWORD;
1264 msg: string;
1265 i: Integer;
1266 wp: TWindowPlacement;
1267 s: string;
1268 newbrowser: TWebBrowser;
1269 ToolButton: TToolButton;
1270 begin
1271 {$IFDEF DEBUG}
1272 AllocConsole;
1273 Writeln('============================================================');
1274 Writeln(' ?スM?スR?スi?スr?スf?スo?スb?スO ?スR?ス?ス?ス\?ス[?ス?ス');
1275 Writeln('');
1276 Writeln(' ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB');
1277 Writeln(' ?スI?ス?ス?ス?ス?ス?ス?スA?スM?スR?スi?スr?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス');
1278 Writeln('============================================================');
1279 {$ENDIF}
1280 FTreeType := gttNone;
1281 // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1282 FStartUp := true;
1283 // LockWindowUpdate(Self.Handle);
1284 Application.OnDeactivate := AppFormDeactivate;
1285 //Self.OnDeactivate := AppFormDeactivate;
1286 Application.HookMainWindow(Hook);
1287 Application.OnException := AppException; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス
1288 // Application.OnMessage := HandleAppMessage; //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス@by?ス@?ス?ス?ス?ス?ス?ス
1289 FIsIgnoreResize := rtResizing;
1290
1291 FSearchDialog := nil;
1292 BrowserNullTab := TBrowserRecord.Create;
1293 BrowserNullTab.Browser := Browser;
1294 BrowserNullTab.Browser.Navigate(BLANK_HTML);
1295 FBrowsers := TList.Create;
1296 for i := 0 to BROWSER_COUNT -1 do begin
1297 FBrowsers.Add(TWebBrowser.Create(BrowserPanel));
1298 newBrowser := FBrowsers[FBrowsers.Count - 1];
1299 TOleControl(newBrowser).Parent := BrowserPanel;
1300 TOleControl(newBrowser).Align := alNone;
1301 TOleControl(newBrowser).Left := 0;
1302 TOleControl(newBrowser).Top := 0;
1303 newBrowser.OnDocumentComplete := BrowserDocumentComplete;
1304 newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2;
1305 newBrowser.OnEnter := BrowserEnter;
1306 newBrowser.OnNewWindow2 := BrowserNewWindow2;
1307 newBrowser.OnStatusTextChange := BrowserStatusTextChange;
1308 newBrowser.Navigate(BLANK_HTML);
1309 ShowWindow(newBrowser.Handle, SW_HIDE);
1310 end;
1311 BrowserNullTab.Browser.BringToFront;
1312 ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
1313
1314 //?ス?ス?スj?ス?ス?ス[?スt?スH?ス?ス?スg
1315 SetMenuFont;
1316
1317 //?ス?ス?ス?ス?スJ?ス[?ス\?ス?ス
1318 Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
1319
1320 //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1321 //AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
1322 AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1323
1324 EnabledCloseButton := True;
1325
1326 //?ス?ス?スX?スg?スX?ス^?スC?ス?ス
1327 ListView.ViewStyle := GikoSys.Setting.ListStyle;
1328
1329 //?スA?スj?ス?ス?スp?スl?ス?ス?ス?ス?スu
1330 AnimePanel.Top := 0;
1331 AnimePanel.Left := 0;
1332
1333 //?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1334
1335 //?スL?ス?ス?スr?スl?スb?スg
1336 CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
1337
1338 //?ス?ス?スb?スZ?ス[?スW?スo?ス[
1339 MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
1340 MsgBarVisibleActionExecute(nil);
1341 MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
1342
1343 //?スX?スe?ス[?ス^?スX?スo?ス[
1344 StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
1345 StatusBarVisibleActionExecute(nil);
1346
1347 //?スt?スH?ス?ス?スg?スE?スF?ス?ス?ス?ス
1348 TreeView.Items.BeginUpdate;
1349 FavoriteTreeView.Items.BeginUpdate;
1350 ListView.Items.BeginUpdate;
1351 try
1352 TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
1353 TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
1354 TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
1355 TreeView.Color := GikoSys.Setting.CabinetBackColor;
1356 FavoriteTreeView.Font.Assign(TreeView.Font);
1357 FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
1358
1359 ListView.Font.Name := GikoSys.Setting.ListFontName;
1360 ListView.Font.Size := GikoSys.Setting.ListFontSize;
1361 ListView.Font.Color := GikoSys.Setting.ListFontColor;
1362 ListView.Font.Style := [];
1363 if GikoSys.Setting.ListFontBold then
1364 ListView.Font.Style := [fsbold];
1365 if GikoSys.Setting.ListFontItalic then
1366 ListView.Font.Style := ListView.Font.Style + [fsitalic];
1367
1368 ListViewBackGroundColor := clWhite; // ?スf?スt?スH?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1369 ListViewBackGroundColor := GikoSys.Setting.ListBackColor; // ?ス?ス?ス[?スU?ス?ス?ス`?ス?ス?ス?ス?スX
1370 FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
1371 FOddColor := GikoSys.Setting.OddColor;
1372
1373 finally
1374 TreeView.Items.EndUpdate;
1375 FavoriteTreeView.Items.EndUpdate;
1376 ListView.Items.EndUpdate;
1377 end;
1378 //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
1379 ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
1380
1381 //?スu?ス?ス?スE?スU?ス^?スu?スt?スH?ス?ス?スg
1382 BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1383 BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1384 BrowserTab.Font.Style := [];
1385 if GikoSys.Setting.BrowserTabFontBold then
1386 BrowserTab.Font.Style := [fsBold];
1387 if GikoSys.Setting.BrowserTabFontItalic then
1388 BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
1389 FDragWFirst := false;
1390 SetContent(BrowserNullTab); //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス?ス?ス\?ス?ス
1391
1392 //?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス?ス?ス
1393 ProgressBar.Parent := StatusBar;
1394 ProgressBar.Top := 2;
1395 ProgressBar.Left := 0;
1396 ProgressBar.Width := StatusBar.Panels[0].Width;
1397 ProgressBar.Height := StatusBar.Height - 2;
1398 ProgressBar.Position := 0;
1399
1400 // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1401 InitializeBoardPlugIns;
1402
1403 // ?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス(ReadFavorite ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1404 GikoSys.ListBoardFile;
1405
1406 // ?スX?スv?ス?ス?スb?スV?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス
1407 SplashWindow.ProgressBar.Max := Length(BBSs) * 20;
1408
1409 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1410 for i := Length(BBSs) - 1 downto 0 do begin
1411 if not BBSs[i].IsBoardFileRead then
1412 GikoSys.ReadBoardFile(BBSs[i]);
1413
1414 if SplashWindow <> nil then begin
1415 SplashWindow.ProgressBar.StepBy(20);
1416 SplashWindow.Update;
1417 end;
1418 end;
1419 //?ス?ス?ス?ス?スf?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス
1420 RoundList := TRoundList.Create;
1421 RoundList.LoadRoundBoardFile;
1422 RoundList.LoadRoundThreadFile;
1423
1424 //TreeView?ス?ス?ス?ス?ス?ス?スL?ス?スToolTip?ス?ス?ス?ス?ス\?ス?ス
1425 Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1426 Style := Style or TVS_NOTOOLTIPS;
1427 SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1428
1429 // ?スc?ス?ス?ス[?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1430 TreeView.Align := alClient;
1431 FavoriteTreeView.Align := alClient;
1432 FavoriteTreeView.Visible := False;
1433
1434 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
1435 SetBBSMenu;
1436
1437 //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1438 wp.length := sizeof(wp);
1439 wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1440 wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1441 wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1442 wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1443 wp.showCmd := SW_HIDE;
1444 SetWindowPlacement(Handle, @wp);
1445 //Self.Update;
1446
1447 if GikoSys.Setting.WindowMax then
1448 WindowState := wsMaximized;
1449
1450 //?スM?スR?スA?スj?ス?ス
1451 try
1452 FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1453 if FileExists(FileName) then
1454 Animate.FileName := FileName;
1455 except
1456 end;
1457
1458 //?スN?スb?スL?ス[
1459 FNameCookie := '';
1460 FMailCookie := '';
1461
1462 //?スX?ス?ス?スS?ス?ス?ス\?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1463 AllItemAction.Checked := True;
1464 AllResAction.Checked := True;
1465
1466 //?スu?ス?ス?スE?スU?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
1467 FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1468 FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1469
1470
1471 // ?スq?スX?スg?ス?ス?ス?ス?スX?スg(LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1472 FHistoryList := TList.Create;
1473
1474 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1475 LoadHistory;
1476
1477 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1478 FavoriteDM.SetFavTreeView(FavoriteTreeView);
1479 FavoriteDM.ReadFavorite;
1480
1481 ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1482 ArrangeAction.Execute;
1483
1484 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1485 case GikoSys.Setting.ListWidthState of
1486 glsMax: begin
1487 ViewPanel.Width := 1;
1488 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1489 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1490 end;
1491 glsMin: begin
1492 ViewPanel.Width := GikoSys.Setting.ListWidth;
1493 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1494 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1495 end;
1496 else begin
1497 ViewPanel.Width := GikoSys.Setting.ListWidth;
1498 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1499 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1500 end;
1501 end;
1502 end else begin
1503 case GikoSys.Setting.ListHeightState of
1504 glsMax: begin
1505 ViewPanel.Height := 1;
1506 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1507 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1508 end;
1509 glsMin: begin
1510 ViewPanel.Height := GikoSys.Setting.ListHeight;
1511 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1512 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1513 end;
1514 else begin
1515 ViewPanel.Height := GikoSys.Setting.ListHeight;
1516 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1517 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1518 end;
1519 end;
1520 end;
1521
1522 //?ス_?スE?ス?ス?ス?ス?ス[?スh?スI?スu?スW?スF?スN?スg
1523 FControlThread := TThreadControl.Create(True);
1524 FControlThread.MaxThreadCount := 1;
1525 FControlThread.Resume;
1526 FControlThread.OnDownloadEnd := DownloadEnd;
1527 FControlThread.OnDownloadMsg := DownloadMsg;
1528 FControlThread.OnWork := Work;
1529 FControlThread.OnWorkBegin := WorkBegin;
1530 FControlThread.OnWorkEnd := WorkEnd;
1531 // ProgressPanel.Width := FControlThread.MaxThreadCount * 12;
1532
1533 // ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1534 SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1535
1536 //?スu?ス?ス?スE?スU?ス^?スu?ス?ス?ス?ス
1537 SetBrowserTabState;
1538
1539 BrowserBoardNameLabel.Caption := '';
1540 BrowserNameLabel.Caption := '';
1541 FWorkCount := 0;
1542
1543 FTabHintIndex := -1;
1544
1545 //?スc?ス[?ス?ス?スo?ス[Wrapable
1546 ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1547 BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1548
1549 MakeDefaultINIFile();
1550 //?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1551 ReadToolBarSetting(ActionList, StdToolBar);
1552 ReadToolBarSetting(ActionList, ListToolBar);
1553 ReadToolBarSetting(ActionList, BrowserToolBar);
1554 SetToolBarPopup;
1555
1556 //ListToolBar?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?スComboBox?ス?ス?スz?スu
1557 SelectComboBoxPanel.Visible := False;
1558 try
1559 for i := ListToolBar.ControlCount - 1 downto 0 do
1560 begin
1561 if ListToolBar.Controls[ i ].Action = SelectItemAction then
1562 begin
1563 SelectComboBoxPanel.Left := ListToolBar.Controls[ i ].Left;
1564 SelectComboBoxPanel.Width := GikoSys.Setting.SelectComboBoxWidth;
1565 SelectComboBoxPanel.Parent := ListToolBar;
1566 SelectComboBoxPanel.Visible := True;
1567
1568 SelectComboBox.Left := 0;
1569 SelectComboBox.Top := 0;
1570 SelectComboBox.Height := SelectComboBoxPanel.ClientHeight;
1571 SelectComboBox.Width := SelectComboBoxPanel.Width -
1572 SelectComboBoxSplitter.Width;
1573
1574 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1575 ToolButton := TToolButton.Create(ListToolBar);
1576 ToolButton.Name := 'SelectComboBoxDummy';
1577 ToolButton.Style := tbsSeparator;
1578 ToolButton.Width := 0;
1579 ToolButton.Left := ListToolBar.Controls[ i ].Left;
1580 ListToolBar.InsertControl(ToolButton);
1581 ToolButton.Visible := False;
1582
1583 // ?スX?ス?ス?スb?スh?スi?ス?ス?ス?ス?ス?ス?ス?ス?スZ?スp?ス?ス?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス
1584 if (i + 1) < ListToolBar.ControlCount then
1585 if ListToolBar.Controls[ i + 1 ] is TToolButton then
1586 if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1587 ListToolBar.Controls[ i + 1 ].Visible := False;
1588
1589
1590 // ?スX?ス?ス?スb?スh?スi?ス?ス?ス{?ス^?ス?ス?ス?ス?スB?ス?ス
1591 ListToolBar.Controls[ i ].Visible := False;
1592
1593 break;
1594 end;
1595 end;
1596 except
1597 end;
1598
1599
1600 //?スA?スh?ス?ス?スX?スo?ス[
1601 AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1602
1603 //?ス?ス?ス?ス?スN?スo?ス[
1604 SetLinkBar;
1605
1606 // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
1607 FResRangeMenuSelect := GikoSys.ResRange;
1608 case GikoSys.ResRange of
1609 Ord( grrAll ):
1610 begin
1611 AllResAction.Execute;
1612 end;
1613 Ord( grrSelect ):
1614 begin
1615 SelectComboBox.Text := SelectComboBox.Items[ 1 ];
1616 SelectResAction.Checked := True;
1617 end;
1618 else
1619 // ResRangeAction.Execute;
1620 case FResRangeMenuSelect of
1621 Ord( grrKoko ): OnlyKokoResAction.Checked := True;
1622 Ord( grrNew ): OnlyNewResAction.Checked := True;
1623 100: OnlyAHundredResAction.Checked := True;
1624 end;
1625 end;
1626
1627 // ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1628 // ThreadRangeAction.Execute;
1629 case GikoSys.Setting.ThreadRange of
1630 gtrAll:
1631 begin
1632 AllItemAction.Checked := True;
1633 ViewType := gvtAll;
1634 end;
1635 gtrLog:
1636 begin
1637 LogItemAction.Checked := True;
1638 ViewType := gvtLog;
1639 end;
1640 gtrNew:
1641 begin
1642 NewItemAction.Checked := True;
1643 ViewType := gvtNew;
1644 end;
1645 end;
1646
1647
1648 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1649
1650 //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス\?ス?ス
1651 if not FileExists(GikoSys.GetBoardFileName) then begin
1652 msg := '?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス?ス?スM?スR?スi?スr?ス?ス?ス?ス?ス?ス?ス?ス?スg?スp?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス' + #13#10#13#10
1653 + '?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スQ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス' + #13#10
1654 + '?ス?ス?ス?ス?スo?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スX?スV?スv?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB';
1655 MsgBox(SplashWindow.Handle, msg, '?スM?スR?スi?スr', MB_OK or MB_ICONINFORMATION);
1656 NewBoardAction.Execute;
1657 end;
1658
1659 //?スL?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1660 GikoSys.LoadKeySetting(ActionList);
1661
1662 //?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
1663 // FLastRoundTime := 0;
1664
1665 //ResHint
1666 FHint := TResPopup.Create(Self);
1667
1668 ListView.OnData := TListViewUtils.ListViewData;
1669
1670 // ?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?ス?ス?ス?ス?ス?ス
1671 CabinetVisible( False );
1672 if GikoSys.Setting.CabinetVisible then begin
1673 i := CabinetSelectPopupMenu.Items.Count - 1;
1674 if GikoSys.Setting.CabinetIndex = i - 1 then
1675 CabinetHistoryAction.Execute
1676 else if GikoSys.Setting.CabinetIndex = i then
1677 CabinetFavoriteAction.Execute
1678 else begin
1679 if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1680 ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1681 // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス 2
1682 FIsIgnoreResize := rtResizing;
1683 CabinetBBSAction.Execute;
1684 end;
1685 end else begin
1686 ShowBBSTreeOld( BBSs[ 0 ] );
1687 PostMessage( Handle, USER_TREECLICK, 0, 0 );
1688 end;
1689
1690
1691 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?スJ?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?スj
1692 for i := 1 to ParamCount do begin
1693 MoveToURL(ParamStr(i));
1694 end;
1695
1696 s := GikoSys.FAbon.NGwordname;
1697 StatusBar.Panels[2].Text := s;
1698 StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
1699 StatusBarResize(Sender);
1700
1701 dummy1.Caption := ItemReservPMenu.Caption;
1702 dummy1.Hint := ItemReservPMenu.Hint;
1703
1704 //Samba24?ス?ス?スt?ス@?スC?ス?ス?ス`?スF?スb?スN
1705 GikoSys.SambaFileExists();
1706
1707 {$IFDEF SPAM_FILTER_ENABLED}
1708 // ?スX?スp?ス?ス?スt?スB?ス?ス?ス^?スw?スK?ス?ス?ス?ス
1709 GikoSys.Bayesian.LoadFromFile( GikoSys.Setting.GetSpamFilterFileName );
1710 {$ENDIF}
1711
1712 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[
1713 MouseGesture := TMouseGesture.Create;
1714 GikoSys.Setting.Gestures.LoadGesture(
1715 GikoSys.Setting.GetGestureFileName, ActionList );
1716 MouseGesture.Margin := GikoSys.Setting.Gestures.Margin;
1717 MouseGesture.OnGestureStart := OnGestureStart;
1718 MouseGesture.OnGestureMove := OnGestureMove;
1719 MouseGesture.OnGestureEnd := OnGestureEnd;
1720 if GikoSys.Setting.GestureEnabled then
1721 MouseGesture.SetHook( Handle );
1722
1723 //2ch?ス?ス?ス?ス?ス?ス?ス?ス?スo?ス?ス
1724 GikoSys.Setting.SetMessages;
1725
1726 //?スI?ス[?スg?ス?ス?スO?スC?ス?ス
1727 if GikoSys.Setting.AutoLogin then
1728 LoginAction.Execute;
1729
1730 MuteAction.Checked := GikoSys.Setting.Mute;
1731
1732 GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
1733 // LockWindowUpdate(0);
1734 end;
1735
1736 // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1737 procedure TGikoForm.SaveCoolBarSettings;
1738 begin
1739
1740 if IsIconic( Handle ) or (FIsIgnoreResize <> rtNone) then
1741 Exit;
1742 SaveMainCoolBarSettings;
1743 SaveBoardCoolBarSettings;
1744 SaveBrowserCoolBarSettings;
1745
1746 end;
1747 procedure TGikoForm.SaveMainCoolBarSettings;
1748 var
1749 i : Integer;
1750 CoolSet : TCoolSet;
1751 begin
1752 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1753 for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1754 CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1755 CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1756 CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1757 GikoSys.Setting.MainCoolSet[i] := CoolSet;
1758 end;
1759 end;
1760 procedure TGikoForm.SaveBoardCoolBarSettings;
1761 var
1762 i : Integer;
1763 CoolSet : TCoolSet;
1764 begin
1765 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1766 for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1767 CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1768 CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1769 CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1770 GikoSys.Setting.ListCoolSet[i] := CoolSet;
1771 end;
1772 end;
1773 procedure TGikoForm.SaveBrowserCoolBarSettings;
1774 var
1775 i : Integer;
1776 CoolSet : TCoolSet;
1777 begin
1778 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1779 for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1780 CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1781 CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1782 CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1783 GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1784 end;
1785 end;
1786 // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1787 procedure TGikoForm.LoadCoolBarSettings;
1788 var
1789 i : Integer;
1790 CoolSet : TCoolSet;
1791 begin
1792
1793 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1794 MainCoolBar.Bands.BeginUpdate;
1795 try
1796 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1797 for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1798 CoolSet := GikoSys.Setting.MainCoolSet[i];
1799 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1800 FIsIgnoreResize := rtNone;
1801 SaveCoolBarSettings;
1802 Exit;
1803 end;
1804 MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1805 MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1806 MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1807 end;
1808 finally
1809 MainCoolBar.Bands.EndUpdate;
1810 end;
1811
1812 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1813 ListCoolBar.Bands.BeginUpdate;
1814 try
1815 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1816 for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1817 CoolSet := GikoSys.Setting.ListCoolSet[i];
1818 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1819 FIsIgnoreResize := rtNone;
1820 SaveCoolBarSettings;
1821 Exit;
1822 end;
1823 ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1824 ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1825 ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1826 end;
1827 finally
1828 ListCoolBar.Bands.EndUpdate;
1829 end;
1830
1831 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1832 BrowserCoolBar.Bands.BeginUpdate;
1833 try
1834 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1835 for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1836 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1837 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1838 FIsIgnoreResize := rtNone;
1839 SaveCoolBarSettings;
1840 Exit;
1841 end;
1842 BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1843 BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1844 BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1845 end;
1846 finally
1847 BrowserCoolBar.Bands.EndUpdate;
1848 end;
1849
1850 end;
1851 //
1852 procedure TGikoForm.FormShow(Sender: TObject);
1853 begin
1854 if FStartUp then begin
1855 ShowWindow(Application.Handle, SW_HIDE);
1856
1857 //FormCreate?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スf?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1858 //?スc?ス[?ス?ス?スo?ス[?ス\?ス?ス
1859 StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1860 StdToolBarVisibleActionExecute( nil );
1861 AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1862 AddressBarVisibleActionExecute( nil );
1863 LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1864 LinkBarVisibleActionExecute( nil );
1865 ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1866 ListToolBarVisibleActionExecute( nil );
1867 ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1868 ListNameBarVisibleActionExecute( nil );
1869 BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1870 BrowserToolBarVisibleActionExecute( nil );
1871 BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1872 BrowserNameBarVisibleActionExecute( nil );
1873
1874 //?スu?ス?ス?スE?スU?ス^?スu
1875 BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1876 BrowserTabVisibleActionExecute(nil);
1877
1878 if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1879 BrowserTabTopAction.Checked := True;
1880 BrowserTabTopActionExecute(nil);
1881 end else begin
1882 BrowserTabBottomAction.Checked := True;
1883 BrowserTabBottomActionExecute(nil);
1884 end;
1885
1886 if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1887 BrowserTabTabStyleAction.Checked := True;
1888 BrowserTabTabStyleActionExecute(nil);
1889 end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1890 BrowserTabButtonStyleAction.Checked := True;
1891 BrowserTabButtonStyleActionExecute(nil);
1892 end else begin
1893 BrowserTabFlatStyleAction.Checked := True;
1894 BrowserTabFlatStyleActionExecute(nil);
1895 end;
1896
1897 // ListView ?ス?ス?スw?スb?ス_?スh?ス?ス?スb?スO
1898 // ListView.FullDrag := True;
1899
1900 // CoolBar ?ス?ス?ス?ス
1901 LoadCoolBarSettings;
1902
1903 //?スd?スv?ス@?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1904 // ResetBandInfo( ListCoolBar, ListToolBar );
1905 FIsIgnoreResize := rtNone;
1906
1907 //TabAutoLoad
1908 //FormCrete?ス?ス?ス?ス?ス?ス?ス?ス?スB
1909 if GikoSys.Setting.TabAutoLoadSave then begin
1910 TabAutoLoadAction.Execute;
1911 end;
1912 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スT?ス|?ス[?スg?ス@?ス\
1913 if GikoSys.Setting.GengoSupport then begin
1914 //?ス\?ス?ス?スn
1915 //Test?ス?ス?ス?ス
1916 end;
1917 FStartUp := false;
1918 end;
1919 end;
1920
1921 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1922 begin
1923 // if GikoForm.WindowState <> wsMinimized then
1924 // SaveCoolBarSettings;
1925 if ( GikoSys.Setting.ShowDialogForEnd ) and
1926 (MessageDlg('?スM?スR?スi?スr?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1927 CanClose := false;
1928 Exit;
1929 end else begin
1930 CanClose := True;
1931 if GikoSys.Setting.TabAutoLoadSave then begin
1932 TabAutoSaveAction.Execute;
1933 end;
1934 end;
1935 { //2ch?ス?ス?ス?ス?ス?ス?ス?スFree
1936 if GikoSys.Setting.Gengo <> nil then begin
1937 GikoSys.Setting.Gengo.Free;
1938 end;
1939 }
1940 Application.UnhookMainWindow(Hook);
1941 Application.Terminate;
1942 end;
1943
1944 procedure TGikoForm.FormDestroy(Sender: TObject);
1945 var
1946 i : Integer;
1947 // CoolSet: TCoolSet;
1948 wp : TWindowPlacement;
1949 tmpBool : Boolean;
1950 begin
1951 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?ス?ス
1952 try
1953 MouseGesture.UnHook;
1954 except
1955 end;
1956 try
1957 ActiveListColumnSave;
1958 except
1959 end;
1960 try
1961 //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1962 wp.length := sizeof(wp);
1963 GetWindowPlacement(Handle, @wp);
1964 GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1965 GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1966 GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1967 GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1968 GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1969
1970 GikoSys.Setting.ListStyle := ListView.ViewStyle;
1971 GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1972 GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1973 GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1974 GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1975 if ArrangeAction.Checked then
1976 GikoSys.Setting.ListOrientation := gloVertical
1977 else
1978 GikoSys.Setting.ListOrientation := gloHorizontal;
1979 GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1980 except
1981 end;
1982
1983 try
1984 // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
1985 if not GikoSys.Setting.ResRangeHold then
1986 GikoSys.Setting.ResRange := FResRangeMenuSelect;
1987 except
1988 end;
1989 if WindowState <> wsNormal then
1990 WindowState := wsNormal;
1991 SaveCoolBarSettings;
1992 try
1993 GikoSys.Setting.WriteWindowSettingFile;
1994 GikoSys.Setting.WriteNameMailSettingFile;
1995 except
1996 end;
1997 // ?ス?ス?スA?ス?ス?ス^?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?スA?スE?スB?ス?ス?スh?スE?スT?スC?スY?ス?ス CoolBar ?ス?ス?ス?ス
1998 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スl?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1999
2000 // ?ス?スFormDestroy?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スB?スi?ス?ス?ス?ス?ス?ス?ス@2004/04/09?スj
2001 // CoolBar ?ス?ス?ス?ス
2002 //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
2003
2004
2005 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2006 try
2007 //FavoriteDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
2008 FavoriteDM.WriteFavorite;
2009 FavoriteDM.Clear;
2010 except
2011 end;
2012 LockWindowUpdate(Self.Handle);
2013 try
2014 //?ス^?スu?スN?ス?ス?ス[?スY
2015 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2016 GikoSys.Setting.ShowDialogForAllTabClose := false;
2017 AllTabCloseAction.Execute;
2018 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
2019 except
2020 end;
2021 try
2022 for i := FBrowsers.Count - 1 downto 0 do begin
2023 TWebBrowser(FBrowsers[i]).Free;
2024 end;
2025 FBrowsers.Clear;
2026 FBrowsers.Capacity := 0;
2027 finally
2028 FBrowsers.Free;
2029 end;
2030 try
2031 if BrowserNullTab <> nil then begin
2032 BrowserNullTab.Browser := nil; {*BrowserNullTab?ス?スBrowser?ス?ス?ス?ス?スv?ス?ス?ス?ス?ス\?ス?ス?スt?ス?ス?ス?ス?ス?ス?スz
2033 *?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFree?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
2034 *}
2035 BrowserNullTab.Free;
2036 end;
2037 except
2038 end;
2039
2040 try
2041 TreeView.Items.BeginUpdate;
2042 TreeView.Items.GetFirstNode.Free;
2043 TreeView.Items.Clear;
2044 TreeView.Items.EndUpdate;
2045 except
2046 end;
2047
2048 //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
2049 try
2050 //AddressHistoryDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スB
2051 //AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
2052 AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
2053 except
2054 end;
2055
2056 //?スq?スX?スg?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
2057 try
2058 SaveHistory;
2059 except
2060 end;
2061 try
2062 try
2063 ClearHistory;
2064 except
2065 end;
2066 finally
2067 FHistoryList.Free;
2068 end;
2069
2070 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス&?スj?ス?ス
2071 try
2072 RoundList.SaveRoundFile;
2073 except
2074 end;
2075 try
2076 try
2077 RoundList.Clear;
2078 except
2079 end;
2080 finally
2081 RoundList.Free;
2082 end;
2083
2084 try
2085 try
2086 FControlThread.Terminate;
2087 FControlThread.WaitFor;
2088 except
2089 end;
2090 finally
2091 FControlThread.Free;
2092 end;
2093
2094 // TBBS ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス TCategory, TBoard, TThreadItem ?ス?ス?ス?ス?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス
2095 // TBoard, TThreadItem ?ス?ス?スf?スX?スg?ス?ス?スN?ス^?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?スj?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
2096 // BoardPluteIns ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス
2097 for i := Length(BoardGroups) - 1 downto 0 do begin
2098 //BoardGroups[i].Clear;
2099 BoardGroups[i].Free;
2100 end;
2101
2102 try
2103 for i := Length( BBSs ) - 1 downto 0 do begin
2104 if BBSs[ i ] <> nil then
2105 BBSs[ i ].Free;
2106 BBSs[ i ] := nil;
2107 end;
2108 except
2109 end;
2110
2111 try
2112 if FEvent <> nil then
2113 FEvent.Free;
2114
2115 //Hint?スj?ス?ス
2116 if FHint <> nil then begin
2117 FHint.ReleaseHandle;
2118 FHint.Free;
2119 FHint := nil;
2120 end;
2121 //Preview?スj?ス?ス
2122 if TPreviewBrowser <> nil then begin
2123 FPreviewBrowser.Free;
2124 FPreviewBrowser := nil;
2125 end;
2126 except
2127 end;
2128 LockWindowUpdate(0);
2129 end;
2130
2131 // ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
2132 procedure TGikoForm.SetBBSMenu;
2133 var
2134 i : Integer;
2135 item : TBBSMenuItem;
2136 begin
2137
2138 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
2139 for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
2140 try
2141 if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
2142 CabinetSelectPopupMenu.Items[ i ].Free;
2143 CabinetMenu.Items[ i ].Free;
2144 BBSSelectPopupMenu.Items[ i ].Free;
2145 end;
2146 except
2147 end;
2148 end;
2149
2150 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
2151 for i := Length( BBSs ) - 1 downto 0 do begin
2152 try
2153 item := TBBSMenuItem.Create( PopupMenu );
2154 item.Caption := BBSs[ i ].Title;
2155 item.Data := BBSs[ i ];
2156 item.OnClick := BBSMenuItemOnClick;
2157 CabinetSelectPopupMenu.Items.Insert( 0, item );
2158 item := TBBSMenuItem.Create( PopupMenu );
2159 item.Caption := BBSs[ i ].Title;
2160 item.Data := BBSs[ i ];
2161 item.OnClick := BBSMenuItemOnClick;
2162 CabinetMenu.Insert( 0, item );
2163 item := TBBSMenuItem.Create( PopupMenu );
2164 item.Caption := BBSs[ i ].Title;
2165 item.Data := BBSs[ i ];
2166 item.OnClick := BBSMenuItemOnClick;
2167 BBSSelectPopupMenu.Items.Insert( 0, Item );
2168 except
2169 end;
2170 end;
2171
2172 end;
2173
2174 procedure TGikoForm.ReloadBBS;
2175 var
2176 i : Integer;
2177 tmpBool: Boolean;
2178 begin
2179 LockWindowUpdate(Self.Handle);
2180
2181 //?ス^?スu?スN?ス?ス?ス[?スY
2182 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
2183 GikoSys.Setting.ShowDialogForAllTabClose := false;
2184 AllTabCloseAction.Execute;
2185 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
2186
2187 SetContent(BrowserNullTab);
2188 //TreeView?スN?ス?ス?スA?スiBBS2ch.Free?ス?ス?ス?ス?ス?ス?スN?ス?ス?スA?ス?ス?ス?ス?ス?スXP?スX?ス^?スC?ス?ス?ス?ス?ス?ス?スG?ス?ス?ス[?スo?ス?ス?スj
2189 TreeView.Items.Clear;
2190
2191 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
2192 try
2193 RoundList.SaveRoundFile;
2194 except
2195 end;
2196 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?スj?ス?ス
2197 try
2198 RoundList.Clear;
2199 except
2200 end;
2201
2202 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
2203 try
2204 SaveHistory;
2205 ClearHistory;
2206 except
2207 end;
2208
2209 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
2210 try
2211 FavoriteDM.WriteFavorite;
2212 FavoriteDM.Clear;
2213 except
2214 end;
2215
2216 //?ス?ス?スE?スX?ス?ス?スEPLUGIN?ス?ス?スj?ス?ス
2217 for i := Length(BoardGroups) - 1 downto 0 do begin
2218 try
2219 BoardGroups[i].Free;
2220 except
2221 end;
2222 end;
2223 //BBS?スj?ス?ス
2224 try
2225 for i := Length( BBSs ) - 1 downto 0 do begin
2226 if BBSs[ i ] <> nil then
2227 BBSs[ i ].Free;
2228 BBSs[ i ] := nil;
2229 end;
2230 except
2231 end;
2232
2233 ActiveList := nil;
2234
2235 FTreeType := gttNone;
2236
2237 //============?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス================================//
2238
2239 // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
2240 InitializeBoardPlugIns;
2241
2242 GikoSys.ListBoardFile; //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス
2243
2244 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2245 for i := Length(BBSs) - 1 downto 0 do begin
2246 if not BBSs[i].IsBoardFileRead then
2247 GikoSys.ReadBoardFile(BBSs[i]);
2248 end;
2249
2250 // BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スX?スV
2251 SetBBSMenu;
2252
2253 ShowBBSTree( BBSs[ 0 ] );
2254
2255 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2256 LoadHistory;
2257
2258 //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2259 FavoriteDM.ReadFavorite;
2260
2261 SetLinkBar;
2262
2263 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2264 RoundList.LoadRoundBoardFile;
2265 RoundList.LoadRoundThreadFile;
2266
2267 LockWindowUpdate(0);
2268 //
2269 TabsOpenAction.Execute;
2270 end;
2271
2272
2273 procedure TGikoForm.BrowserStatusTextChange(Sender: TObject; const Text: WideString);
2274 var
2275 p: TPoint;
2276 s: string;
2277 tmp2: string;
2278 URL: string;
2279 ATitle: Boolean;
2280
2281 threadItem : TThreadItem;
2282 board : TBoard;
2283 Protocol, Host, Path, Document, Port, Bookmark: string;
2284
2285 wkInt: Integer;
2286 wkIntSt: Integer;
2287 wkIntTo: Integer;
2288 ActiveFileName: string;
2289 e: IHTMLElement;
2290 Ext: string;
2291 PathRec: TPathRec;
2292 begin
2293 if not( TObject(Sender) is TWebBrowser )then
2294 Exit;
2295 try
2296 try
2297 if (TWebBrowser(Sender) <> nil) and (not TWebBrowser(Sender).Busy) and (Assigned(TWebBrowser(Sender).Document)) then begin
2298 if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then begin
2299 OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis';
2300 end;
2301 end;
2302 except
2303 end;
2304 finally
2305 end;
2306 if PreviewTimer.Enabled then
2307 PreviewTimer.Enabled := False;
2308 Application.CancelHint;
2309 try
2310 if GetActiveContent <> nil then
2311 ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
2312 else
2313 ActiveFileName := '';
2314 except
2315 FActiveContent := nil;
2316 Exit;
2317 end;
2318
2319 StatusBar.Panels[1].Text := Text;
2320
2321 if FHint <> nil then begin
2322 FHint.ReleaseHandle;
2323 FHint.ClearAllRes;
2324 end;
2325 if FPreviewBrowser <> nil then
2326 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2327
2328 if not GikoSys.Setting.UnActivePopup then
2329 if not GikoForm.Active then
2330 Exit;
2331
2332 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
2333 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
2334
2335 s := '';
2336 Ext := AnsiLowerCase(ExtractFileExt(Text));
2337 if (Pos('http://', Text) = 1) and (GikoSys.Setting.PreviewVisible) and
2338 ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
2339 if FPreviewBrowser = nil then begin
2340 FPreviewBrowser := TPreviewBrowser.Create(Self);
2341 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2342 TOleControl(FPreviewBrowser).Parent := nil;
2343 end;
2344 FPreviewBrowser.Navigate(BLANK_HTML);//?スO?ス?ス?ス?ス?スv?ス?ス?スr?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スp
2345 FPreviewURL := Text;
2346 PreviewTimer.Interval := GikoSys.Setting.PreviewWait;
2347 PreviewTimer.Enabled := True;
2348 end else if (Pos('about:blank', Text) = 1) or (Pos('http://', Text) = 1) or (Pos('mailto:', Text) = 1) then begin
2349 if Pos('mailto:', Text) = 1 then begin
2350 s := StringReplace(Text, 'mailto:', '', [rfIgnoreCase]);
2351 //?スM?スR?スi?スr?スX?ス?ス ?スp?ス[?スg3?ス?ス466?ス?ス?ス?ス?ス?ス?ス?ス
2352 GetCursorPos(p);
2353 p.x := p.x - TWebBrowser(Sender).ClientOrigin.x;
2354 p.y := p.y - TWebBrowser(Sender).ClientOrigin.y;
2355 e := IHTMLDocument2(TWebBrowser(Sender).Document).elementFromPoint(p.x, p.y);
2356 if (Assigned(e)) then begin
2357 tmp2 := ZenToHan(e.Get_outerText);
2358 if (GikoSys.IsNumeric(tmp2)) then begin
2359 //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
2360 wkIntSt := StrToInt(tmp2);
2361 wkIntTo := StrToInt(tmp2);
2362 //s := GetThreadText(wkBBS, wkKey, wkIntSt, wkIntTo, False, False);
2363 FHint.PopupType := gptThread;
2364 HTMLCreater.SetResPopupText(FHint, GetActiveContent, wkIntSt, wkIntTo, False, False);
2365 end else begin
2366 FHint.PopupType := gptRaw;
2367 FHint.Caption := s;
2368 end;
2369 end;
2370 end else begin
2371 threadItem := GetActiveContent;
2372 URL := THTMLCreate.GetRespopupURL(Text, threadItem.URL);
2373 PathRec := Gikosys.Parse2chURL2(URL);
2374 if (PathRec.FNoParam) then begin
2375 PathRec.FSt := 1;
2376 PathRec.FTo := 1;
2377 end else begin
2378 Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
2379 end;
2380 GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
2381
2382 if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
2383
2384 URL := GikoSys.GetBrowsableThreadURL( URL );
2385 wkIntSt := PathRec.FSt;
2386 wkIntTo := PathRec.FTo;
2387
2388 if (wkIntSt = 0) and (wkIntTo = 0) then begin
2389 wkIntSt := 1;
2390 wkIntTo := 1;
2391 end else if (wkIntSt = 0) and (wkIntTo > 0) then begin
2392 wkIntSt := wkIntTo;
2393 end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
2394 wkIntTo := wkIntSt;
2395 end else if wkIntSt > wkIntTo then begin
2396 wkInt := wkIntTo;
2397 wkIntTo := wkIntSt;
2398 wkIntSt := wkInt;
2399 end;
2400 if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
2401 ATitle := false
2402 else
2403 ATitle := true;
2404
2405 threadItem := BBSsFindThreadFromURL( URL );
2406
2407 if (threadItem = nil) and GikoSys.Is2chHost( Host ) then begin
2408 board := BBSs[ 0 ].FindBBSID( PathRec.FBBS );
2409 if board <> nil then begin
2410 if not board.IsThreadDatRead then
2411 GikoSys.ReadSubjectFile( board );
2412 threadItem := board.FindThreadFromFileName( PathRec.FKey + '.dat' );
2413 end;
2414 end;
2415
2416 if threadItem <> nil then begin
2417 //HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst);
2418 //URL?ス?ス?ス?ス?ス?ス?ス?ス/?ス?ス?スt?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スp
2419 if ( IntToStr(wkIntSt) = ChangeFileExt(threadItem.FileName, '') ) then begin
2420 wkIntSt := 1;
2421 wkIntTo := 1;
2422 end;
2423 FHint.PopupType := gptThread;
2424 HTMLCreater.SetResPopupText(FHint, threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst );
2425 end;
2426 end;
2427 end;
2428
2429 if FHint.PopupType = gptRaw then begin
2430 if FHint.Caption <> '' then
2431 ShowTextPopup;
2432 end else begin
2433 if (FHint.ResCount <> 0) or (FHint.Title <> '') then
2434 ShowTextPopup;
2435 end;
2436 end;
2437 end;
2438
2439 procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
2440 var
2441 SysMenu: HMenu;
2442 begin
2443 FEnabledCloseButton := Enabled;
2444 SysMenu := GetSystemMenu(Handle, False);
2445
2446 if Enabled then begin
2447 EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED);
2448 end else begin
2449 EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
2450 end;
2451
2452 DrawMenuBar(Handle);
2453 end;
2454
2455 procedure TGikoForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
2456 var AllowChange: Boolean);
2457 begin
2458 //?ス\?ス[?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2459 // if FTreeType = gtt2ch then
2460 // FSortIndex := -1;
2461 end;
2462
2463 procedure TGikoForm.ListViewKeyDown(Sender: TObject; var Key: Word;
2464 Shift: TShiftState);
2465 var
2466 pos : TPoint;
2467 begin
2468 if GetActiveList is TBoard then begin
2469 case Key of
2470 VK_BACK:; // UpFolderButtonClick(Sender);
2471 VK_SPACE: ListDoubleClick(Shift);
2472 VK_RETURN: ListClick;
2473 VK_APPS:
2474 begin
2475 if ListView.Selected <> nil then begin
2476 pos.X := ListView.Column[ 0 ].Width;
2477 pos.Y := ListView.Selected.Top;
2478 end else begin
2479 pos.X := ListView.Left;
2480 pos.Y := ListView.Top;
2481 end;
2482 Windows.ClientToScreen( ListView.Handle, pos );
2483 ListPopupMenu.Popup( pos.X, pos.Y );
2484 end;
2485 end;
2486 end else begin // TBBS, TCategory
2487 case Key of
2488 VK_BACK:; // UpFolderButtonClick(Sender);
2489 VK_SPACE: ListClick;
2490 VK_RETURN: ListDoubleClick(Shift);
2491 VK_APPS:
2492 begin
2493 if ListView.Selected <> nil then begin
2494 pos.X := ListView.Column[ 0 ].Width;
2495 pos.Y := ListView.Selected.Top;
2496 end else begin
2497 pos.X := ListView.Left;
2498 pos.Y := ListView.Top;
2499 end;
2500 Windows.ClientToScreen( ListView.Handle, pos );
2501 ListPopupMenu.Popup( pos.X, pos.Y );
2502 end;
2503 end;
2504 end;
2505 end;
2506
2507 function TGikoForm.GetHttpState: Boolean;
2508 begin
2509 Result := FHttpState;
2510 end;
2511
2512 procedure TGikoForm.ListViewColumnClick(Sender: TObject;
2513 Column: TListColumn);
2514 var
2515 id, idx : Integer;
2516 orderList : TList;
2517 begin
2518 idx := TListViewUtils.ActiveListTrueColumn( Column ).Tag;
2519
2520 if TObject( FActiveList ) is TBBS then
2521 orderList := GikoSys.Setting.BBSColumnOrder
2522 else if TObject( FActiveList ) is TCategory then
2523 orderList := GikoSys.Setting.CategoryColumnOrder
2524 else if TObject( FActiveList ) is TBoard then
2525 orderList := GikoSys.Setting.BoardColumnOrder
2526 else
2527 Exit;
2528
2529 id := Integer( orderList[ idx ] );
2530
2531 if FSortIndex = id then
2532 FSortOrder := not FSortOrder
2533 else begin
2534 FSortOrder := id = 0;
2535 end;
2536
2537 TListViewUtils.ListViewSort(Sender, ListView, Column, ListNumberVisibleAction.Checked, FSortOrder, FSortIndex );
2538 end;
2539
2540 procedure TGikoForm.MenuToolBarCustomDrawButton(Sender: TToolBar;
2541 Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
2542 var
2543 ARect: TRect;
2544 begin
2545 DefaultDraw := True;
2546 Exit;
2547 DefaultDraw := False;
2548 if (cdsSelected in State) or (cdsHot in State) then begin
2549 Sender.Canvas.Brush.Color := clHighlight;
2550 Sender.Canvas.Font.Color := clHighlightText;
2551 end else begin
2552 Sender.Canvas.Brush.Color := clBtnFace;
2553 Sender.Canvas.Font.Color := clBtnText;
2554 end;
2555 ARect := Rect(Button.Left, Button.Top, Button.Left + Button.Width, Button.Top + Button.Height);
2556 Sender.Canvas.FillRect(ARect);
2557 DrawText(Sender.Canvas.Handle, PChar(Button.Caption), -1, ARect, DT_SINGLELINE or DT_VCENTER or DT_CENTER);
2558 end;
2559
2560 function TGikoForm.GetTreeNode(Data: TObject): TTreeNode;
2561 var
2562 Nodes: TTreeNodes;
2563 i: integer;
2564 begin
2565 Nodes := TreeView.Items;
2566
2567 for i := 0 to Nodes.Count - 1 do begin
2568 if Nodes.Item[i].Data = Data then begin
2569 Result := Nodes.Item[i];
2570 Exit;
2571 end;
2572 end;
2573 Result := nil;
2574 end;
2575
2576 procedure TGikoForm.BrowserBeforeNavigate2(Sender: TObject;
2577 const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
2578 Headers: OleVariant; var Cancel: WordBool);
2579 var
2580 sNo: string;
2581 p: TPoint;
2582 const
2583 kMenuName: string = 'menu:';
2584 begin
2585
2586 if Pos(kMenuName, URL) <> 0 then begin
2587 sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
2588
2589 if not GikoSys.IsNumeric(sNo) then Exit;
2590
2591 Cancel := True;
2592 GetCursorpos(p);
2593 KokoPopupMenu.Tag := StrToInt(sNo);
2594 KokoPopupMenu.Popup(p.x, p.y);
2595 end else if Pos('mailto', LowerCase(URL)) <> 0 then begin
2596 Cancel := not GikoSys.Setting.OpenMailer;
2597 end;
2598
2599 end;
2600
2601 procedure TGikoForm.AppFormDeactivate(Sender: TObject);
2602 begin
2603 Application.ProcessMessages;
2604 if not Application.Terminated then begin
2605 if PreviewTimer.Enabled then
2606 PreviewTimer.Enabled := False;
2607 //?スt?スH?ス[?スJ?スX?ス?ス?ス?ス?ス?ス?スA?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スq?ス?ス?スg?ス?ス?ス?ス?ス?ス
2608 if FHint <> nil then begin
2609 FHint.ReleaseHandle;
2610 FHint.ClearAllRes;
2611 end;
2612 //?スv?ス?ス?スr?ス?ス?ス[?ス?ス?スB?ス?ス
2613 if FPreviewBrowser <> nil then
2614 ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
2615 end;
2616 end;
2617
2618 procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
2619 const ARect: TRect; var DefaultDraw: Boolean);
2620 var
2621 NodeRect: TRect;
2622 i, j: Integer;
2623 IsBoardNode: Boolean;
2624 Cnt: Integer;
2625 CntText: string;
2626 TextWidth: Integer;
2627 TextRect: TRect;
2628 Board: TBoard;
2629 Category: TCategory;
2630 Bitmap: TBitmap;
2631 NodeWidth: Integer;
2632 begin
2633 DefaultDraw := True;
2634
2635 if FTreeType = gttHistory then Exit;
2636
2637 TreeView.Canvas.Font.Color := clBlue;
2638 IsBoardNode := False;
2639 for i := 0 to TreeView.Items.Count - 1 do begin
2640 Cnt := 0;
2641 if not TreeView.Items[i].IsVisible then
2642 continue;
2643
2644 if TObject(TreeView.Items[i].Data) is TCategory then begin
2645 if TreeView.Items[i].Expanded then
2646 continue;
2647
2648 IsBoardNode := False;
2649 Category := TCategory(TreeView.Items[i].Data);
2650 for j := 0 to Category.Count - 1 do begin
2651 Board := Category.Items[j];
2652 if Board <> nil then begin
2653 if Board.UnRead > 0 then begin
2654 Cnt := 1;
2655 Break;
2656 end;
2657 end;
2658 end;
2659 if Cnt <> 1 then
2660 continue;
2661 end else if TObject(TreeView.Items[i].Data) is TBoard then begin
2662 IsBoardNode := True;
2663 Board := TBoard(TreeView.Items[i].Data);
2664
2665 Cnt := Board.UnRead;
2666 if Cnt <= 0 then
2667 continue;
2668 end else
2669 continue;
2670
2671 Bitmap := TBitmap.Create;
2672 try
2673 Bitmap.Canvas.Font.Assign(TreeView.Canvas.Font);
2674 Bitmap.Canvas.Font.Style := [fsBold];
2675 NodeWidth := Bitmap.Canvas.TextWidth(TreeView.Items[i].Text);
2676 finally
2677 Bitmap.Free;
2678 end;
2679
2680 NodeRect := TreeView.Items[i].DisplayRect(True);
2681
2682 if IsBoardNode then
2683 CntText := '(' + IntToStr(Cnt) + ')'
2684 else if Cnt = 1 then
2685 CntText := '(+)';
2686
2687
2688 TextWidth := TreeView.Canvas.TextWidth(CntText);
2689
2690 TextRect := Rect(NodeRect.Left + NodeWidth + 8,
2691 NodeRect.Top,
2692 NodeRect.Left + NodeWidth + TextWidth + 8,
2693 NodeRect.Bottom);
2694 DrawText(TreeView.Canvas.Handle,
2695 PChar(CntText),
2696 -1,
2697 TextRect,
2698 DT_SINGLELINE or DT_VCENTER);
2699 end;
2700 TreeViewCustomDrawItem(nil, nil, [], DefaultDraw);
2701 end;
2702
2703 procedure TGikoForm.TreeViewCustomDrawItem(Sender: TCustomTreeView;
2704 Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
2705 var
2706 Board: TBoard;
2707 Category: TCategory;
2708 i: Integer;
2709 begin
2710 DefaultDraw := True;
2711
2712 if FTreeType = gttHistory then Exit;
2713
2714 TreeView.Canvas.Font.Style := [];
2715 if Node <> nil then begin
2716 if TObject(Node.Data) is TCategory then begin
2717 Category := TCategory(Node.Data);
2718 for i := 0 to Category.Count - 1 do begin
2719 Board := Category.Items[i];
2720 if Board <> nil then begin
2721 if Board.UnRead > 0 then begin
2722 TreeView.Canvas.Font.Style := [fsBold];
2723 Break;
2724 end;
2725 end;
2726 end;
2727 end else if TObject(Node.Data) is TBoard then begin
2728 Board := TBoard(Node.Data);
2729 if Board.UnRead > 0 then
2730 TreeView.Canvas.Font.Style := [fsBold];
2731 end;
2732 end;
2733 end;
2734
2735 procedure TGikoForm.TreeViewExpanded(Sender: TObject; Node: TTreeNode);
2736 begin
2737 TreeView.Invalidate;
2738
2739 if TObject(Node.Data) is TBBS then begin
2740 TBBS(Node.Data).NodeExpand := True;
2741 end else if TObject(Node.Data) is TCategory then begin
2742 TCategory(Node.Data).NodeExpand := True;
2743 end else if TObject(Node.Data) is TBoard then begin
2744 TBoard(Node.Data).NodeExpand := True;
2745 end;
2746 end;
2747
2748 {procedure TGikoForm.CabinetPanelVisible(PanelVisible: Boolean);
2749 begin
2750 TreeSplitter.Visible := PanelVisible;
2751 CabinetPanel.Visible := PanelVisible;
2752 CabinetToolButton.Down := PanelVisible;
2753 end;}
2754
2755 procedure TGikoForm.ListViewAllSelect;
2756 begin
2757 ListView.SetFocus;
2758 ListView.SelectAll;
2759 end;
2760
2761 procedure TGikoForm.TreeViewDblClick(Sender: TObject);
2762 var
2763 APoint: TPoint;
2764 HitTest: THitTests;
2765 begin
2766 GetCursorPos(APoint);
2767 APoint := TreeView.ScreenToClient(APoint);
2768 HitTest := TreeView.GetHitTestInfoAt(APoint.x, APoint.y);
2769 if not (htOnLabel in HitTest) then Exit;
2770
2771 TreeDoubleClick( TreeView.Selected );
2772 end;
2773
2774 procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
2775 begin
2776 AddMessageList(Msg, nil, Icon);
2777 end;
2778
2779 procedure TGikoForm.DownloadEnd(Sender: TObject; Item: TDownloadItem);
2780 var
2781 ATitle: string;
2782 s: string;
2783 boardPlugIn : TBoardPlugIn;
2784 i: Integer;
2785 browserRec : TBrowserRecord;
2786 begin
2787 try
2788 if Item.DownType = gdtBoard then
2789 ATitle := Item.Board.Title
2790 else
2791 ATitle := Item.ThreadItem.Title;
2792 if ATitle = '' then
2793 ATitle := GikoSys.Setting.GetMessage(Ord(gmUnKnown));
2794
2795 if Item.State in [gdsComplete, gdsDiffComplete] then begin
2796 //?ス?ス?ス?ス?スI?ス?ス
2797 if Item.DownType = gdtBoard then begin
2798 //?ス?ス
2799 Item.SaveListFile;
2800 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureItiran)), nil, gmiOK);
2801 if GetActiveList = Item.Board then begin
2802 FActiveList := nil;
2803 SetActiveList(Item.Board);
2804 end;
2805 Item.Board.Modified := True;
2806 Item.Board.IsThreadDatRead := True;
2807 PlaySound('New');
2808 end else if Item.DownType = gdtThread then begin
2809 //?スX?ス?ス
2810 Item.SaveItemFile;
2811 Item.ThreadItem.NewArrival := True;
2812 //if (Item.ThreadItem.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin
2813 if (Item.ThreadItem.ParentBoard.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin
2814 //boardPlugIn := Item.ThreadItem.BoardPlugIn;
2815 boardPlugIn := Item.ThreadItem.ParentBoard.BoardPlugIn;
2816 Item.ThreadItem.Title := DivideStrLine(boardPlugIn.GetDat( DWORD( Item.ThreadItem ), 1 )).FTitle;
2817 ATitle := Item.ThreadItem.Title;
2818 end else if ATitle = '?スi?ス?ス?ス?ス?スs?ス?ス?スj' then begin
2819 ATitle := DivideStrLine(GikoSys.ReadThreadFile(Item.ThreadItem.GetThreadFileName, 1)).FTitle;
2820 end;
2821 for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
2822 if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = Item.ThreadItem then begin
2823 TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
2824 break;
2825 end;
2826 end;
2827 if GikoSys.Setting.BrowserTabVisible then begin
2828 if GetActiveContent = Item.ThreadItem then
2829 browserRec := InsertBrowserTab(Item.ThreadItem)
2830 else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then
2831 browserRec := InsertBrowserTab(Item.ThreadItem, True)
2832 else
2833 browserRec := InsertBrowserTab(Item.ThreadItem, False);
2834 if browserRec.Thread = BrowserNullTab.Thread then begin
2835 browserRec.Movement := BrowserNullTab.Movement;
2836 BrowserNullTab.Movement := '';
2837 end;
2838 end else begin
2839 if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then
2840 InsertBrowserTab(Item.ThreadItem);
2841 end;
2842
2843 Application.ProcessMessages;
2844
2845 if Item.State = gdsComplete then begin
2846 PlaySound('New');
2847 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureSyutoku)), nil, gmiOK);
2848 //Add by Genyakun
2849 DiffComp := True;
2850 end else begin
2851 PlaySound('NewDiff');
2852 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureDiff)), nil, gmiOK);
2853 //Add by Genyakun
2854 DiffComp := True;
2855 end;
2856
2857 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スP?スO?スO?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2858 if (Item.ThreadItem.Round) and (Item.ThreadItem.Count > 1000) then begin
2859 Item.ThreadItem.Round := False;
2860 //Item.ThreadItem.RoundName := '';
2861 AddMessageList('?ス?ス1000?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス - [' + Item.ThreadItem.Title + ']', nil, gmiOK);
2862 end;
2863 TreeView.Refresh;
2864 //ListView?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス
2865 if (ActiveList <> nil) and (ActiveList is TBoard) then begin
2866 TBoard(ActiveList).LogThreadCount := TBoard(ActiveList).GetLogThreadCount;
2867 TBoard(ActiveList).NewThreadCount := TBoard(ActiveList).GetNewThreadCount;
2868 TBoard(ActiveList).UserThreadCount:= TBoard(ActiveList).GetUserThreadCount;
2869 //ListView?ス?ス?スA?スC?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV
2870 case GikoForm.ViewType of
2871 gvtAll: ListView.Items.Count := TBoard(ActiveList).Count;
2872 gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount;
2873 gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount;
2874 gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount;
2875 end;
2876 end;
2877 end;
2878 ListView.Refresh;
2879 end else if Item.State = gdsNotModify then begin
2880 //?ス?ス?スX?スi?スV
2881 { if (Item.DownType = gdtThread) and (AddHistory(Item.ThreadItem)) then begin
2882 //SetContent(Item.ThreadItem);
2883 InsertBrowserTab(Item.ThreadItem);
2884 end;}
2885 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmNotMod)), nil, gmiSAD);
2886 PlaySound('NoChange');
2887 Screen.Cursor := crDefault;
2888 end else if Item.State = gdsAbort then begin
2889 //?ス?ス?スf
2890 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmAbort)), nil, gmiOK);
2891 end else if Item.State = gdsError then begin
2892 //?スG?ス?ス?ス[
2893 s := Item.ErrText;
2894 if s <> '' then
2895 s := ':' + s;
2896 AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmError)) + ' (' + IntToStr(Item.ResponseCode) + ')' + s, nil, gmiNG);
2897 // if Item.ResponseCode = 302 then
2898 // AddMessageList('?ス?ス?ス?ス?ス?ス?ス]?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB', nil, gmiNG);
2899 PlaySound('Error');
2900 end;
2901 finally
2902 Item.Free;
2903 Dec(FWorkCount);
2904 if FWorkCount < 0 then FWorkCount := 0;
2905 if FWorkCount = 0 then begin
2906 try
2907 Animate.Active := False;
2908 finally
2909 Screen.Cursor := crDefault;
2910 end;