OSDN Git Service

bf3f718e1629dcca98d2d31a8834648b680f8382
[gikonavigoeson/gikonavi.git] / GikoDataModule.pas
1 unit GikoDataModule;
2
3 interface
4
5 uses
6   SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 {$IF Defined(DELPRO) }
8         SHDocVw,
9         MSHTML,
10 {$ELSE}
11         SHDocVw_TLB,
12         MSHTML_TLB,
13 {$IFEND}
14   ComCtrls;
15
16
17 type
18   TGikoDM = class(TDataModule)
19         GikoFormActionList: TActionList;
20         OnlyAHundredResAction: TAction;
21         OnlyKokoResAction: TAction;
22         LoginAction: TAction;
23         NewBoardAction: TAction;
24         LogDeleteAction: TAction;
25         KidokuAction: TAction;
26         StdToolBarVisibleAction: TAction;
27         AddressBarVisibleAction: TAction;
28         LinkBarVisibleAction: TAction;
29         ListToolBarVisibleAction: TAction;
30         SearchAction: TAction;
31         GikoNaviWebPageAction: TAction;
32         MonazillaWebPageAction: TAction;
33         BBS2chWebPageAction: TAction;
34         GikoFolderOpenAction: TAction;
35         AboutAction: TAction;
36         SelectTextClearAction: TAction;
37         NameTextClearAction: TAction;
38         MailTextClearAction: TAction;
39         ExitAction: TAction;
40         ListNameBarVisibleAction: TAction;
41         BrowserToolBarVisibleAction: TAction;
42         BrowserNameBarVisibleAction: TAction;
43         MsgBarVisibleAction: TAction;
44         MsgBarCloseAction: TAction;
45         StatusBarVisibleAction: TAction;
46         CabinetBBSAction: TAction;
47         CabinetHistoryAction: TAction;
48         OnlyNewResAction: TAction;
49         CabinetFavoriteAction: TAction;
50         CabinetVisibleAction: TAction;
51         ListNumberVisibleAction: TAction;
52         UpFolderAction: TAction;
53         CabinetCloseAction: TAction;
54         IconStyle: TAction;
55         LargeIconAction: TAction;
56         SmallIconAction: TAction;
57         ListIconAction: TAction;
58         DetailIconAction: TAction;
59         MidokuAction: TAction;
60         AllSelectAction: TAction;
61         AllItemAction: TAction;
62         LogItemAction: TAction;
63         NewItemAction: TAction;
64         ThreadRangeAction: TAction;
65         SelectItemAction: TAction;
66         StopAction: TAction;
67         OptionAction: TAction;
68         RoundAction: TAction;
69         BrowserMaxAction: TAction;
70         BrowserMinAction: TAction;
71         ScrollTopAction: TAction;
72         ScrollLastAction: TAction;
73         ScrollNewAction: TAction;
74         ScrollKokoAction: TAction;
75         EditorAction: TAction;
76         IEAction: TAction;
77         ShowThreadAction: TAction;
78         ShowBoardAction: TAction;
79         URLCopyAction: TAction;
80         NameCopyAction: TAction;
81         NameURLCopyAction: TAction;
82         ItemReloadAction: TAction;
83         ThreadEditorAction: TAction;
84         BoardIEAction: TAction;
85         SelectItemURLCopyAction: TAction;
86         SelectItemNameCopyAction: TAction;
87         SelectItemNameURLCopyAction: TAction;
88         SelectListReloadAction: TAction;
89         SelectThreadReloadAction: TAction;
90         BrowserTabCloseAction: TAction;
91         NotSelectTabCloseAction: TAction;
92         AllTabCloseAction: TAction;
93         KokomadeAction: TAction;
94         ZenbuAction: TAction;
95         KokoResAction: TAction;
96         TreeSelectBoradReload: TAction;
97         TreeSelectThreadReload: TAction;
98         TreeSelectURLCopy: TAction;
99         SelectReservAction: TAction;
100         SelectNewRoundName: TAction;
101         SelectDeleteRound: TAction;
102         KeySettingAction: TAction;
103         ArrangeAction: TAction;
104         ActiveLogDeleteAction: TAction;
105         TreeSelectNameURLCopy: TAction;
106         PaneInitAction: TAction;
107         LeftmostTabSelectAction: TAction;
108         LeftTabSelectAction: TAction;
109         RightTabSelectAction: TAction;
110         RightmostTabSelectAction: TAction;
111         FavoriteAddAction: TAction;
112         BoardFavoriteAddAction: TAction;
113         ThreadFavoriteAddAction: TAction;
114         TreeSelectFavoriteAddAction: TAction;
115         FavoriteArrangeAction: TAction;
116         MoveToAction: TAction;
117         BrowserTabVisibleAction: TAction;
118         BrowserTabTopAction: TAction;
119         BrowserTabBottomAction: TAction;
120         BrowserTabTabStyleAction: TAction;
121         BrowserTabButtonStyleAction: TAction;
122         BrowserTabFlatStyleAction: TAction;
123         GikoHelpAction: TAction;
124         KotehanAction: TAction;
125         ToolBarSettingAction: TAction;
126         SelectResAction: TAction;
127         AllResAction: TAction;
128         EditNGAction: TAction;
129         ReloadAction: TAction;
130         GoFowardAction: TAction;
131         GoBackAction: TAction;
132         TreeSelectSearchBoardName: TAction;
133         FavoriteTreeViewRenameAction: TAction;
134         FavoriteTreeViewNewFolderAction: TAction;
135         FavoriteTreeViewDeleteAction: TAction;
136         FavoriteTreeViewBrowseFolderAction: TAction;
137         FavoriteTreeViewReloadAction: TAction;
138         FavoriteTreeViewURLCopyAction: TAction;
139         FavoriteTreeViewNameCopyAction: TAction;
140         FavoriteTreeViewNameURLCopyAction: TAction;
141         FavoriteTreeViewLogDeleteAction: TAction;
142         ResRangeAction: TAction;
143         ExportFavoriteFile: TFileSaveAs;
144         FavoriteTreeViewBrowseBoardAction: TAction;
145         FavoriteTreeViewBrowseThreadAction: TAction;
146         UpBoardAction: TAction;
147         KoreCopy: TAction;
148         TreeSelectNameCopy: TAction;
149         SetFocusForBrowserAction: TAction;
150         SetFocusForThreadListAction: TAction;
151         SetFocusForCabinetAction: TAction;
152         FileRun1: TFileRun;
153         ThreadlistMaxAndFocusAction: TAction;
154         BrowserMaxAndFocusAction: TAction;
155         SelectItemSaveForHTML: TAction;
156         SelectItemSaveForDat: TAction;
157         FileSaveAs1: TFileSaveAs;
158         LogFolderOpenAction: TAction;
159         TabsSaveAction: TAction;
160         TabsOpenAction: TAction;
161         BrowsBoradHeadAction: TAction;
162         TabAutoSaveAction: TAction;
163         TabAutoLoadAction: TAction;
164         JumpToNumOfResAction: TAction;
165         FavoriteTreeViewCollapseAction: TAction;
166         RightTabCloseAction: TAction;
167         LeftTabCloseAction: TAction;
168         SameIDResAnchorAction: TAction;
169         IndividualAbon1Action: TAction;
170         IndividualAbon0Action: TAction;
171         AntiIndividualAbonAction: TAction;
172         AntiIndividualAbonDlgAction: TAction;
173         IndividualAbonID1Action: TAction;
174         IndividualAbonID0Action: TAction;
175         MuteAction: TAction;
176         SortActiveColumnAction: TAction;
177         SortNextColumnAction: TAction;
178         SortPrevColumnAction: TAction;
179         BeLogInOutAction: TAction;
180         UnSelectedListViewAction: TAction;
181         WikiFAQWebPageAction: TAction;
182         ToobarImageList: TImageList;
183         procedure EditNGActionExecute(Sender: TObject);
184         procedure ReloadActionExecute(Sender: TObject);
185         procedure GoFowardActionExecute(Sender: TObject);
186         procedure GoBackActionExecute(Sender: TObject);
187         procedure MoveToActionExecute(Sender: TObject);
188         procedure FavoriteAddActionExecute(Sender: TObject);
189         procedure FavoriteArrangeActionExecute(Sender: TObject);
190         procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
191         procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
192         procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
193         procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
194         procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
195         procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
196         procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
197         procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
198         procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
199         procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
200         procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
201         procedure OnlyAHundredResActionExecute(Sender: TObject);
202         procedure OnlyKokoResActionExecute(Sender: TObject);
203         procedure OnlyNewResActionExecute(Sender: TObject);
204         procedure BrowserMaxActionExecute(Sender: TObject);
205         procedure BrowserMinActionExecute(Sender: TObject);
206         procedure ScrollTopActionExecute(Sender: TObject);
207         procedure ScrollLastActionExecute(Sender: TObject);
208         procedure ScrollNewActionExecute(Sender: TObject);
209         procedure ScrollKokoActionExecute(Sender: TObject);
210         procedure ScrollKokoActionUpdate(Sender: TObject);
211         procedure EditorActionExecute(Sender: TObject);
212         procedure IEActionExecute(Sender: TObject);
213         procedure ShowThreadActionExecute(Sender: TObject);
214         procedure ShowBoardActionExecute(Sender: TObject);
215         procedure URLCopyActionExecute(Sender: TObject);
216         procedure NameCopyActionExecute(Sender: TObject);
217         procedure NameURLCopyActionExecute(Sender: TObject);
218         procedure ItemReloadActionExecute(Sender: TObject);
219         procedure BrowserTabCloseActionExecute(Sender: TObject);
220         procedure BrowserTabCloseActionUpdate(Sender: TObject);
221         procedure NotSelectTabCloseActionExecute(Sender: TObject);
222         procedure NotSelectTabCloseActionUpdate(Sender: TObject);
223         procedure AllTabCloseActionExecute(Sender: TObject);
224         procedure ActiveLogDeleteActionExecute(Sender: TObject);
225         procedure LeftmostTabSelectActionExecute(Sender: TObject);
226         procedure LeftmostTabSelectActionUpdate(Sender: TObject);
227         procedure LeftTabSelectActionExecute(Sender: TObject);
228         procedure RightTabSelectActionExecute(Sender: TObject);
229         procedure RightTabSelectActionUpdate(Sender: TObject);
230         procedure RightmostTabSelectActionExecute(Sender: TObject);
231         procedure ThreadFavoriteAddActionExecute(Sender: TObject);
232         procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
233         procedure SelectResActionExecute(Sender: TObject);
234         procedure AllResActionExecute(Sender: TObject);
235         procedure ResRangeActionExecute(Sender: TObject);
236         procedure UpBoardActionExecute(Sender: TObject);
237         procedure JumpToNumOfResActionExecute(Sender: TObject);
238         procedure RightTabCloseActionExecute(Sender: TObject);
239         procedure RightTabCloseActionUpdate(Sender: TObject);
240         procedure LeftTabCloseActionExecute(Sender: TObject);
241         procedure DataModuleCreate(Sender: TObject);
242         procedure SearchActionExecute(Sender: TObject);
243         procedure OptionActionExecute(Sender: TObject);
244         procedure RoundActionExecute(Sender: TObject);
245         procedure KeySettingActionExecute(Sender: TObject);
246         procedure KotehanActionExecute(Sender: TObject);
247         procedure ToolBarSettingActionExecute(Sender: TObject);
248         procedure MuteActionExecute(Sender: TObject);
249         procedure TreeSelectBoradReloadExecute(Sender: TObject);
250         procedure TreeSelectThreadReloadExecute(Sender: TObject);
251         procedure TreeSelectURLCopyExecute(Sender: TObject);
252         procedure TreeSelectNameURLCopyExecute(Sender: TObject);
253         procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
254         procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
255         procedure TreeSelectNameCopyExecute(Sender: TObject);
256         procedure LoginActionExecute(Sender: TObject);
257         procedure NewBoardActionExecute(Sender: TObject);
258         procedure LogDeleteActionExecute(Sender: TObject);
259         procedure LogDeleteActionUpdate(Sender: TObject);
260         procedure SelectTextClearActionExecute(Sender: TObject);
261         procedure NameTextClearActionExecute(Sender: TObject);
262         procedure MailTextClearActionExecute(Sender: TObject);
263         procedure ExitActionExecute(Sender: TObject);
264         procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
265         procedure ExportFavoriteFileAccept(Sender: TObject);
266         procedure SelectItemSaveForHTMLExecute(Sender: TObject);
267         procedure SelectItemSaveForDatExecute(Sender: TObject);
268         procedure TabsSaveActionExecute(Sender: TObject);
269         procedure TabsOpenActionExecute(Sender: TObject);
270         procedure TabAutoSaveActionExecute(Sender: TObject);
271         procedure TabAutoLoadActionExecute(Sender: TObject);
272         procedure BeLogInOutActionExecute(Sender: TObject);
273         procedure BeLogInOutActionUpdate(Sender: TObject);
274         procedure KokomadeActionExecute(Sender: TObject);
275         procedure ZenbuActionExecute(Sender: TObject);
276         procedure KokoResActionExecute(Sender: TObject);
277         procedure KoreCopyExecute(Sender: TObject);
278         procedure SameIDResAnchorActionExecute(Sender: TObject);
279         procedure IndividualAbon1ActionExecute(Sender: TObject);
280         procedure IndividualAbon0ActionExecute(Sender: TObject);
281         procedure AntiIndividualAbonActionExecute(Sender: TObject);
282         procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
283         procedure IndividualAbonID1ActionExecute(Sender: TObject);
284         procedure IndividualAbonID0ActionExecute(Sender: TObject);
285         procedure GikoNaviWebPageActionExecute(Sender: TObject);
286         procedure MonazillaWebPageActionExecute(Sender: TObject);
287         procedure BBS2chWebPageActionExecute(Sender: TObject);
288         procedure GikoFolderOpenActionExecute(Sender: TObject);
289         procedure AboutActionExecute(Sender: TObject);
290         procedure GikoHelpActionExecute(Sender: TObject);
291         procedure WikiFAQWebPageActionExecute(Sender: TObject);
292         procedure ListNumberVisibleActionExecute(Sender: TObject);
293         procedure UpFolderActionExecute(Sender: TObject);
294         procedure UpFolderActionUpdate(Sender: TObject);
295         procedure IconStyleExecute(Sender: TObject);
296         procedure AllItemActionExecute(Sender: TObject);
297         procedure LogItemActionExecute(Sender: TObject);
298         procedure NewItemActionExecute(Sender: TObject);
299         procedure ThreadRangeActionExecute(Sender: TObject);
300         procedure SelectItemActionExecute(Sender: TObject);
301         procedure ThreadEditorActionExecute(Sender: TObject);
302         procedure BoardIEActionExecute(Sender: TObject);
303         procedure SelectItemURLCopyActionExecute(Sender: TObject);
304         procedure SelectItemURLCopyActionUpdate(Sender: TObject);
305         procedure SelectItemNameCopyActionExecute(Sender: TObject);
306         procedure SelectItemNameCopyActionUpdate(Sender: TObject);
307         procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
308         procedure SelectListReloadActionExecute(Sender: TObject);
309         procedure SelectListReloadActionUpdate(Sender: TObject);
310         procedure SelectThreadReloadActionExecute(Sender: TObject);
311         procedure SelectThreadReloadActionUpdate(Sender: TObject);
312         procedure SelectReservActionExecute(Sender: TObject);
313         procedure SelectReservActionUpdate(Sender: TObject);
314         procedure SelectNewRoundNameExecute(Sender: TObject);
315         procedure SelectDeleteRoundExecute(Sender: TObject);
316         procedure BoardFavoriteAddActionExecute(Sender: TObject);
317         procedure BoardFavoriteAddActionUpdate(Sender: TObject);
318         procedure LogFolderOpenActionExecute(Sender: TObject);
319         procedure LogFolderOpenActionUpdate(Sender: TObject);
320         procedure BrowsBoradHeadActionExecute(Sender: TObject);
321         procedure SortActiveColumnActionExecute(Sender: TObject);
322         procedure SortNextColumnActionExecute(Sender: TObject);
323         procedure SortPrevColumnActionExecute(Sender: TObject);
324         procedure StdToolBarVisibleActionExecute(Sender: TObject);
325         procedure AddressBarVisibleActionExecute(Sender: TObject);
326         procedure LinkBarVisibleActionExecute(Sender: TObject);
327         procedure ListToolBarVisibleActionExecute(Sender: TObject);
328         procedure ListNameBarVisibleActionExecute(Sender: TObject);
329         procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
330         procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
331         procedure MsgBarVisibleActionExecute(Sender: TObject);
332         procedure MsgBarCloseActionExecute(Sender: TObject);
333         procedure StatusBarVisibleActionExecute(Sender: TObject);
334         procedure CabinetBBSActionExecute(Sender: TObject);
335         procedure CabinetHistoryActionExecute(Sender: TObject);
336         procedure CabinetFavoriteActionExecute(Sender: TObject);
337         procedure CabinetVisibleActionExecute(Sender: TObject);
338         procedure CabinetCloseActionExecute(Sender: TObject);
339         procedure LargeIconActionExecute(Sender: TObject);
340         procedure SmallIconActionExecute(Sender: TObject);
341         procedure ListIconActionExecute(Sender: TObject);
342         procedure DetailIconActionExecute(Sender: TObject);
343         procedure StopActionExecute(Sender: TObject);
344         procedure ArrangeActionExecute(Sender: TObject);
345         procedure PaneInitActionExecute(Sender: TObject);
346         procedure BrowserTabVisibleActionExecute(Sender: TObject);
347         procedure BrowserTabTopActionExecute(Sender: TObject);
348         procedure BrowserTabBottomActionExecute(Sender: TObject);
349         procedure BrowserTabTabStyleActionExecute(Sender: TObject);
350         procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
351         procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
352         procedure SetFocusForBrowserActionExecute(Sender: TObject);
353         procedure SetFocusForBrowserActionUpdate(Sender: TObject);
354         procedure SetFocusForThreadListActionExecute(Sender: TObject);
355         procedure SetFocusForCabinetActionExecute(Sender: TObject);
356         procedure SetFocusForCabinetActionUpdate(Sender: TObject);
357         procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
358         procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
359         procedure UnSelectedListViewActionExecute(Sender: TObject);
360         procedure KidokuActionExecute(Sender: TObject);
361         procedure MidokuActionExecute(Sender: TObject);
362         procedure AllSelectActionExecute(Sender: TObject);
363         procedure AllSelectActionUpdate(Sender: TObject);
364   private
365         { Private \90é\8c¾ }
366   public
367         { Public \90é\8c¾ }
368   published
369         { Published \90é\8c¾ }
370         //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
371         procedure DependActiveCntentActionUpdate(Sender: TObject);
372         //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82é
373         procedure DependActiveCntentLogActionUpdate(Sender: TObject);
374         //! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
375         procedure DependActiveListTBoardActionUpdate(Sender: TObject);
376   end;
377
378 var
379   GikoDM: TGikoDM;
380
381
382 implementation
383
384 uses
385         Windows, Math, Messages, Dialogs, Clipbrd,
386         Giko, GikoSystem, GikoUtil, BoardGroup,
387         FavoriteArrange, Favorite, Setting, MojuUtils,
388         Editor, ListSelect, Search, Option, Round,
389         KeySetting, Gesture, Kotehan, ToolBarSetting,
390         ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
391         GikoBayesian, About, ShellAPI, Graphics,
392         RoundName, RoundData, Menus, ListViewUtils,
393         ThreadControl;
394
395 const
396         CAPTION_NAME: string = '\83M\83R\83i\83r';
397         USER_SETLINKBAR                                 = WM_USER + 2003;
398
399         ITEM_ICON_SORT1                                 = 12;           //!< \83\\81[\83g\83A\83C\83R\83\93
400         ITEM_ICON_SORT2                                 = 13;           //!< \83\\81[\83g\83A\83C\83R\83\93
401
402         //\83c\81[\83\8b\83o\81[\83A\83C\83R\83\93
403         TOOL_ICON_HEIGHT_MAX            = 16;           //!< \8d\82\82³\8dÅ\91å\83A\83C\83R\83\93
404         TOOL_ICON_HEIGHT_MIN            = 17;           //!< \8d\82\82³\8dÅ\8f¬\83A\83C\83R\83\93
405         TOOL_ICON_HEIGHT_NORMAL = 18;           //!< \8d\82\82³\95W\8f\80\83A\83C\83R\83\93
406         TOOL_ICON_WIDTH_MAX             = 19;           //!< \95\9d\8dÅ\91å\83A\83C\83R\83\93
407         TOOL_ICON_WIDTH_MIN             = 20;           //!< \95\9d\8dÅ\8f¬\83A\83C\83R\83\93
408         TOOL_ICON_WIDTH_NORMAL  = 21;           //!< \95\9d\95W\8f\80\83A\83C\83R\83\93
409
410         TOOL_ICON_FAV_FOLDER            = 30;           //!< \82¨\8bC\82É\93ü\82è\83t\83H\83\8b\83_\83A\83C\83R\83\93
411         TOOL_ICON_FAV_BOARD                     = 31;           //!< \82¨\8bC\82É\93ü\82è\94Â\83A\83C\83R\83\93
412         TOOL_ICON_FAV_THREAD            = 32;           //!< \82¨\8bC\82É\93ü\82è\83X\83\8c\83A\83C\83R\83\93
413
414         //! \83M\83R\83i\83r\83T\83C\83g\82ÌURL
415         URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
416         //! Monazilla\83T\83C\83g\82ÌURL
417         URL_MONAZILLA: string = 'http://www.monazilla.org/';
418         //! 2\82¿\82á\82ñ\82Ë\82é\82ÌURL
419         URL_2ch: string = 'http://www.2ch.net/';
420         //! \83M\83R\83i\83rWiki\82ÌURL
421         URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
422
423         SELECTCOMBOBOX_NAME: string = ''; // '\83X\83\8c\83b\83h\8di\8d\9e\8c\9f\8dõ';
424         SELECTCOMBOBOX_COLOR: TColor = clWindow;
425
426 {$R *.dfm}
427 // *************************************************************************
428 //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
429 // *************************************************************************
430 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
431 begin
432         TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
433 end;
434 // *************************************************************************
435 //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é
436 // *************************************************************************
437 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
438 begin
439         TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
440                                                                         and (GikoForm.GetActiveContent.IsLogFile);
441 end;
442 // *************************************************************************
443 //! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
444 // *************************************************************************
445 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
446 begin
447         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
448 end;
449 // *************************************************************************
450 //! NG\83\8f\81[\83h\95Ò\8fW
451 // *************************************************************************
452 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
453 begin
454         //\83e\83L\83X\83g\82É\8aÖ\98A\95t\82¯\82ç\82ê\82½\83A\83v\83\8a\82ÅNG\83\8f\81[\83h\83t\83@\83C\83\8b\82ð\83I\81[\83v\83\93
455         GikoSys.FAbon.EditNGwords;
456 end;
457 // *************************************************************************
458 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\8dÄ\93Ç\82Ý\8d\9e\82Ý\81j
459 // *************************************************************************
460 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
461 begin
462         //\83\8a\83\8d\81[\83h\82ð\8eÀ\8ds\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
463         if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
464                 MsgBox(GikoForm.Handle, 'NG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8dÄ\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
465         end else begin
466                 //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
467                 GikoForm.RepaintAllTabsBrowser();
468         end;
469 end;
470 // *************************************************************************
471 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\8cã\82ë\81j
472 // *************************************************************************
473 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
474 var
475         s: string;
476 begin
477         //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
478         if GikoSys.FAbon.GoBack =false then begin
479                 MsgBox(GikoForm.Handle, '\88ê\82Â\8cã\82ë\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
480         end else begin
481                 //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
482                 s := GikoSys.FAbon.NGwordname;
483                 GikoForm.StatusBar.Panels.Items[2].Text := s;
484                 //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
485                 GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
486                 GikoForm.StatusBarResize(Sender);
487                 //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
488                 GikoForm.RepaintAllTabsBrowser();
489         end;
490 end;
491 // *************************************************************************
492 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\91O\81j
493 // *************************************************************************
494 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
495 var
496         s: string;
497 begin
498         //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
499         if GikoSys.FAbon.GoForward =false then begin
500                 MsgBox(GikoForm.Handle, '\88ê\82Â\91O\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
501         end else begin
502         //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
503                 s := GikoSys.FAbon.NGwordname;
504                 GikoForm.StatusBar.Panels.Items[2].Text := s;
505         //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
506                 GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
507                 GikoForm.StatusBarResize(Sender);
508         //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
509                 GikoForm.RepaintAllTabsBrowser();
510         end;
511 end;
512 // *************************************************************************
513 //! \83A\83h\83\8c\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83A\83h\83\8c\83X\82Ö\88Ú\93®\82·\82é
514 // *************************************************************************
515 procedure TGikoDM.MoveToActionExecute(Sender: TObject);
516 var
517         URL: string;
518         idx: Integer;
519 begin
520         //\83A\83h\83\8c\83X\83R\83\93\83{\83{\83b\83N\83X\82©\82çURL\82ð\8eæ\93¾
521         URL := Trim(GikoForm.AddressComboBox.Text);
522         //URL\82É\88Ú\93®
523         GikoForm.MoveToURL(URL);
524         //\88È\89º\81A\97\9a\97ð\82Ì\8f\88\97\9d
525         idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
526         if idx = -1 then begin
527                 GikoForm.AddressComboBox.Items.Insert(0, URL);
528                 if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
529                         GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
530         end else begin
531                 GikoForm.AddressComboBox.Items.Delete(idx);
532                 GikoForm.AddressComboBox.Items.Insert(0, URL);
533         end;
534 end;
535 // *************************************************************************
536 //! \82¨\8bC\82É\93ü\82è\82Ì\92Ç\89Á\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
537 // *************************************************************************
538 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
539 begin
540         GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
541 end;
542 // *************************************************************************
543 //! \82¨\8bC\82É\93ü\82è\82Ì\90®\97\9d\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
544 // *************************************************************************
545 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
546 var
547         Dlg: TFavoriteArrangeDialog;
548 begin
549         Dlg := TFavoriteArrangeDialog.Create(GikoForm);
550         try
551                 Dlg.ShowModal;
552         finally
553                 Dlg.Release;
554         end;
555         //\83\8a\83\93\83N\83o\81[\82É\8dX\90V\82ð\93`\82¦\82é
556         PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
557 end;
558 // *************************************************************************
559 //! \83c\83\8a\81[\82ð\91S\82Ä\95Â\82\82é
560 // *************************************************************************
561 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
562 var
563         node    : TTreeNode;
564 begin
565         node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
566         try
567                 //\83m\81[\83h\82ª\91±\82­\8cÀ\82è\81@\83m\81[\83h\82ð\8fk\8f¬\82³\82¹\82é
568                 while node <> nil do begin
569                         if node.HasChildren then
570                                 node.Expanded := False;
571                         node := node.GetNext;
572                 end;
573         except
574         end;
575 end;
576 // *************************************************************************
577 //! \82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\95Ò\8fW\82·\82é
578 // *************************************************************************
579 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
580 var
581         node : TTreeNode;
582 begin
583
584         if GikoForm.ClickNode = nil then
585                 Exit;
586         if GikoForm.ClickNode.IsFirstNode then
587                 Exit;
588         if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
589                 Exit;
590         GikoForm.FavoriteTreeView.ReadOnly := False;
591         if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
592                 node := GikoForm.ClickNode.Parent;
593                 while node <> nil do begin
594                         node.Expanded   := True;
595                         node                                    := node.Parent;
596                 end;
597                 GikoForm.ClickNode.EditText;
598         end else begin
599                 GikoForm.ClickNode.Text := InputBox( '\96¼\91O\82Ì\95Ï\8dX', '\82¨\8bC\82É\93ü\82è\82Ì\90V\82µ\82¢\96¼\91O\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢', GikoForm.ClickNode.Text );
600         end;
601
602         GikoForm.SetLinkBar;
603 end;
604 // *************************************************************************
605 //! \90V\82µ\82­\82¨\8bC\82É\93ü\82è\82É\83t\83H\83\8b\83_\82ð\8dì\90¬\82·\82é
606 // *************************************************************************
607 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
608 var
609         NewFavFolder: TFavoriteFolder;
610         Node: TTreeNode;
611 begin
612
613         if GikoForm.ClickNode = nil then
614                 Exit;
615
616         try
617                 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
618                         GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
619                         GikoForm.ClickNode := GikoForm.ClickNode.Parent;
620                 end;
621
622                 NewFavFolder := TFavoriteFolder.Create;
623                 Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '\90V\82µ\82¢\83t\83H\83\8b\83_', NewFavFolder);
624                 Node.ImageIndex := 14;
625                 Node.SelectedIndex := 14;
626         //                      FClickNode.Selected.Expanded := True;
627                 GikoForm.FavoriteTreeView.Selected := Node;
628                 GikoForm.ClickNode := Node;
629                 FavoriteTreeViewRenameAction.Execute;
630         finally
631         end;
632
633 end;
634 // *************************************************************************
635 //! \82±\82Ì\82¨\8bC\82É\93ü\82è\82ð\8dí\8f\9c\82·\82é
636 // *************************************************************************
637 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
638 const
639         DEL_LINK_MSG = '\81g\83\8a\83\93\83N\81h\82Í\83\8a\83\93\83N\83o\81[\97p\83t\83H\83\8b\83_\82Å\82·\81B\8dí\8f\9c\82µ\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
640         DEL_MSG = '\81g^0\81h\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
641         DEL_TITLE = '\8dí\8f\9c\8am\94F';
642 begin
643
644         if GikoForm.ClickNode = nil then
645                 Exit;
646         if GikoForm.ClickNode.IsFirstNode then
647                 Exit;
648         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
649                 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
650                         if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
651                                 Exit;
652                 end else begin
653                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
654                                 Exit;
655                 end;
656         end;
657
658         GikoForm.ClickNode.Delete;
659
660         GikoForm.SetLinkBar;
661
662 end;
663 // *************************************************************************
664 //! \82±\82Ì\83t\83H\83\8b\83_\82É\93ü\82Á\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\91S\82Ä\8aJ\82­
665 // *************************************************************************
666 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
667   Sender: TObject);
668 begin
669         GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
670 end;
671 // *************************************************************************
672 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
673 // *************************************************************************
674 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
675 var
676         ThreadItem: TThreadItem;
677         FavThread: TFavoriteThreadItem;
678         Board: TBoard;
679         FavBoard: TFavoriteBoardItem;
680         shiftDown: Boolean;
681 begin
682
683         if GikoForm.ClickNode = nil then Exit;
684
685         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
686
687         if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
688                 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
689                 ThreadItem := FavThread.Item;
690                 if ThreadItem <> nil then
691                         GikoForm.DownloadContent(ThreadItem, shiftDown);
692         end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
693                 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
694                 Board := FavBoard.Item;
695                 GikoForm.DownloadList(Board, shiftDown);
696         end;
697
698 end;
699 // *************************************************************************
700 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
701 // *************************************************************************
702 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
703 var
704         FavThread       : TFavoriteThreadItem;
705         FavBoard        : TFavoriteBoardItem;
706         s                                       : string;
707 begin
708
709         if GikoForm.ClickNode = nil then Exit;
710
711         if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
712
713                 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
714                 s := FavThread.URL + #13#10;
715                 if s <> '' then
716                         Clipboard.AsText := s;
717
718         end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
719
720                 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
721                 s := FavBoard.URL + #13#10;
722                 if s <> '' then
723                         Clipboard.AsText := s;
724
725         end;
726 end;
727 // *************************************************************************
728 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
729 // *************************************************************************
730 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
731 var
732         ThreadItem: TThreadItem;
733         FavThread: TFavoriteThreadItem;
734         Board: TBoard;
735         FavBoard: TFavoriteBoardItem;
736         s: string;
737 begin
738
739         if GikoForm.ClickNode = nil then Exit;
740
741         if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
742
743                 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
744                 ThreadItem := FavThread.Item;
745
746                 try
747                         s := ThreadItem.Title + #13#10;
748                         if s <> '' then
749                                 Clipboard.AsText := s;
750                 finally
751                 end;
752
753         end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
754
755                 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
756                 Board := FavBoard.Item;
757                 if Board <> nil then
758                         if not Board.IsThreadDatRead then
759                                 GikoSys.ReadSubjectFile(Board);
760
761                 try
762                         s := Board.Title + #13#10;
763                         if s <> '' then
764                                 Clipboard.AsText := s;
765                 finally
766                 end;
767
768         end;
769
770 end;
771 // *************************************************************************
772 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
773 // *************************************************************************
774 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
775   Sender: TObject);
776 var
777         ThreadItem: TThreadItem;
778         FavThread: TFavoriteThreadItem;
779         Board: TBoard;
780         FavBoard: TFavoriteBoardItem;
781         s: string;
782 begin
783
784         if GikoForm.ClickNode = nil then Exit;
785
786         if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
787
788                 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
789                 ThreadItem := FavThread.Item;
790
791                 try
792                         s := ThreadItem.Title + #13#10 + ThreadItem.URL + #13#10;
793                         if s <> '' then
794                                 Clipboard.AsText := s;
795                 finally
796                 end;
797
798         end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
799
800                 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
801                 Board := FavBoard.Item;
802                 if Board <> nil then
803                         if not Board.IsThreadDatRead then
804                                 GikoSys.ReadSubjectFile(Board);
805
806                 try
807                         s := Board.Title + #13#10 + Board.URL + #13#10;
808                         if s <> '' then
809                                 Clipboard.AsText := s;
810                 finally
811                 end;
812
813         end;
814
815 end;
816 // *************************************************************************
817 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
818 // *************************************************************************
819 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
820 const
821         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
822         DEL_TITLE = '\8dí\8f\9c\8am\94F';
823 var
824         ThreadItem: TThreadItem;
825         FavThread: TFavoriteThreadItem;
826 begin
827
828         if GikoForm.ClickNode = nil then Exit;
829         if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
830
831         FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
832         ThreadItem := FavThread.Item;
833
834         try
835                 if GikoSys.Setting.DeleteMsg then begin
836                         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
837                                 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
838                                         Exit;
839                 end;
840
841                 GikoForm.DeleteHistory(ThreadItem);
842                 GikoForm.DeleteTab(ThreadItem);
843                 ThreadItem.DeleteLogFile;
844
845                 GikoForm.ListView.Refresh;
846         finally
847         end;
848
849 end;
850 // *************************************************************************
851 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
852 // *************************************************************************
853 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
854   Sender: TObject);
855 var
856         threadItem      : TThreadItem;
857 begin
858
859         if GikoForm.ClickNode = nil then Exit;
860
861         if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
862
863                 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
864                 if threadItem = nil then
865                         Exit;
866                 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
867
868         end;
869 end;
870 // *************************************************************************
871 //! \8dÅ\90V100\83\8c\83X\82Ì\82Ý\95\\8e¦
872 // *************************************************************************
873 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
874 var
875         FilterList : TStringList;
876 begin
877         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
878                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
879
880         GikoForm.ResRangeMenuSelect     := 100;
881         OnlyAHundredResAction.Checked   := True;
882
883         if GikoSys.ResRange <> 100 then begin
884                 GikoSys.ResRange        := 100;
885
886                 // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
887                 FilterList := TStringList.Create;
888                 try
889                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
890                         GikoSys.FSelectResFilter.Reverse := False;
891                 finally
892                         FilterList.Free;
893                 end;
894
895                 GikoForm.SelectResWord := '';
896                 GikoForm.RepaintAllTabsBrowser();
897         end;
898 end;
899 // *************************************************************************
900 //! \96¢\93Ç\83\8c\83X\82Ì\82Ý\95\\8e¦
901 // *************************************************************************
902 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
903 var
904         FilterList : TStringList;
905 begin
906         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
907                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
908
909         GikoForm.ResRangeMenuSelect     := Ord( grrKoko );
910         OnlyKokoResAction.Checked       := True;
911
912         if GikoSys.ResRange <> Ord( grrKoko ) then begin
913                 GikoSys.ResRange                                        := Ord( grrKoko );
914
915                 // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
916                 FilterList := TStringList.Create;
917                 try
918                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
919                         GikoSys.FSelectResFilter.Reverse := False;
920                 finally
921                         FilterList.Free;
922                 end;
923
924                 GikoForm.SelectResWord := '';
925                 GikoForm.RepaintAllTabsBrowser();
926         end;
927 end;
928 // *************************************************************************
929 //! \90V\92\85\83\8c\83X\82Ì\82Ý\95\\8e¦
930 // *************************************************************************
931 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
932 var
933         FilterList : TStringList;
934 begin
935         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
936                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
937
938         GikoForm.ResRangeMenuSelect     := Ord( grrNew );
939         OnlyNewResAction.Checked        := True;
940
941         if GikoSys.ResRange <> Ord( grrNew ) then begin
942                 GikoSys.ResRange                                        := Ord( grrNew );
943
944                 // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
945                 FilterList := TStringList.Create;
946                 try
947                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
948                         GikoSys.FSelectResFilter.Reverse := False;
949                 finally
950                         FilterList.Free;
951                 end;
952
953                 GikoForm.SelectResWord := '';
954                 GikoForm.RepaintAllTabsBrowser();
955         end;
956 end;
957 // *************************************************************************
958 //! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\91å\82«\82­\95\\8e¦\82·\82é
959 // *************************************************************************
960 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
961 begin
962         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
963                 case GikoSys.Setting.ListWidthState of
964                         glsMax: begin
965                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
966                                 if GikoForm.ActiveContent <> nil then
967                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
968                                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
969                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
970                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
971                                 GikoSys.Setting.ListWidthState := glsNormal;
972                                 if GikoForm.ActiveContent <> nil then
973                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
974                         end;
975                         glsMin, glsNormal: begin
976                                 //\8dÅ\91å\95\\8e¦\82É\82·\82é
977                                 if GikoForm.ActiveContent <> nil then
978                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
979                                 if GikoSys.Setting.ListWidthState = glsNormal then
980                                         GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
981                                 if GikoForm.ActiveContent <> nil then
982                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
983                                 GikoForm.ViewPanel.Width := 1;
984                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
985                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
986                                 GikoSys.Setting.ListWidthState := glsMax;
987                         end;
988                 end;
989         end else begin
990                 case GikoSys.Setting.ListHeightState of
991                         glsMax: begin
992                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
993                                 if GikoForm.ActiveContent <> nil then
994                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
995                                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
996                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
997                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
998                                 GikoSys.Setting.ListHeightState := glsNormal;
999                                 if GikoForm.ActiveContent <> nil then
1000                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1001                         end;
1002                         glsMin, glsNormal: begin
1003                                 //\8dÅ\91å\95\\8e¦\82É\82·\82é
1004                                 if GikoForm.ActiveContent <> nil then
1005                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
1006                                 if GikoSys.Setting.ListHeightState = glsNormal then
1007                                         GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
1008                                 if GikoForm.ActiveContent <> nil then
1009                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1010                                 GikoForm.ViewPanel.Height := 1;
1011                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1012                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1013                                 GikoSys.Setting.ListHeightState := glsMax;
1014                         end;
1015                 end;
1016         end;
1017 end;
1018 // *************************************************************************
1019 //! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\8f¬\82³\82­\95\\8e¦\82·\82é
1020 // *************************************************************************
1021 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
1022 begin
1023         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1024                 case GikoSys.Setting.ListWidthState of
1025                         glsMax, glsNormal: begin
1026                                 //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
1027                                 if GikoForm.ActiveContent <> nil then
1028                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
1029                                 if GikoSys.Setting.ListWidthState = glsNormal then
1030                                         GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
1031                                 if GikoForm.ActiveContent <> nil then
1032                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1033                                 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
1034                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1035                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1036                                 GikoSys.Setting.ListWidthState := glsMin;
1037                         end;
1038                         glsMin: begin
1039                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
1040                                 if GikoForm.ActiveContent <> nil then
1041                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
1042                                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
1043                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1044                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1045                                 GikoSys.Setting.ListWidthState := glsNormal;
1046                                 if GikoForm.ActiveContent <> nil then
1047                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1048                         end;
1049                 end;
1050         end else begin
1051                 case GikoSys.Setting.ListHeightState of
1052                         glsMax, glsNormal: begin
1053                                 //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
1054                                 if GikoForm.ActiveContent <> nil then
1055                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
1056                                 if GikoSys.Setting.ListHeightState = glsNormal then
1057                                         GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
1058                                 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
1059                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1060                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1061                                 GikoSys.Setting.ListHeightState := glsMin;
1062                                 if GikoForm.ActiveContent <> nil then
1063                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1064                         end;
1065                         glsMin: begin
1066                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
1067                                 if GikoForm.ActiveContent <> nil then
1068                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
1069                                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
1070                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1071                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1072                                 GikoSys.Setting.ListHeightState := glsNormal;
1073                                 if GikoForm.ActiveContent <> nil then
1074                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
1075                         end;
1076                 end;
1077         end;
1078 end;
1079 // *************************************************************************
1080 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90æ\93ª\82Ö\88Ú\93®\82·\82é
1081 // *************************************************************************
1082 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1083 begin
1084         GikoForm.BrowserMovement('top');
1085 end;
1086 // *************************************************************************
1087 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\8dÅ\8cã\82Ö\88Ú\93®\82·\82é
1088 // *************************************************************************
1089 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1090 begin
1091         GikoForm.BrowserMovement('bottom');
1092 end;
1093 // *************************************************************************
1094 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90V\92\85\82Ö\88Ú\93®\82·\82é
1095 // *************************************************************************
1096 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1097 begin
1098         GikoForm.BrowserMovement('new');
1099 end;
1100 // *************************************************************************
1101 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é
1102 // *************************************************************************
1103 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1104 begin
1105         GikoForm.BrowserMovement('koko');
1106 end;
1107 // *************************************************************************
1108 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é\82ÌUpdate\83C\83x\83\93\83g
1109 // *************************************************************************
1110 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1111 begin
1112         ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1113                                                                 and (GikoForm.GetActiveContent.IsLogFile)
1114                                                                 and (GikoForm.GetActiveContent.Kokomade <> -1);
1115 end;
1116 // *************************************************************************
1117 //! \83\8c\83X\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
1118 // *************************************************************************
1119 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1120 var
1121         Editor: TEditorForm;
1122         Item: TThreadItem;
1123 begin
1124         Item := GikoForm.GetActiveContent;
1125         if Item = nil then Exit;
1126         Editor := TEditorForm.Create(GikoForm.GetMainForm);
1127         Editor.SetThreadItem(Item);
1128         GikoSys.LoadEditorKeySetting(Editor.ActionList);
1129         Editor.Show;
1130         Editor.BodyEdit.SetFocus;
1131 end;
1132 // *************************************************************************
1133 //! \83X\83\8c\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1134 // *************************************************************************
1135 procedure TGikoDM.IEActionExecute(Sender: TObject);
1136 begin
1137         ShowThreadAction.Execute;
1138 end;
1139 // *************************************************************************
1140 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1141 // *************************************************************************
1142 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1143 var
1144         ThreadItem: TThreadItem;
1145 begin
1146         ThreadItem := GikoForm.GetActiveContent;
1147         if ThreadItem = nil then Exit;
1148         GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1149 end;
1150 // *************************************************************************
1151 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1152 // *************************************************************************
1153 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1154 var
1155         ThreadItem: TThreadItem;
1156 begin
1157         ThreadItem := GikoForm.GetActiveContent;
1158         if ThreadItem = nil then Exit;
1159         GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1160 end;
1161 // *************************************************************************
1162 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
1163 // *************************************************************************
1164 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1165 var
1166         s: string;
1167 begin
1168         s := '';
1169         if TObject(GikoForm.GetActiveContent) is TBoard then
1170                 s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1171         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1172                 s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1173         if s <> '' then
1174                 Clipboard.AsText := s;
1175 end;
1176 // *************************************************************************
1177 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ð\83R\83s\81[\82·\82é
1178 // *************************************************************************
1179 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1180 var
1181         s: string;
1182 begin
1183         s := '';
1184         if TObject(GikoForm.GetActiveContent) is TBoard then
1185                 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1186         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1187                 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1188         if s <> '' then
1189                 Clipboard.AsText := s;
1190 end;
1191 // *************************************************************************
1192 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ÆURL\82ð\83R\83s\81[\82·\82é
1193 // *************************************************************************
1194 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1195 var
1196         s: string;
1197 begin
1198         s := '';
1199         if TObject(GikoForm.GetActiveContent) is TBoard then
1200                 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1201         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1202                 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1203         if s <> '' then
1204                 Clipboard.AsText := s;
1205 end;
1206 // *************************************************************************
1207 //! \95\\8e¦\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1208 // *************************************************************************
1209 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1210 var
1211         ThreadItem: TThreadItem;
1212         shiftDown: Boolean;
1213 begin
1214         ThreadItem := GikoForm.GetActiveContent;
1215         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1216         if ThreadItem <> nil then
1217                 GikoForm.DownloadContent(ThreadItem, shiftDown);
1218 end;
1219 // *************************************************************************
1220 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82ð\95Â\82\82é
1221 // *************************************************************************
1222 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1223 var
1224         idx: Integer;
1225 begin
1226         idx := GikoForm.BrowserTab.TabIndex;
1227         if idx <> -1 then begin
1228                 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1229                         GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1230                 end;
1231         end;
1232 end;
1233 // *************************************************************************
1234 //! \83^\83u\82ª\82P\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
1235 // *************************************************************************
1236 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1237 begin
1238         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1239 end;
1240 // *************************************************************************
1241 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\88È\8aO\82ð\95Â\82\82é
1242 // *************************************************************************
1243 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1244 var
1245         i: Integer;
1246         idx: Integer;
1247 begin
1248         idx := GikoForm.BrowserTab.TabIndex;
1249         if idx = -1 then Exit;
1250         GikoForm.BrowserTab.Tabs.BeginUpdate;
1251         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1252                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1253                 GikoForm.BrowserTab.Tabs.Delete(i);
1254         end;
1255         if idx > 0 then begin
1256                 for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1257                         TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1258                         GikoForm.BrowserTab.Tabs.Delete(i);
1259                 end;
1260         end;
1261         GikoForm.BrowserTab.Tabs.EndUpdate;
1262 end;
1263 // *************************************************************************
1264 //! \83^\83u\82ª\82Q\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
1265 // *************************************************************************
1266 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1267 begin
1268         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1269 end;
1270 // *************************************************************************
1271 //! \91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82é
1272 // *************************************************************************
1273 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1274 var
1275         i: Integer;
1276 begin
1277         if GikoSys.Setting.ShowDialogForAllTabClose then
1278                 if(MessageDlg('\91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1279                         Exit;
1280
1281         GikoForm.ActiveContent := nil;
1282         GikoForm.BrowserNullTab.Thread := nil;
1283         GikoForm.BrowserTab.OnChange := nil;
1284         GikoForm.BrowserTab.Tabs.BeginUpdate;
1285         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1286                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1287         end;
1288         GikoForm.BrowserTab.Tabs.Clear;
1289         GikoForm.BrowserTab.Tabs.EndUpdate;
1290         GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1291         GikoForm.SetContent(GikoForm.BrowserNullTab);
1292         GikoForm.Caption := CAPTION_NAME ;
1293 end;
1294 // *************************************************************************
1295 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82Ì\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
1296 // *************************************************************************
1297 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1298 const
1299         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1300         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1301 var
1302         idx: Integer;
1303         ThreadItem: TThreadItem;
1304 begin
1305         idx := GikoForm.BrowserTab.TabIndex;
1306         if idx <> -1 then begin
1307                 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1308                         ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1309                         if GikoSys.Setting.DeleteMsg then
1310                                 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1311                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1312                                                 Exit;
1313                         GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1314                         ThreadItem.DeleteLogFile;
1315                         if ThreadItem.ParentBoard = GikoForm.ActiveList then
1316                                 GikoForm.ListView.Refresh;
1317                 end;
1318         end;
1319 end;
1320 // *************************************************************************
1321 //! \88ê\94Ô\8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1322 // *************************************************************************
1323 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1324 begin
1325         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1326                 GikoForm.BrowserTab.TabIndex := 0;
1327                 GikoForm.BrowserTab.OnChange(nil);
1328         end;
1329 end;
1330 // *************************************************************************
1331 //! \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82Ì\83C\83\93\83f\83b\83N\83X\82ª\82O\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1332 // *************************************************************************
1333 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1334 begin
1335         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1336                                                                 and (GikoForm.BrowserTab.TabIndex <> 0);
1337 end;
1338 // *************************************************************************
1339 //! \8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1340 // *************************************************************************
1341 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1342 begin
1343         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1344                 if GikoForm.BrowserTab.TabIndex = -1 then begin
1345                         GikoForm.BrowserTab.TabIndex := 0;
1346                         GikoForm.BrowserTab.OnChange(nil);
1347                 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1348                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1349                         GikoForm.BrowserTab.OnChange(nil);
1350                 end;
1351         end;
1352 end;
1353 // *************************************************************************
1354 //! \89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1355 // *************************************************************************
1356 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1357 begin
1358         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1359                 if GikoForm.BrowserTab.TabIndex = -1 then begin
1360                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1361                         GikoForm.BrowserTab.OnChange(nil);
1362                 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1363                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1364                         GikoForm.BrowserTab.OnChange(nil);
1365                 end;
1366         end;
1367 end;
1368 // *************************************************************************
1369 //! \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82ª\89E\92[\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1370 // *************************************************************************
1371 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1372 begin
1373         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1374                                                                 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1375 end;
1376 // *************************************************************************
1377 //! \88ê\94Ô\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1378 // *************************************************************************
1379 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1380 begin
1381         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1382                 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1383                 GikoForm.BrowserTab.OnChange(nil);
1384         end;
1385 end;
1386 // *************************************************************************
1387 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á
1388 // *************************************************************************
1389 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1390 begin
1391         if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1392                 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1393 end;
1394 // *************************************************************************
1395 //! \83X\83\8c\83b\83h\88ê\97\97\82Å\81A\83X\83\8c\82ª\82P\82Â\88È\8fã\91I\91ð\82³\82ê\82Ä\82¢\82é\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1396 // *************************************************************************
1397 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1398 begin
1399         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1400                                                                         and (GikoForm.ListView.SelCount > 0);
1401 end;
1402 // *************************************************************************
1403 //! \83\8c\83X\82Ì\93à\97e\82ð\8di\82è\8d\9e\82Þ
1404 // *************************************************************************
1405 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1406 var
1407         Dlg: TListSelectDialog;
1408         FilterList : TStringList;
1409         idx : Integer;
1410 begin
1411         Dlg := TListSelectDialog.Create(GikoForm);
1412         try
1413                 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1414                 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1415                 Dlg.ShowModal;
1416                 if Dlg.ModalResult = mrOK then begin
1417                         SelectResAction.Checked := True;
1418                         if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1419                                 // \8bó\93ü\97Í\82Å OK \82Í\8di\82è\8d\9e\82Ý\89ð\8f\9c\82Æ\93¯\88Ó\8b`
1420                                 ResRangeAction.Execute;
1421                         end else begin
1422                                 GikoSys.ResRange := Ord( grrSelect );
1423
1424                                 // \8dÅ\8cã\82É\90Ý\92è\82µ\82½\82à\82Ì\82ð\8ao\82¦\82Ä\82¨\82­
1425                                 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1426
1427                                 // \8c\9f\8dõ\97\9a\97ð\82Ì\8dX\90V
1428                                 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1429                                 if idx <> -1 then
1430                                         GikoSys.Setting.SelectTextList.Delete(idx);
1431                                 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1432                                 while Dlg.SelectComboBox.Items.Count > 100 do begin
1433                                         Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1434                                 end;
1435
1436                                 try
1437                                         if GikoForm.SelectComboBoxPanel.Visible then
1438                                                 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1439                                 except
1440                                 end;
1441
1442                                 // \83t\83B\83\8b\83^\82Ì\90Ý\92è
1443                                 FilterList := TStringList.Create;
1444                                 try
1445                                         GikoSys.FSelectResFilter.Reverse := True;
1446                                         FilterList.Delimiter := ' '; //\8bæ\90Ø\82è\8eq\82ð\94¼\8ap\83X\83y\81[\83X\82É\90Ý\92è
1447                                         FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1448
1449                                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1450                                 finally
1451                                         FilterList.Free;
1452                                 end;
1453                                 GikoForm.RepaintAllTabsBrowser();
1454                         end;
1455                 end else begin
1456                         // \83L\83\83\83\93\83Z\83\8b
1457                         if GikoSys.ResRange <> Ord( grrSelect ) then
1458                                 ResRangeAction.Execute;
1459                 end;
1460         finally
1461                 Dlg.Release;
1462         end;
1463
1464 end;
1465 // *************************************************************************
1466 //! \91S\82Ä\82Ì\83\8c\83X\82ð\95\\8e¦\82·\82é
1467 // *************************************************************************
1468 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1469 var
1470         FilterList : TStringList;
1471 begin
1472         if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1473                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1474
1475         GikoForm.ResRangeMenuSelect     := Ord( grrAll );
1476         AllResAction.Checked            := True;
1477
1478         if GikoSys.ResRange <> Ord( grrAll ) then begin
1479                 GikoSys.ResRange := Ord( grrAll );
1480
1481                 // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
1482                 FilterList := TStringList.Create;
1483                 try
1484                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1485                         GikoSys.FSelectResFilter.Reverse := False;
1486                 finally
1487                         FilterList.Free;
1488                 end;
1489
1490                 GikoForm.SelectResWord := '';
1491
1492                 GikoForm.RepaintAllTabsBrowser();
1493         end;
1494 end;
1495 // *************************************************************************
1496 //! \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
1497 // *************************************************************************
1498 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1499 begin
1500         case GikoForm.ResRangeMenuSelect of
1501         Ord( grrAll ):  AllResAction.Execute;
1502         Ord( grrKoko ): OnlyKokoResAction.Execute;
1503         Ord( grrNew ):  OnlyNewResAction.Execute;
1504         100:                    OnlyAHundredResAction.Execute;
1505         end;
1506
1507 end;
1508 // *************************************************************************
1509 //! \82±\82Ì\83X\83\8c\83b\83h\82ð\8aÜ\82Þ\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦
1510 // *************************************************************************
1511 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1512 begin
1513         GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1514 end;
1515 // *************************************************************************
1516 //! \8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô
1517 // *************************************************************************
1518 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1519 var
1520         str: string;
1521         res: integer;
1522 begin
1523         str := '1';
1524         if( InputQuery('\8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô', '\94Ô\8d\86\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢', str) ) then begin
1525                 str := ZenToHan(str);
1526                 res := StrToIntDef(str, -1);
1527                 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1528                         GikoForm.BrowserMovement(IntToStr(res), GikoForm.ActiveContent);
1529                         SetFocusForBrowserAction.Execute;
1530                 end else if res > GikoForm.GetActiveContent.Count then begin
1531                         GikoForm.BrowserMovement(IntToStr(GikoForm.GetActiveContent.Count), GikoForm.ActiveContent);
1532                         SetFocusForBrowserAction.Execute;
1533                 end;
1534         end;
1535 end;
1536 // *************************************************************************
1537 //! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\89E\82ð\95Â\82\82é
1538 // *************************************************************************
1539 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1540 var
1541         i: Integer;
1542         idx: Integer;
1543 begin
1544         idx := GikoForm.BrowserTab.TabIndex;
1545         if idx = -1 then Exit;
1546         GikoForm.BrowserTab.Tabs.BeginUpdate;
1547         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1548                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1549                 GikoForm.BrowserTab.Tabs.Delete(i);
1550         end;
1551         GikoForm.BrowserTab.Tabs.EndUpdate;
1552 end;
1553 // *************************************************************************
1554 //! \83^\83u\82Ì\90\94\82ª\82Q\88È\8fã\82Å\97L\8cø\82ÈUpdate\83C\83x\83\93\83g
1555 // *************************************************************************
1556 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1557 begin
1558         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1559 end;
1560 // *************************************************************************
1561 //! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\8d\82ð\95Â\82\82é
1562 // *************************************************************************
1563 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1564 var
1565         i: Integer;
1566         idx: Integer;
1567 begin
1568         idx := GikoForm.BrowserTab.TabIndex;
1569         if idx = -1 then Exit;
1570         GikoForm.BrowserTab.Tabs.BeginUpdate;
1571         if idx > 0 then begin
1572                 for i := idx - 1 downto 0 do begin
1573                         TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1574                         GikoForm.BrowserTab.Tabs.Delete(i);
1575                 end;
1576         end;
1577         GikoForm.BrowserTab.Tabs.EndUpdate;
1578 end;
1579 ////////////////////////////////\83X\83\8c\83b\83h\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1580 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1581 begin
1582 end;
1583 // *************************************************************************
1584 //! \83\8d\83O\8c\9f\8dõ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1585 // *************************************************************************
1586 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1587 var
1588         chk: TObject;
1589 begin
1590
1591         if GikoForm.SearchDialog = nil then begin
1592                 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1593                         chk := GikoForm.GetActiveList
1594                 else
1595                         chk := nil;
1596
1597                 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1598                 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1599         end;
1600
1601         try
1602                 GikoForm.SearchDialog.Show;
1603         except
1604         end;
1605 end;
1606 // *************************************************************************
1607 //! \83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1608 // *************************************************************************
1609 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1610 var
1611         Dlg: TOptionDialog;
1612 begin
1613         Dlg := TOptionDialog.Create(GikoForm);
1614         try
1615                 Dlg.ShowModal;
1616         finally
1617                 Dlg.Release;
1618         end;
1619 end;
1620 // *************************************************************************
1621 //! \8f\84\89ñ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1622 // *************************************************************************
1623 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1624 var
1625         Dlg: TRoundDialog;
1626 begin
1627         Dlg := TRoundDialog.Create(GikoForm);
1628         try
1629                 Dlg.ShowModal;
1630         finally
1631                 Dlg.Release;
1632         end;
1633 end;
1634 // *************************************************************************
1635 //! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1636 // *************************************************************************
1637 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1638 var
1639         Dlg: TKeySettingForm;
1640 begin
1641         Dlg := TKeySettingForm.Create(GikoForm);
1642         try
1643                 if Dlg.ShowModal = mrOk then begin
1644                         GikoSys.SaveKeySetting(GikoFormActionList);
1645                         GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
1646                         GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1647                 end;
1648
1649         finally
1650                 Dlg.Release;
1651                 MouseGesture.UnHook;
1652                 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1653                 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1654                 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1655                 if GikoSys.Setting.GestureEnabled then begin
1656                         GikoSys.Setting.Gestures.ClearGesture;
1657                         GikoSys.Setting.Gestures.LoadGesture(
1658                                 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1659                         MouseGesture.SetHook( GikoForm.Handle );
1660                 end;
1661         end;
1662 end;
1663 // *************************************************************************
1664 //! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1665 // *************************************************************************
1666 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1667 var
1668         Dlg: TKotehanDialog;
1669 begin
1670         Dlg := TKotehanDialog.Create(GikoForm);
1671         try
1672                 Dlg.ShowModal;
1673         finally
1674                 Dlg.Release;
1675         end;
1676 end;
1677 // *************************************************************************
1678 //! \83c\81[\83\8b\83o\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1679 // *************************************************************************
1680 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1681 var
1682         Dlg: TToolBarSettingDialog;
1683         i: Integer;
1684         //Component: TComponent;
1685         ToolButton : TToolButton;
1686 begin
1687         Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1688         try
1689                 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1690                 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1691                 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1692                 case GikoForm.ToolBarSettingSender of
1693                 tssMain:                Dlg.ToolBarIndex := 0;
1694                 tssList:                Dlg.ToolBarIndex := 1;
1695                 tssBrowser: Dlg.ToolBarIndex := 2;
1696                 end;
1697                 if Dlg.ShowModal = mrOK then begin
1698                         GikoForm.SetToolBarPopup;
1699
1700                         //\8dÅ\93K\95\9d\82ð\8dÄ\90Ý\92è\82·\82é\82½\82ß\82É\93K\93\96\82È\83v\83\8d\83p\83e\83B\82ð\82¢\82\82­\82é
1701                         for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1702                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1703                                         GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1704                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1705                                         GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1706                         end;
1707                         for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1708                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1709                                         GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1710                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1711                                         GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1712                         end;
1713                         for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1714                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1715                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1716                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1717                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1718                         end;
1719
1720                         SaveToolBarSetting(GikoForm.StdToolBar);
1721                         SaveToolBarSetting(GikoForm.ListToolBar);
1722                         //ListToolBar\82É\82¢\82é\82©\82à\82µ\82ê\82È\82¢\8di\8d\9e\82ÝComboBox\82ð\94z\92u
1723                         GikoForm.SelectComboBoxPanel.Visible := False;
1724                         try
1725                                 for i := GikoForm.ListToolBar.ControlCount - 1 downto 0 do
1726                                 begin
1727                                         if GikoForm.ListToolBar.Controls[ i ].Action = SelectItemAction then
1728                                         begin
1729                                                 GikoForm.SelectComboBoxPanel.Left :=
1730                                                         GikoForm.ListToolBar.Controls[ i ].Left;
1731                                                 GikoForm.SelectComboBoxPanel.Width :=
1732                                                         GikoSys.Setting.SelectComboBoxWidth;
1733                                                 GikoForm.SelectComboBoxPanel.Parent :=
1734                                                         GikoForm.ListToolBar;
1735                                                 GikoForm.SelectComboBoxPanel.Visible := True;
1736
1737                                                 GikoForm.SelectComboBox.Left := 0;
1738                                                 GikoForm.SelectComboBox.Top  := 0;
1739                                                 GikoForm.SelectComboBox.Height :=
1740                                                         GikoForm.SelectComboBoxPanel.ClientHeight;
1741                                                 GikoForm.SelectComboBox.Width :=
1742                                                         GikoForm.SelectComboBoxPanel.Width -
1743                                                         GikoForm.SelectComboBoxSplitter.Width;
1744
1745
1746                                                 //\88ê\82Â\8c©\82¦\82È\82¢\83{\83^\83\93\82ð\93Ë\82Á\8d\9e\82Þ
1747                                                 ToolButton := TToolButton(GikoForm.ListToolBar.FindComponent('SelectComboBoxDummy'));
1748                                                 if ToolButton <> nil then begin
1749                                                         ToolButton.Parent := nil;
1750                                                 end else begin
1751                                                         ToolButton := TToolButton.Create(GikoForm.ListToolBar);
1752                                                         ToolButton.Name := 'SelectComboBoxDummy';
1753                                                 end;
1754
1755                                                 ToolButton.Style := tbsSeparator;
1756                                                 ToolButton.Width := 0;
1757                                                 ToolButton.Left  := GikoForm.ListToolBar.Controls[ i ].Left;
1758                                                 GikoForm.ListToolBar.InsertControl(ToolButton);
1759                                                 ToolButton.Visible := False;
1760
1761                                                 // \83X\83\8c\83b\83h\8di\8d\9e\82Ì\97×\82É\83Z\83p\83\8c\81[\83^\82ª\82 \82é\8fê\8d\87\82Í\89B\82·
1762                                                 if (i + 1) < GikoForm.ListToolBar.ControlCount then
1763                                                         if GikoForm.ListToolBar.Controls[ i + 1 ] is TToolButton then
1764                                                                 if TToolButton( GikoForm.ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1765                                                                         GikoForm.ListToolBar.Controls[ i + 1 ].Visible := False;
1766
1767
1768                                                 // \83X\83\8c\83b\83h\8di\8d\9e\83{\83^\83\93\82ð\89B\82·
1769                                                 GikoForm.ListToolBar.Controls[ i ].Visible := False;
1770
1771                                                 break;
1772                                         end;
1773                                 end;
1774                         except
1775                         end;
1776                         GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1777                         SaveToolBarSetting(GikoForm.BrowserToolBar);
1778                 end;
1779         finally
1780                 Dlg.Release;
1781                 GikoForm.ToolBarSettingSender := tssNone;
1782         end;
1783 end;
1784 // *************************************************************************
1785 //! \83~\83\85\81[\83g
1786 // *************************************************************************
1787 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1788 begin
1789         GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1790 end;
1791 ////////////////////////////////\83c\81[\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1792 // *************************************************************************
1793 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1794 // *************************************************************************
1795 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1796 var
1797         Board: TBoard;
1798         TmpTreeNode: TTreeNode;
1799 begin
1800         TmpTreeNode := GikoForm.ClickNode;
1801         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1802         Board := nil;
1803
1804         if TObject(TmpTreeNode.Data) is TBoard then
1805                 Board := TBoard(TmpTreeNode.Data)
1806         else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1807                 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1808
1809         if Board <> nil then
1810                 GikoForm.DownloadList(Board);
1811 end;
1812 // *************************************************************************
1813 //! \91I\91ð\82³\82ê\82½\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1814 // *************************************************************************
1815 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1816 var
1817         ThreadItem: TThreadItem;
1818         TmpTreeNode: TTreeNode;
1819 begin
1820         TmpTreeNode := GikoForm.ClickNode;
1821         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1822         ThreadItem := nil;
1823
1824         if TObject(TmpTreeNode.Data) is TThreadItem then
1825                 ThreadItem := TThreadItem(TmpTreeNode.Data)
1826         else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1827                 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1828
1829         if ThreadItem <> nil then
1830                 GikoForm.DownloadContent(ThreadItem);
1831 end;
1832 // *************************************************************************
1833 //! \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
1834 // *************************************************************************
1835 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1836 var
1837         TmpTreeNode: TTreeNode;
1838         s: string;
1839 begin
1840         TmpTreeNode := GikoForm.ClickNode;
1841         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1842         if TObject(TmpTreeNode.Data) is TBoard then begin
1843                 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1844         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1845                 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1846         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1847                 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1848         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1849                 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1850         end;
1851         Clipboard.AsText := s;
1852 end;
1853 // *************************************************************************
1854 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
1855 // *************************************************************************
1856 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1857 var
1858         TmpTreeNode: TTreeNode;
1859         s: string;
1860 begin
1861         TmpTreeNode := GikoForm.ClickNode;
1862         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1863         if TObject(TmpTreeNode.Data) is TBoard then begin
1864                 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1865         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1866                 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1867         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1868                 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1869         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1870                 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1871         end;
1872         Clipboard.AsText := s;
1873 end;
1874 // *************************************************************************
1875 //! \82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
1876 // *************************************************************************
1877 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1878 begin
1879         GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1880 end;
1881 // *************************************************************************
1882 //! \94Â\96¼\8c\9f\8dõ
1883 // *************************************************************************
1884 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1885 var
1886         s : String;
1887         msg : String;
1888         CurItem : TTreeNode;
1889         next : boolean;
1890 begin
1891         if InputQuery('\94Â\96¼\8c\9f\8dõ','\94Â\96¼\82Ì\93ü\97Í',s) then begin
1892                 next := true;
1893                 while next do begin
1894                         if GikoForm.TreeView.Selected = nil then
1895                                 CurItem := GikoForm.TreeView.Items.GetFirstNode
1896                         else begin
1897                                 CurItem := GikoForm.TreeView.Selected.GetNext;
1898                                 if CurItem = nil then
1899                                         CurItem := GikoForm.TreeView.Items.GetFirstNode;
1900                         end;
1901                         while CurItem <> nil do begin
1902                                 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1903                                         break;
1904                                 end;
1905                                 CurItem := CurItem.GetNext;
1906                         end;
1907                         try
1908                                 if CurItem = nil then begin
1909                                         msg := '\90æ\93ª\82É\96ß\82è\82Ü\82·\82©\81H';
1910                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1911                                                 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1912                                         end else begin
1913                                                 Exit;
1914                                         end;
1915                                         GikoForm.TreeView.Select(CurItem);
1916                                         GikoForm.TreeView.SetFocus;
1917                                 end else begin
1918                                         GikoForm.TreeView.Select(CurItem);
1919                                         GikoForm.TreeView.SetFocus;
1920                                         msg := '\8e\9f\82É\8ds\82«\82Ü\82·\82©\81H';
1921                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1922                                                 next := true;
1923                                         end else begin
1924                                                 next := false;
1925                                         end;
1926                                 end;
1927
1928                         except
1929                                 Exit;
1930                         end;
1931                 end;
1932         end;
1933 end;
1934 // *************************************************************************
1935 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
1936 // *************************************************************************
1937 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1938 var
1939         s: string;
1940 begin
1941         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1942         s := GikoForm.ClickNode.Text;
1943         Clipboard.AsText := s;
1944 end;
1945 ////////////////////////////////\83c\83\8a\81[\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1946 // *************************************************************************
1947 //! \83\8d\83O\83C\83\93\81^\83\8d\83O\83A\83E\83g\82ð\82·\82é
1948 // *************************************************************************
1949 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1950 var
1951         TmpCursor: TCursor;
1952         msg : String;
1953 begin
1954         if GikoSys.Dolib.Connected then begin
1955                 //\83\8d\83O\83A\83E\83g
1956                 GikoSys.Dolib.Disconnect;
1957                 LoginAction.Checked := False;
1958                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogout)), nil, gmiOK);
1959                 LoginAction.Caption := '\83\8d\83O\83C\83\93(&L)';
1960         end else begin
1961                 TmpCursor := GikoForm.ScreenCursor;
1962                 GikoForm.ScreenCursor := crHourGlass;
1963                 try
1964                         //\92Ê\8fí\83\8d\83O\83C\83\93
1965                         if not GikoSys.Setting.ForcedLogin then begin
1966                                 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1967                                 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1968                                 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1969                                 if GikoSys.Setting.ReadProxy then begin
1970                                         GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1971                                         GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1972                                 end else begin
1973                                         GikoSys.Dolib.ProxyAddress := '';
1974                                         GikoSys.Dolib.ProxyPort := 0;
1975                                 end;
1976                                 if GikoSys.Dolib.Connect then begin
1977                                         LoginAction.Checked := True;
1978                                         GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1979                                         LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
1980                                         //LoginToolButton.Style := tbsCheck;
1981                                 end else begin
1982                 //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
1983                                         GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1984                                         GikoForm.PlaySound('Error');
1985                                         LoginAction.Checked := False;
1986                                         //LoginToolButton.Down := False;
1987                                         ///LoginToolButton.Style := tbsButton;
1988                                 end;
1989                         end else begin
1990                                 msg := '\8b­\90§\83\8d\83O\83C\83\93\83\82\81[\83h\82Å\82Í\81C\83T\81[\83o\82Ì\8fØ\96¾\8f\91\82Ì\97L\8cø\90«\82ð\83`\83F\83b\83N\82µ\82Ü\82¹\82ñ\81B' + #13#10
1991                                                 + '\8bU\91\95\83T\81[\83o\82Ì\8fê\8d\87\81A\82 \82È\82½\82Ì\83p\83X\83\8f\81[\83h\93\90\82Ü\82ê\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B' + #13#10
1992                                                 + '\82±\82Ì\83\82\81[\83h\82Å\83\8d\83O\83C\83\93\82ð\8e\8e\82Ý\82Ü\82·\82©\81H' + #13#10;
1993                                 if MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_YESNO or MB_ICONEXCLAMATION) = IDYES  then begin
1994                                         GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1995                                         GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1996                                         GikoSys.Dolib.Password := GikoSys.Setting.Password;
1997                                         if GikoSys.Setting.ReadProxy then begin
1998                                                 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1999                                                 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
2000                                         end else begin
2001                                                 GikoSys.Dolib.ProxyAddress := '';
2002                                                 GikoSys.Dolib.ProxyPort := 0;
2003                                         end;
2004                                         //SSL\8fá\8aQ\97p\8b­\90§\83\8d\83O\83C\83\93
2005                                         GikoSys.Dolib.ForcedConnect;
2006                                         if GikoSys.Dolib.Connect then begin
2007                                                 LoginAction.Checked := True;
2008                                                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
2009                                                 LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
2010                                                 //LoginToolButton.Style := tbsCheck;
2011                                                 end else begin
2012                         //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
2013                                                 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
2014                                                 GikoForm.PlaySound('Error');
2015                                                 LoginAction.Checked := False;
2016                                                 //LoginToolButton.Down := False;
2017                                                 //LoginToolButton.Style := tbsButton;
2018                                         end;
2019                                 end else begin
2020                                         LoginAction.Checked := False;
2021                                         //LoginToolButton.Down := False;
2022                                         //LoginToolButton.Style := tbsButton;
2023                                 end;
2024                         end;
2025                 finally
2026                         GikoForm.ScreenCursor := TmpCursor;
2027                 end;
2028         end;
2029 end;
2030 // *************************************************************************
2031 //! \83{\81[\83h\8dX\90V\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
2032 // *************************************************************************
2033 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
2034 var
2035         Dlg: TNewBoardDialog;
2036         Msg: string;
2037 begin
2038         if GikoForm.EditorFormExists then begin
2039                 Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
2040                 MsgBox(GikoForm.Handle, Msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
2041                 Exit;
2042         end;
2043         Dlg := TNewBoardDialog.Create(GikoForm);
2044         try
2045                 Dlg.ShowModal;
2046         finally
2047                 Dlg.Release;
2048         end;
2049 end;
2050 // *************************************************************************
2051 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
2052 // *************************************************************************
2053 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
2054 const
2055         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
2056         DEL_SAME_MSG = '\82±\82ê\82ç ^0 \8cÂ\82Ì\83X\83\8c\83b\83h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
2057         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2058 var
2059         ThreadItem: TThreadItem;
2060         TmpListItem: TListItem;
2061         List: TList;
2062         i: Integer;
2063 begin
2064         List := TList.Create;
2065         try
2066                 TmpListItem := GikoForm.ListView.Selected;
2067                 while TmpListItem <> nil do begin
2068                         if TObject(TmpListItem.Data) is TThreadItem then begin
2069                                 ThreadItem := TThreadItem(TmpListItem.Data);
2070                                 if ThreadItem.IsLogFile then
2071                                         List.Add(ThreadItem);
2072                         end;
2073                         TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
2074                 end;
2075
2076                 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
2077                         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
2078                                 if List.Count = 1 then begin
2079                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2080                                                 Exit;
2081                                 end else begin
2082                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
2083                                                 Exit;
2084                                 end;
2085                         end;
2086                 end;
2087
2088                 for i := 0 to List.Count - 1 do begin
2089                         ThreadItem := TThreadItem(List[i]);
2090                         GikoForm.DeleteHistory(ThreadItem);
2091                         GikoForm.DeleteTab(ThreadItem);
2092                         ThreadItem.DeleteLogFile;
2093
2094                         GikoForm.TreeView.Refresh;      // UnRead \82Ì\95\\8e¦\82ð\8dX\90V
2095                 end;
2096                 GikoForm.ListView.Refresh;
2097         finally
2098                 List.Free;
2099         end;
2100 end;
2101 // *************************************************************************
2102 //! ActiveList\82ªTBoard\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éAction\82Å\8b¤\92Ê
2103 // *************************************************************************
2104 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
2105 begin
2106         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
2107                                                                 and (GikoForm.ListView.SelCount > 0);
2108 end;
2109 // *************************************************************************
2110 //! \8di\8d\9e\82Ý\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2111 // *************************************************************************
2112 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
2113 const
2114         DEL_MSG = '\8di\8d\9e\82Ý\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
2115         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2116 begin
2117         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2118                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2119                         Exit;
2120         GikoSys.Setting.SelectTextList.Clear;
2121         GikoForm.SelectComboBox.Items.Clear;
2122         GikoForm.SelectComboBox.Text := '';
2123         GikoForm.SetListViewType( gvtAll );
2124 end;
2125 // *************************************************************************
2126 //! \83\8c\83X\83G\83f\83B\83^\82Ì\96¼\91O\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2127 // *************************************************************************
2128 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2129 const
2130         DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\96¼\91O\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
2131         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2132 begin
2133         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2134                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2135                         Exit;
2136         GikoSys.Setting.NameList.Clear;
2137         GikoForm.AllEditroFormNameTextClearClear;
2138 end;
2139 // *************************************************************************
2140 //! \83\8c\83X\83G\83f\83B\83^\82Ì\83\81\81[\83\8b\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2141 // *************************************************************************
2142 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2143 const
2144         DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\83\81\81[\83\8b\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
2145         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2146 begin
2147         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2148                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2149                         Exit;
2150         GikoSys.Setting.MailList.Clear;
2151         GikoForm.AllEditroFormMailTextClearClear;
2152 end;
2153 // *************************************************************************
2154 //! \83M\83R\83i\83r\82ð\8fI\97¹\82·\82é
2155 // *************************************************************************
2156 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2157 begin
2158         GikoForm.Close;
2159 end;
2160 // *************************************************************************
2161 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\91O\8f\88\97\9d
2162 // *************************************************************************
2163 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2164 begin
2165         ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2166 end;
2167 // *************************************************************************
2168 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\8f\88\97\9d
2169 // *************************************************************************
2170 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2171 begin
2172         if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2173                 ShowMessage('\83t\83@\83C\83\8b\82ð\8fo\97Í\82µ\82Ü\82µ\82½');
2174         end else begin
2175                 ShowMessage('\83t\83@\83C\83\8b\82Ì\8fo\97Í\82É\8e¸\94s\82µ\82Ü\82µ\82½');
2176         end;
2177 end;
2178 // *************************************************************************
2179 //! \91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91
2180 // *************************************************************************
2181 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2182 var
2183         List: TList;
2184         i: Integer;
2185         html: TStringList;
2186         title: string;
2187 begin
2188         List := TList.Create;
2189         try
2190                 GikoForm.ScreenCursor := crHourGlass;
2191                 GikoForm.SelectListItem(List);
2192                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2193                         (GikoSys.Setting.ListHeightState = glsMax)) or
2194                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2195                         (GikoSys.Setting.ListWidthState = glsMax))      then
2196                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2197                 else if(List.Count = 0) then
2198                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2199                 else begin
2200                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91¶';
2201                         FileSaveAs1.Dialog.Filter := 'HTML\83t\83@\83C\83\8b(*.html)|*.html';
2202                         for i := 0 to List.Count - 1 do begin
2203                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2204                                         FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2205                                         if FileSaveAs1.Dialog.Execute then begin
2206                                                 html := TStringList.Create;
2207                                                 title := TThreadItem(List[i]).Title;
2208                                                 try
2209                                                         HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2210                                                         html.SaveToFile(FileSaveAs1.Dialog.FileName);
2211                                                         THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
2212                                                 finally
2213                                                         html.Free;
2214                                                 end;
2215                                         end;
2216                                 end;
2217                         end;
2218                 end;
2219         finally
2220                 GikoForm.ScreenCursor := crDefault;
2221                 List.Free;
2222         end;
2223 end;
2224 // *************************************************************************
2225 //! \91I\91ð\83X\83\8c\83b\83h\82ðDAT\8c`\8e®\82Ì\82Ü\82Ü\95Û\91
2226 // *************************************************************************
2227 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2228 var
2229         List: TList;
2230         i: Integer;
2231 begin
2232         List := TList.Create;
2233         try
2234                 GikoForm.ScreenCursor := crHourGlass;
2235                 GikoForm.SelectListItem(List);
2236                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2237                         (GikoSys.Setting.ListHeightState = glsMax)) or
2238                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2239                         (GikoSys.Setting.ListWidthState = glsMax)) then
2240                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2241                 else if(List.Count = 0) then
2242                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2243                 else begin
2244                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðdat\82Ì\82Ü\82Ü\95Û\91¶';
2245                         FileSaveAs1.Dialog.Filter := 'DAT\83t\83@\83C\83\8b(*.dat)|*.dat';
2246                         for i := 0 to List.Count - 1 do begin
2247                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2248                                         FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
2249                                         if FileSaveAs1.Dialog.Execute then begin
2250                                                 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2251                                                 PChar(FileSaveAs1.Dialog.FileName), true);
2252                                         end;
2253                                 end;
2254                         end;
2255                 end;
2256         finally
2257                 GikoForm.ScreenCursor := crDefault;
2258                 List.Free;
2259         end;
2260
2261 end;
2262 // *************************************************************************
2263 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95Û\91
2264 // *************************************************************************
2265 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2266 begin
2267         if not GikoForm.SaveTabURLs then begin
2268                 if TabsSaveAction.Tag = 0 then
2269                         ShowMessage('\95Û\91\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ')
2270                 else if TabsSaveAction.Tag = 1 then
2271                         GikoDM.TabsOpenAction.Tag := -1;
2272         end;
2273 end;
2274 // *************************************************************************
2275 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95\9c\8c³
2276 // *************************************************************************
2277 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2278 begin
2279         if TabsOpenAction.Tag <> -1 then begin
2280                 if not GikoForm.LoadTabURLs then begin
2281                         if TabsOpenAction.Tag = 0 then
2282                                 ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
2283                 end;
2284         end;
2285 end;
2286 // *************************************************************************
2287 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95Û\91
2288 // *************************************************************************
2289 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2290 begin
2291         GikoForm.SaveTabURLs;
2292 end;
2293 // *************************************************************************
2294 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95\9c\8c³
2295 // *************************************************************************
2296 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2297 begin
2298         GikoForm.LoadTabURLs;
2299 end;
2300 // *************************************************************************
2301 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é
2302 // *************************************************************************
2303 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2304 begin
2305         GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2306 end;
2307 // *************************************************************************
2308 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é\82ÌUpdate\83C\83x\83\93\83g
2309 // *************************************************************************
2310 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2311 begin
2312         if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2313                 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2314                 else BeLogInOutAction.Checked := false;
2315                 BeLogInOutAction.Enabled := true
2316         end else
2317                 BeLogInOutAction.Enabled := false;
2318 end;
2319 ////////////////////////////////\83t\83@\83C\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2320 // *************************************************************************
2321 //! \83R\83R\82Ü\82Å\93Ç\82ñ\82¾
2322 // *************************************************************************
2323 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2324 var
2325         No: Integer;
2326         ThreadItem: TThreadItem;
2327 begin
2328         No := GikoForm.KokoPopupMenu.Tag;
2329         if No = 0 then Exit;
2330         ThreadItem := GikoForm.GetActiveContent;
2331         if ThreadItem = nil then Exit;
2332         ThreadItem.Kokomade := No;
2333         GikoForm.ActiveContent.Thread.ScrollTop :=
2334                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2335         GikoForm.ActiveContent.Repaint := true;
2336         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2337         //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
2338         //Application.ProcessMessages;
2339 end;
2340 // *************************************************************************
2341 //! \91S\95\94\93Ç\82ñ\82¾
2342 // *************************************************************************
2343 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2344 var
2345         ThreadItem: TThreadItem;
2346 begin
2347         ThreadItem := GikoForm.GetActiveContent;
2348         if ThreadItem = nil then Exit;
2349         ThreadItem.Kokomade := -1;
2350         GikoForm.ActiveContent.Thread.ScrollTop :=
2351                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2352         GikoForm.ActiveContent.Repaint := true;
2353         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2354         //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
2355         //Application.ProcessMessages;
2356 end;
2357 // *************************************************************************
2358 //! \83R\83R\82É\83\8c\83X
2359 // *************************************************************************
2360 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2361 var
2362         Editor: TEditorForm;
2363         Item: TThreadItem;
2364         Number: Integer;
2365 begin
2366         Number := GikoForm.KokoPopupMenu.Tag;
2367         if Number = 0 then Exit;
2368         Item := GikoForm.GetActiveContent;
2369         if Item = nil then Exit;
2370
2371         Editor := TEditorForm.Create(GikoForm);
2372         Editor.SetThreadItem(Item);
2373         GikoSys.LoadEditorKeySetting(Editor.ActionList);
2374         Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2375         Editor.Show;
2376         Editor.BodyEdit.SetFocus;
2377 end;
2378 // *************************************************************************
2379 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2380 // *************************************************************************
2381 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2382 begin
2383         GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2384 end;
2385 // *************************************************************************
2386 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2387 // *************************************************************************
2388 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2389 var
2390         ThreadItem : TThreadItem;
2391         No, count, rc : Integer;
2392         body : string;
2393         limited: boolean;
2394 begin
2395         No := GikoForm.KokoPopupMenu.Tag;
2396         if No = 0 then Exit;
2397         ThreadItem := GikoForm.GetActiveContent;
2398         if ThreadItem = nil then Exit;
2399         count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2400         limited := false;
2401         if count > 20 then begin
2402                 rc := GikoUtil.MsgBox(GikoForm.Handle,
2403                                 '20\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
2404                                 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
2405                                 MB_YESNO or MB_ICONQUESTION);
2406                 limited := rc <> ID_YES;
2407         end;
2408         body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2409         GikoForm.IDAnchorPopup(body);
2410 end;
2411 // *************************************************************************
2412 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\92Ê\8fí\81j
2413 // *************************************************************************
2414 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2415 begin
2416         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2417 end;
2418 // *************************************************************************
2419 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\93§\96¾\81j
2420 // *************************************************************************
2421 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2422 begin
2423         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2424 end;
2425 // *************************************************************************
2426 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c
2427 // *************************************************************************
2428 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2429 var
2430         IndividualForm :TIndividualAbonForm;
2431         ThreadItem : TThreadItem;
2432         msg : String;
2433         ReadList                : TStringList;
2434         wordCount               : TWordCount;
2435 begin
2436         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2437         try
2438                 ThreadItem := GikoForm.GetActiveContent;
2439                 ThreadItem.ScrollTop :=
2440                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2441                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2442                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2443                                 ReadList                := TStringList.Create;
2444                                 wordCount               := TWordCount.Create;
2445                                 try
2446 {$IFDEF SPAM_FILTER_ENABLED}
2447                                         // \83X\83p\83\80\82ð\89ð\8f\9c
2448                                         ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2449                                         GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2450                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2451                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2452 {$ENDIF}
2453                                         if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2454                                                 GikoForm.ActiveContent.Repaint := true;
2455                                                 GikoForm.InsertBrowserTab( ThreadItem, True );
2456                                         end;
2457                                 finally
2458                                         wordCount.Free;
2459                                         ReadList.Free;
2460                                 end;
2461                         end else begin
2462                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2463                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2464                         end;
2465                 end;
2466         finally
2467                 IndividualForm.Release;
2468         end;
2469 end;
2470 // *************************************************************************
2471 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c\83\8c\83X\94Ô\8d\86\8ew\92è\81i\83_\83C\83A\83\8d\83O\95\\8e¦\81j
2472 // *************************************************************************
2473 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2474 var
2475         IndividualForm :TIndividualAbonForm;
2476         ThreadItem : TThreadItem;
2477         msg : String;
2478         ReadList                : TStringList;
2479         wordCount               : TWordCount;
2480 {$IFDEF SPAM_FILTER_ENABLED}
2481         i : Integer;
2482 {$ENDIF}
2483 begin
2484         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2485         try
2486                 ThreadItem := GikoForm.GetActiveContent;
2487                 ThreadItem.ScrollTop :=
2488                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2489                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2490                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2491                                 if (IndividualForm.ShowModal = mrOK) then begin
2492                                         ReadList                := TStringList.Create;
2493                                         wordCount               := TWordCount.Create;
2494                                         try
2495 {$IFDEF SPAM_FILTER_ENABLED}
2496                                                 // \83X\83p\83\80\82ð\89ð\8f\9c
2497                                                 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2498                                                 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2499                                                         GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2500                                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2501                                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2502                                                 end;
2503 {$ENDIF}
2504                                                 if IndividualForm.FRepaint then begin
2505                                                         GikoForm.ActiveContent.Repaint := true;
2506                                                         GikoForm.InsertBrowserTab( ThreadItem, True );
2507                                                 end;
2508                                         finally
2509                                                 wordCount.Free;
2510                                                 ReadList.Free;
2511                                         end;
2512                                 end;
2513                         end else begin
2514                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2515                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2516                         end;
2517                 end;
2518         finally
2519                 IndividualForm.Release;
2520         end;
2521 end;
2522 // *************************************************************************
2523 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\92Ê\8fí
2524 // *************************************************************************
2525 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2526 begin
2527         GikoForm.IndividualAbonID(1);
2528 end;
2529 // *************************************************************************
2530 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\93§\96¾
2531 // *************************************************************************
2532 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2533 begin
2534         GikoForm.IndividualAbonID(0);
2535 end;
2536 ////////////////////////////////\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2537 // *************************************************************************
2538 //! \83M\83R\83i\83r\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2539 // *************************************************************************
2540 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2541 begin
2542         GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2543 end;
2544 // *************************************************************************
2545 //! \83\82\83i\83W\83\89\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2546 // *************************************************************************
2547 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2548 begin
2549         GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2550 end;
2551 // *************************************************************************
2552 //! \82Q\82¿\82á\82ñ\82Ë\82é\83g\83b\83v\83y\81[\83W\82ð\95\\8e¦\82·\82é
2553 // *************************************************************************
2554 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2555 begin
2556         GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2557 end;
2558 // *************************************************************************
2559 //! \83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82ð\8aJ\82­
2560 // *************************************************************************
2561 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2562 begin
2563         GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2564 end;
2565 // *************************************************************************
2566 //! \83o\81[\83W\83\87\83\93\8fî\95ñ\82ð\95\\8e¦\82·\82é
2567 // *************************************************************************
2568 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2569 var
2570         Dlg: TAboutDialog;
2571 begin
2572         Dlg := TAboutDialog.Create(GikoForm);
2573         try
2574                 Dlg.ShowModal;
2575         finally
2576                 Dlg.Release;
2577         end;
2578 end;
2579 // *************************************************************************
2580 //! \83M\83R\83i\83r\82Ì\83w\83\8b\83v\82ð\95\\8e¦\82·\82é
2581 // *************************************************************************
2582 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2583 var
2584         FileName: string;
2585 begin
2586         FileName := GikoSys.GetAppDir + 'batahlp.chm';
2587         if not FileExists(FileName) then begin
2588                 MsgBox(
2589                         GikoForm.Handle,
2590                         '\83w\83\8b\83v\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\82Å\82µ\82½' + #13#10 +
2591                         '\83w\83\8b\83v\83t\83@\83C\83\8b\82ð\83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82É\92u\82¢\82Ä\82­\82¾\82³\82¢' + #13#10 +
2592                         '\83w\83\8b\83v\82Í\83M\83R\83i\83r\82Ì\83T\83C\83g\82É\92u\82¢\82Ä\82 \82è\82Ü\82·',
2593                         '\83G\83\89\81[',
2594                         MB_ICONSTOP);
2595                 Exit;
2596         end;
2597         ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2598 end;
2599 // *************************************************************************
2600 //! \83M\83R\83i\83rWiki\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2601 // *************************************************************************
2602 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2603 begin
2604         GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2605 end;
2606 ////////////////////////////////\83w\83\8b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2607 // *************************************************************************
2608 //! \83\8a\83X\83g\94Ô\8d\86\95\\8e¦\82ð\95Ï\8dX\82·\82é
2609 // *************************************************************************
2610 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2611 begin
2612         GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2613         GikoForm.ListView.Refresh;
2614 end;
2615 // *************************************************************************
2616 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82é
2617 // *************************************************************************
2618 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2619 begin
2620         if GikoForm.GetActiveList is TBoard then begin
2621                 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2622                         GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2623         end else if GikoForm.GetActiveList is TCategory then begin
2624                 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2625         end;
2626 end;
2627 // *************************************************************************
2628 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82éUpDate\83C\83x\83\93\83g
2629 // *************************************************************************
2630 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2631 begin
2632         UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2633 end;
2634 // *************************************************************************
2635 //! \95\\8e¦\81@\95\\8e¦\83\8a\83X\83g\82Ì\83\82\81[\83h\95Ï\8dX
2636 // *************************************************************************
2637 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2638 begin
2639         case GikoForm.ListView.ViewStyle of
2640                 vsIcon: SmallIconAction.Execute;
2641                 vsSmallIcon: ListIconAction.Execute;
2642                 vsList: DetailIconAction.Execute;
2643                 vsReport: LargeIconAction.Execute;
2644         end;
2645 end;
2646 // *************************************************************************
2647 //! \83X\83\8c\83b\83h\82ð\82·\82×\82Ä\95\\8e¦\82·\82é
2648 // *************************************************************************
2649 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2650 begin
2651         try
2652                 if GikoForm.ViewType <> gvtAll then
2653                         GikoForm.SetListViewType(gvtAll);
2654                 GikoSys.Setting.ThreadRange := gtrAll;
2655                 AllItemAction.Checked           := True;
2656                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2657                 GikoForm.ModifySelectList;
2658                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2659                 if GikoForm.SelectComboBoxPanel.Visible then begin
2660                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2661                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2662                         GikoForm.ListView.SetFocus;
2663                 end;
2664         except
2665         end;
2666 end;
2667 // *************************************************************************
2668 //! \83\8d\83O\97L\82è\83X\83\8c\83b\83h\82Ì\82Ý\82ð\95\\8e¦\82·\82é
2669 // *************************************************************************
2670 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2671 begin
2672         try
2673                 if GikoForm.ViewType <> gvtLog then
2674                         GikoForm.SetListViewType(gvtLog);
2675                 GikoSys.Setting.ThreadRange     := gtrLog;
2676                 LogItemAction.Checked := True;
2677                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2678                 GikoForm.ModifySelectList;
2679                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2680                 if GikoForm.SelectComboBoxPanel.Visible  then begin
2681                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2682                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2683                         GikoForm.ListView.SetFocus;
2684                 end;
2685         except
2686         end;
2687 end;
2688 // *************************************************************************
2689 //! \90V\92\85\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
2690 // *************************************************************************
2691 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2692 begin
2693         try
2694
2695                 if GikoForm.ViewType <> gvtNew then
2696                         GikoForm.SetListViewType(gvtNew);
2697                 GikoSys.Setting.ThreadRange     := gtrNew;
2698                 NewItemAction.Checked := True;
2699                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2700                 GikoForm.ModifySelectList;
2701                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2702                 if GikoForm.SelectComboBoxPanel.Visible then begin
2703                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2704                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2705                         GikoForm.ListView.SetFocus;
2706                 end;
2707         except
2708         end;
2709 end;
2710 // *************************************************************************
2711 //! \83X\83\8c\83b\83h\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
2712 // *************************************************************************
2713 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2714 begin
2715         case GikoSys.Setting.ThreadRange of
2716         gtrAll: AllItemAction.Execute;
2717         gtrLog: LogItemAction.Execute;
2718         gtrNew: NewItemAction.Execute;
2719         end;
2720 end;
2721 // *************************************************************************
2722 //! \83X\83\8c\83b\83h\8di\8d\9e\82Ý\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
2723 // *************************************************************************
2724 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2725 var
2726         idx: Integer;
2727         Dlg: TListSelectDialog;
2728 begin
2729         try
2730                 if GikoForm.SelectComboBoxPanel.Visible then begin
2731                         if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2732                                 // SelectComboBox \82ª\82 \82é\8fê\8d\87\82Í\83t\83H\81[\83J\83X\82ð\88Ú\82·
2733                                 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2734                                         if GikoSys.Setting.ListWidthState = glsMax then
2735                                                 BrowserMinAction.Execute;
2736                                 end else begin
2737                                         if GikoSys.Setting.ListHeightState = glsMax then
2738                                                 BrowserMinAction.Execute;
2739                                 end;
2740                                 GikoForm.SelectComboBox.SetFocus;
2741                                 exit;
2742                         end;
2743                 end;
2744         except
2745         end;
2746
2747         if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2748                 GikoForm.SelectComboBox.Text := '';
2749                 GikoForm.SelectComboBox.Color := clWindow;
2750         end;
2751
2752         AllItemAction.Checked := False;
2753         LogItemAction.Checked := False;
2754         NewItemAction.Checked := False;
2755         //SelectItemAction.Checked := True;
2756         GikoForm.ModifySelectList;
2757         Dlg := TListSelectDialog.Create(GikoForm);
2758         try
2759                 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2760                 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2761                 Dlg.ShowModal;
2762                 if Dlg.ModalResult = mrCancel then begin
2763                         if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2764                                 AllItemAction.Checked := True;
2765                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2766                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2767                         end;
2768
2769                         if GikoForm.GetActiveList is TBoard then
2770                                 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2771                 end else begin
2772                         idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2773                         if idx <> -1 then
2774                                 GikoSys.Setting.SelectTextList.Delete(idx);
2775                         GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2776                         while Dlg.SelectComboBox.Items.Count > 100 do begin
2777                                 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2778                         end;
2779
2780                         if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2781                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2782                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2783                         end else begin
2784                                 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2785                                 GikoForm.SelectComboBox.Color := clWindow;
2786                         end;
2787                         GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2788                 end;
2789         finally
2790                 Dlg.Release;
2791         end;
2792 end;
2793 // *************************************************************************
2794 //! \90V\83X\83\8c\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
2795 // *************************************************************************
2796 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2797 var
2798         Editor: TEditorForm;
2799 begin
2800         if not (GikoForm.GetActiveList is TBoard) then
2801                 Exit;
2802         Editor := TEditorForm.Create(GikoForm);
2803         Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2804         Editor.Show;
2805         Editor.BodyEdit.SetFocus;
2806 end;
2807 // *************************************************************************
2808 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
2809 // *************************************************************************
2810 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2811 var
2812         URL: string;
2813 begin
2814         if GikoForm.GetActiveList is TBoard then begin
2815                 URL := TBoard(GikoForm.GetActiveList).URL;
2816                 GikoSys.OpenBrowser(URL, gbtAuto);
2817         end;
2818 end;
2819 // *************************************************************************
2820 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
2821 // *************************************************************************
2822 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2823 var
2824         List: TList;
2825         i: Integer;
2826         s: string;
2827 begin
2828         s := '';
2829         List := TList.Create;
2830         try
2831                 GikoForm.SelectListItem(List);
2832                 for i := 0 to List.Count - 1 do begin
2833                         if TObject(List[i]) is TBoard then
2834                                 s := s + TBoard(List[i]).URL + #13#10
2835                         else if TObject(List[i]) is TThreadItem then
2836                                 s := s + TThreadItem(List[i]).URL + #13#10;
2837                 end;
2838                 if s <> '' then
2839                         Clipboard.AsText := s;
2840         finally
2841                 List.Free;
2842         end;
2843 end;
2844 // *************************************************************************
2845 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
2846 // *************************************************************************
2847 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2848 begin
2849         if ((GikoForm.GetActiveList is TBoard) or
2850                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2851                 TAction(Sender).Enabled := True
2852         else
2853                 TAction(Sender).Enabled := False;
2854 end;
2855 // *************************************************************************
2856 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
2857 // *************************************************************************
2858 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2859 var
2860         List: TList;
2861         i: Integer;
2862         s: string;
2863 begin
2864         s := '';
2865         List := TList.Create;
2866         try
2867                 GikoForm.SelectListItem(List);
2868                 for i := 0 to List.Count - 1 do begin
2869                         if TObject(List[i]) is TBoard then
2870                                 s := s + TBoard(List[i]).Title + #13#10
2871                         else if TObject(List[i]) is TThreadItem then
2872                                 s := s + TThreadItem(List[i]).Title + #13#10;
2873                 end;
2874                 if s <> '' then
2875                         Clipboard.AsText := s;
2876         finally
2877                 List.Free;
2878         end;
2879 end;
2880 // *************************************************************************
2881 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
2882 // *************************************************************************
2883 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2884 begin
2885         if ((GikoForm.GetActiveList is TBoard) or
2886                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2887                 TAction(Sender).Enabled := True
2888         else
2889                 TAction(Sender).Enabled := False;
2890 end;
2891 // *************************************************************************
2892 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
2893 // *************************************************************************
2894 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2895 var
2896         List: TList;
2897         i: Integer;
2898         s: string;
2899 begin
2900         s := '';
2901         List := TList.Create;
2902         try
2903                 GikoForm.SelectListItem(List);
2904                 for i := 0 to List.Count - 1 do begin
2905                         if TObject(List[i]) is TBoard then
2906                                 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2907                         else if TObject(List[i]) is TThreadItem then
2908                                 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2909                 end;
2910                 if s <> '' then
2911                         Clipboard.AsText := s;
2912         finally
2913                 List.Free;
2914         end;
2915 end;
2916 // *************************************************************************
2917 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
2918 // *************************************************************************
2919 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2920 var
2921         i: Integer;
2922         List: TList;
2923         msg: string;
2924         shiftDown: Boolean;
2925 begin
2926         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2927         if GikoForm.GetActiveList is TCategory then begin
2928                 List := TList.Create;
2929                 try
2930                         GikoForm.SelectListItem(List);
2931                         if List.Count > 5 then begin
2932                                 msg := '5\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2933                                                  + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2934                                 MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2935                                 Exit;
2936                         end;
2937                         for i := 0 to List.Count - 1 do begin
2938                                 if TObject(List[i]) is TBoard then
2939                                         GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2940                         end;
2941                 finally
2942                         List.Free;
2943                 end;
2944         end else if GikoForm.GetActiveList is TBoard then begin
2945                 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2946         end;
2947 end;
2948 // *************************************************************************
2949 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
2950 // *************************************************************************
2951 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2952 begin
2953         if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2954                 TAction(Sender).Enabled := True
2955         else if GikoForm.GetActiveList is TBoard then
2956                 TAction(Sender).Enabled := True
2957         else
2958                 TAction(Sender).Enabled := False;
2959 end;
2960 // *************************************************************************
2961 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
2962 // *************************************************************************
2963 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2964 var
2965         List: TList;
2966         i: Integer;
2967         msg: string;
2968         shiftDown: Boolean;
2969 begin
2970         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2971         List := TList.Create;
2972         try
2973                 GikoForm.SelectListItem(List);
2974                 if List.Count > 10 then begin
2975                         msg := '10\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2976                                          + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2977                         MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2978                         Exit;
2979                 end;
2980                 for i := 0 to List.Count - 1 do begin
2981                         if TObject(List[i]) is TThreadItem then
2982                                 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2983                 end;
2984         finally
2985                 List.Free;
2986         end;
2987 end;
2988 // *************************************************************************
2989 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
2990 // *************************************************************************
2991 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2992 begin
2993         TAction(Sender).Enabled :=
2994                 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2995 end;
2996 // *************************************************************************
2997 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñ
2998 // *************************************************************************
2999 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
3000 begin
3001         //INFO 2005/11/19 \83_\83~\81[\81H\81@by \82à\82\82ã
3002         // \82±\82Ì\83R\83\81\83\93\83g\8dí\8f\9c\82µ\82Ä\82Í\91Ê\96Ú
3003 end;
3004 // *************************************************************************
3005 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñUpdate\83C\83x\83\93\83g
3006 // *************************************************************************
3007 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
3008 var
3009         i: Integer;
3010         List: TList;
3011 begin
3012         if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
3013                 List := TList.Create;
3014                 try
3015                         GikoForm.SelectListItem(List);
3016                         for i := 0 to List.Count - 1 do begin
3017                                 if TObject(List[i]) is TThreadItem then begin
3018                                         if TThreadItem(List[i]).IsLogFile then begin
3019                                                 SelectReservAction.Enabled := True;
3020                                                 Exit;
3021                                         end;
3022                                 end;
3023                         end;
3024                         SelectReservAction.Enabled := False;
3025                 finally
3026                         List.Free;
3027                 end;
3028         end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
3029                 SelectReservAction.Enabled := True
3030         else
3031                 SelectReservAction.Enabled := False;
3032 end;
3033 // *************************************************************************
3034 //! \91I\91ð\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82É\90V\82µ\82¢\96¼\91O\82Å\8f\84\89ñ\97\\96ñ
3035 // *************************************************************************
3036 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
3037 var
3038         s: string;
3039         Dlg: TRoundNameDialog;
3040                 cnt: Integer;
3041
3042 begin
3043         //\8cÄ\82Ñ\8fo\82µ\8c³\82ª\81ATAction\82ÅListView\82É\91I\91ð\82ª\82¢\82È\82¯\82ê\82Î\81AEXIT\82·\82é
3044         if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
3045                 Exit;
3046
3047         //\93o\98^\8fã\8cÀ\83`\83F\83b\83N
3048         cnt := RoundList.Count[grtBoard];
3049         cnt := cnt + RoundList.Count[grtItem];
3050         if cnt > 500 then begin
3051                         MsgBox(GikoForm.Handle, '\8f\84\89ñ\82Í500\88È\8fã\93o\98^\82Å\82«\82Ü\82¹\82ñ', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
3052                         Exit;
3053         end;
3054
3055         Dlg := TRoundNameDialog.Create(GikoForm);
3056         try
3057                 Dlg.ShowModal;
3058                 if Dlg.ModalResult <> mrCancel then begin
3059                         s := Trim(Dlg.RoundNameEdit.Text);
3060                         if (Sender is TMenuItem) then begin
3061                                 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
3062                         end else if (Sender is TAction) then begin
3063                                 if (GikoForm.ListView.Selected <> nil) then begin
3064                                         if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
3065                                                 GikoForm.SetSelectItemRound(True, s,
3066                                                         TThreadItem(GikoForm.ListView.Selected.Data).Title);
3067                                         end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
3068                                                 GikoForm.SetSelectItemRound(True, s,
3069                                                         TBoard(GikoForm.ListView.Selected.Data).Title);
3070                                         end;
3071                                 end;
3072                         end;
3073                         GikoForm.ListView.Refresh;
3074                 end;
3075         finally
3076                 Dlg.Free;
3077         end;
3078 end;
3079 // *************************************************************************
3080 //! \91I\91ð\82³\82ê\82Ä\82¢\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82ð\8dí\8f\9c\82·\82é
3081 // *************************************************************************
3082 procedure TGikoDM.SelectDeleteRoundExecute(Sender: TObject);
3083 var
3084         s : String;
3085 begin
3086         if (Sender is TMenuItem) then begin
3087                 try
3088                         GikoForm.SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
3089                 except
3090                 end;
3091         end else if (Sender is TAction) then begin
3092                 try
3093                         if GikoForm.ListView.Selected <> nil then begin
3094                                 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
3095                                         s := TThreadItem(GikoForm.ListView.Selected.Data).Title;
3096                                 end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
3097                                         s := TBoard(GikoForm.ListView.Selected.Data).Title;
3098                                 end;
3099                                 GikoForm.SetSelectItemRound(False, '', s);
3100
3101                         end;
3102                 except
3103                 end;
3104         end;
3105         GikoForm.ListView.Refresh;
3106 end;
3107 // *************************************************************************
3108 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
3109 // *************************************************************************
3110 procedure TGikoDM.BoardFavoriteAddActionExecute(Sender: TObject);
3111 begin
3112         if TObject(GikoForm.ListView.Selected.Data) is TBoard then
3113                 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
3114 end;
3115 // *************************************************************************
3116 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82éUpdate\83C\83x\83\93\83g
3117 // *************************************************************************
3118 procedure TGikoDM.BoardFavoriteAddActionUpdate(Sender: TObject);
3119 begin
3120         BoardFavoriteAddAction.Enabled :=
3121                 (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0);
3122 end;
3123 // *************************************************************************
3124 //! Explorer\82ÅLog\83t\83H\83\8b\83_\82ð\8aJ\82­
3125 // *************************************************************************
3126 procedure TGikoDM.LogFolderOpenActionExecute(Sender: TObject);
3127 var
3128         List: TList;
3129 begin
3130         if ((GikoSys.Setting.ListOrientation = gloVertical) and
3131                 (GikoSys.Setting.ListHeightState = glsMax)) or
3132                 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
3133                 (GikoSys.Setting.ListWidthState = glsMax))      then begin
3134                 if(GikoForm.GetActiveContent <> nil) then begin
3135                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(GikoForm.GetActiveContent.FilePath) + '"');
3136                 end;
3137         end else if GikoForm.GetActiveList is TCategory then begin
3138                 List := TList.Create;
3139                 try
3140                         GikoForm.SelectListItem(List);
3141                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(List[0]).FilePath) + '"');
3142                 finally
3143                         List.Free;
3144                 end;
3145         end else if GikoForm.GetActiveList is TBoard then begin
3146                 GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(GikoForm.GetActiveList).FilePath) + '"');
3147         end;
3148
3149 end;
3150 // *************************************************************************
3151 //! ActiveList\82ªTBoard\82©TCategory\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éActionde\8b¤\92Ê
3152 // *************************************************************************
3153 procedure TGikoDM.LogFolderOpenActionUpdate(Sender: TObject);
3154 begin
3155         if ((GikoForm.GetActiveList is TBoard) or (GikoForm.GetActiveList is TCategory))
3156                 and (GikoForm.ListView.SelCount > 0) then
3157                 TAction(Sender).Enabled := True
3158         else
3159                 TAction(Sender).Enabled := False;
3160 end;
3161 // *************************************************************************
3162 //! Header.txt\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
3163 // *************************************************************************
3164 procedure TGikoDM.BrowsBoradHeadActionExecute(Sender: TObject);
3165 var
3166         RefURL, URL : string;
3167         List : TList;
3168 begin
3169         RefURL := '';
3170         if GikoForm.GetActiveList is TCategory then begin
3171                 List := TList.Create;
3172                 try
3173                         GikoForm.SelectListItem(List);
3174                         RefURL := TBoard(List[0]).URL;
3175                 finally
3176                         List.Free;
3177                 end;
3178         end else if GikoForm.GetActiveList is TBoard then begin
3179                 RefURL := TBoard(GikoForm.GetActiveList).URL
3180         end;
3181         if RefURL <> '' then begin
3182                 if RefURL[Length(RefURL)] <> '/' then
3183                         URL     := RefURL + '/' + 'head.txt'
3184                 else
3185                         URL     := RefURL + 'head.txt';
3186
3187                 GikoForm.MoveToURL(URL);
3188         end else begin
3189                 ShowMessage('\94Â\82ð\93Á\92è\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B');
3190         end;
3191
3192 end;
3193 // *************************************************************************
3194 //! \8c»\8dÝ\82Ì\83J\83\89\83\80\82ð\83\\81[\83g\82·\82é
3195 // *************************************************************************
3196 procedure TGikoDM.SortActiveColumnActionExecute(Sender: TObject);
3197 var
3198         i       : Integer;
3199         so : boolean;
3200         si : Integer;
3201 begin
3202         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3203                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3204                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3205                         GikoForm.SortOrder := not GikoForm.SortOrder;
3206                         so := GikoForm.SortOrder;
3207                         si := GikoForm.SortIndex;
3208                         TListViewUtils.ListViewSort(nil, GikoForm.ListView,
3209                                  GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
3210                                  so, si );
3211                         GikoForm.SortIndex := si;
3212                         GikoForm.SortOrder := so;
3213                         break;
3214                 end;
3215         end;
3216 end;
3217 // *************************************************************************
3218 //! \89E\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3219 // *************************************************************************
3220 procedure TGikoDM.SortNextColumnActionExecute(Sender: TObject);
3221 var
3222         i, id   : Integer;
3223         so : boolean;
3224         si : Integer;
3225 begin
3226         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3227                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3228                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3229                         id := i + 1;
3230                         if id > GikoForm.ListView.Columns.Count - 1 then
3231                                 id := 0;
3232                         GikoForm.SortOrder := id = 0;
3233                         so := GikoForm.SortOrder;
3234                         si := GikoForm.SortIndex;
3235                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3236                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3237                                 so, si );
3238                         GikoForm.SortIndex := si;
3239                         GikoForm.SortOrder := so;
3240                         break;
3241                 end;
3242         end;
3243 end;
3244 // *************************************************************************
3245 //! \8d\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3246 // *************************************************************************
3247 procedure TGikoDM.SortPrevColumnActionExecute(Sender: TObject);
3248 var
3249         i, id   : Integer;
3250         so : boolean;
3251         si : Integer;
3252 begin
3253         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3254                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3255                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3256                         id := i - 1;
3257                         if id < 0 then
3258                                 id := GikoForm.ListView.Columns.Count - 1;
3259                         GikoForm.SortOrder := id = 0;
3260                         so := GikoForm.SortOrder;
3261                         si := GikoForm.SortIndex;
3262                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3263                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3264                                 so, si );
3265                         GikoForm.SortIndex := si;
3266                         GikoForm.SortOrder := so;
3267                         break;
3268                 end;
3269         end;
3270 end;
3271 ////////////////////////////////\94Â\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3272 // *************************************************************************
3273 //! \95W\8f\80\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3274 // *************************************************************************
3275 procedure TGikoDM.StdToolBarVisibleActionExecute(Sender: TObject);
3276 var
3277         CoolBand: TCoolBand;
3278 begin
3279         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.StdToolBar);
3280         if CoolBand = nil then
3281                 Exit;
3282         GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
3283         CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
3284         GikoForm.StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
3285 end;
3286 // *************************************************************************
3287 //! \83A\83h\83\8c\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3288 // *************************************************************************
3289 procedure TGikoDM.AddressBarVisibleActionExecute(Sender: TObject);
3290 var
3291         CoolBand: TCoolBand;
3292 begin
3293         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.AddressToolBar);
3294         if CoolBand = nil then
3295                 Exit;
3296         GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
3297         CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
3298         GikoForm.AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
3299 end;
3300 // *************************************************************************
3301 //! \83\8a\83\93\83N\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3302 // *************************************************************************
3303 procedure TGikoDM.LinkBarVisibleActionExecute(Sender: TObject);
3304 var
3305         CoolBand: TCoolBand;
3306 begin
3307         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.LinkToolBar);
3308         if CoolBand = nil then
3309                 Exit;
3310         GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
3311         CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
3312         GikoForm.LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
3313 end;
3314 // *************************************************************************
3315 //! \83\8a\83X\83g\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3316 // *************************************************************************
3317 procedure TGikoDM.ListToolBarVisibleActionExecute(Sender: TObject);
3318 var
3319         CoolBand: TCoolBand;
3320 begin
3321         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListToolBar);
3322         if CoolBand = nil then
3323                 Exit;
3324         CoolBand.Visible := ListToolBarVisibleAction.Checked;
3325         GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
3326 end;
3327 // *************************************************************************
3328 //! \83\8a\83X\83g\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3329 // *************************************************************************
3330 procedure TGikoDM.ListNameBarVisibleActionExecute(Sender: TObject);
3331 var
3332         CoolBand: TCoolBand;
3333 begin
3334         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListNameToolBar);
3335         if CoolBand = nil then
3336                 Exit;
3337         CoolBand.Visible := ListNameBarVisibleAction.Checked;
3338         GikoSys.Setting.ListNameBarVisible := ListNameBarVisibleAction.Checked;
3339 end;
3340 // *************************************************************************
3341 //! \83u\83\89\83E\83U\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3342 // *************************************************************************
3343 procedure TGikoDM.BrowserToolBarVisibleActionExecute(Sender: TObject);
3344 var
3345         CoolBand: TCoolBand;
3346 begin
3347         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserToolBar);
3348         if CoolBand = nil then
3349                 Exit;
3350         CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
3351         GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
3352 end;
3353 // *************************************************************************
3354 //! \83u\83\89\83E\83U\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3355 // *************************************************************************
3356 procedure TGikoDM.BrowserNameBarVisibleActionExecute(Sender: TObject);
3357 var
3358         CoolBand: TCoolBand;
3359 begin
3360         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserNameToolBar);
3361         if CoolBand = nil then
3362                 Exit;
3363         CoolBand.Visible := BrowserNameBarVisibleAction.Checked;
3364         GikoSys.Setting.BrowserNameBarVisible := BrowserNameBarVisibleAction.Checked;
3365 end;
3366 // *************************************************************************
3367 //! \83\81\83b\83Z\81[\83W\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3368 // *************************************************************************
3369 procedure TGikoDM.MsgBarVisibleActionExecute(Sender: TObject);
3370 begin
3371         GikoForm.MessageSplitter.Visible := MsgBarVisibleAction.Checked;
3372         GikoForm.MessagePanel.Top :=
3373                 GikoForm.MessageSplitter.Top + GikoForm.MessageSplitter.Height;
3374         GikoForm.MessageSplitter.Top := GikoForm.MessagePanel.Top + 1;
3375         GikoForm.MessagePanel.Visible := MsgBarVisibleAction.Checked;
3376         GikoSys.Setting.MessageBarVisible := MsgBarVisibleAction.Checked;
3377 end;
3378 // *************************************************************************
3379 //! \83\81\83b\83Z\81[\83W\83o\81[\82ð\95Â\82\82é
3380 // *************************************************************************
3381 procedure TGikoDM.MsgBarCloseActionExecute(Sender: TObject);
3382 begin
3383         MsgBarVisibleAction.Execute;
3384 end;
3385 // *************************************************************************
3386 //! \83X\83e\81[\83^\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3387 // *************************************************************************
3388 procedure TGikoDM.StatusBarVisibleActionExecute(Sender: TObject);
3389 begin
3390         GikoForm.StatusBar.Visible := StatusBarVisibleAction.Checked;
3391         GikoSys.Setting.StatusBarVisible := StatusBarVisibleAction.Checked;
3392 end;
3393 // *************************************************************************
3394 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\8cf\8e¦\94Â\82É\82·\82é
3395 // *************************************************************************
3396 procedure TGikoDM.CabinetBBSActionExecute(Sender: TObject);
3397 begin
3398
3399         if GikoForm.CabinetPanel.Visible then begin
3400                 if GikoForm.TreeType = gtt2ch then begin
3401                         GikoForm.CabinetVisible( False );
3402
3403                         CabinetBBSAction.Checked := False;
3404                 end else begin
3405                         CabinetBBSAction.Checked := True;
3406                 end;
3407         end else begin
3408                 GikoForm.CabinetVisible( True );
3409                 CabinetBBSAction.Checked := True;
3410         end;
3411
3412         if GikoForm.ActiveBBS = nil then
3413                 GikoForm.ShowBBSTree( BBSs[ 0 ] )
3414         else
3415                 GikoForm.ShowBBSTree( GikoForm.ActiveBBS );
3416
3417 end;
3418 // *************************************************************************
3419 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\97\9a\97ð\83\8a\83X\83g\82É\82·\82é
3420 // *************************************************************************
3421 procedure TGikoDM.CabinetHistoryActionExecute(Sender: TObject);
3422 begin
3423         GikoForm.ShowHistoryTree;
3424 end;
3425 // *************************************************************************
3426 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\82¨\8bC\82É\93ü\82è\83\8a\83X\83g\82É\82·\82é
3427 // *************************************************************************
3428 procedure TGikoDM.CabinetFavoriteActionExecute(Sender: TObject);
3429 var
3430         i, b : Integer;
3431         item : TMenuItem;
3432 begin
3433
3434         if GikoForm.CabinetPanel.Visible then begin
3435                 if GikoForm.TreeType = gttFavorite then begin
3436                         GikoForm.CabinetVisible( False );
3437                         CabinetFavoriteAction.Checked := False;
3438                 end else begin
3439                         CabinetFavoriteAction.Checked := True;
3440                 end;
3441         end else begin
3442                 GikoForm.CabinetVisible( True );
3443                 CabinetFavoriteAction.Checked := True;
3444         end;
3445
3446         // BBS...BBS, History, Favorite
3447         GikoSys.Setting.CabinetIndex := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3448
3449         b := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3450         for i := 0 to b do begin
3451                 item := GikoForm.CabinetSelectPopupMenu.Items[ i ];
3452                 if item is TBBSMenuItem then begin
3453                         item.Checked := False;
3454                         // CabinetMenu \82Í CabinetSelectPopupMenu \82Æ\93¯\82\82Æ\8c\88\82ß\82¤\82¿\82µ\82¿\82á\82¤
3455                         GikoForm.CabinetMenu.Items[ i ].Checked := False;
3456                 end;
3457         end;
3458
3459         // \83L\83\83\83r\83l\83b\83g\83c\81[\83\8b\83o\81[\8by\82Ñ\83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\90Ø\91Ö
3460         GikoForm.HistoryToolBar.Hide;
3461         GikoForm.FavoriteToolBar.Show;
3462         GikoForm.TreeView.Visible := False;
3463         GikoForm.FavoriteTreeView.Visible := True;
3464
3465         GikoForm.CabinetSelectToolButton.Caption := '\82¨\8bC\82É\93ü\82è';
3466         GikoForm.TreeType := gttFavorite;
3467
3468         // \83\81\83j\83\85\81[\8by\82Ñ\83{\83^\83\93\82Ì\83`\83F\83b\83N\82ð\90Ý\92è
3469         CabinetBBSAction.Checked := False;
3470         CabinetHistoryAction.Checked := False;
3471
3472         // \82¨\8bC\82É\93ü\82è\82Ì\83c\83\8a\81[\82ð\93W\8aJ
3473         GikoForm.FavoriteTreeView.Items.GetFirstNode.Expanded := True;
3474
3475 end;
3476 // *************************************************************************
3477 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3478 // *************************************************************************
3479 procedure TGikoDM.CabinetVisibleActionExecute(Sender: TObject);
3480 begin
3481         case GikoForm.TreeType of
3482         gttHistory:             CabinetHistoryAction.Execute;
3483         gttFavorite:    CabinetFavoriteAction.Execute;
3484         else
3485                 CabinetBBSAction.Execute;
3486         end;
3487 end;
3488 // *************************************************************************
3489 //! \83L\83\83\83r\83l\83b\83g\82ð\95Â\82\82é
3490 // *************************************************************************
3491 procedure TGikoDM.CabinetCloseActionExecute(Sender: TObject);
3492 begin
3493         //INFO 2005/11/19 \82±\82Ì\83A\83N\83V\83\87\83\93\82É\82Í\89½\82à\90Ý\92è\82³\82ê\82Ä\82¢\82È\82©\82Á\82½\81@\82à\82\82ã
3494 end;
3495 // *************************************************************************
3496 //! \83\8a\83X\83g\82ð\91å\82«\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3497 // *************************************************************************
3498 procedure TGikoDM.LargeIconActionExecute(Sender: TObject);
3499 begin
3500         GikoForm.ListView.ViewStyle := vsIcon;
3501         LargeIconAction.Checked := True;
3502 end;
3503 // *************************************************************************
3504 //! \83\8a\83X\83g\82ð\8f¬\82³\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3505 // *************************************************************************
3506 procedure TGikoDM.SmallIconActionExecute(Sender: TObject);
3507 begin
3508         GikoForm.ListView.ViewStyle := vsSmallIcon;
3509         SmallIconAction.Checked := True;
3510 end;
3511 // *************************************************************************
3512 //! \83\8a\83X\83g\82ð\88ê\97\97\95\\8e¦\82É\82·\82é
3513 // *************************************************************************
3514 procedure TGikoDM.ListIconActionExecute(Sender: TObject);
3515 begin
3516         GikoForm.ListView.ViewStyle := vsList;
3517         ListIconAction.Checked := True;
3518 end;
3519 // *************************************************************************
3520 //! \83\8a\83X\83g\82ð\8fÚ\8d×\95\\8e¦\82É\82·\82é
3521 // *************************************************************************
3522 procedure TGikoDM.DetailIconActionExecute(Sender: TObject);
3523 begin
3524         GikoForm.ListView.ViewStyle := vsReport;
3525         DetailIconAction.Checked := True;
3526 end;
3527 // *************************************************************************
3528 //! \83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82·\82é
3529 // *************************************************************************
3530 procedure TGikoDM.StopActionExecute(Sender: TObject);
3531 begin
3532         GikoForm.FControlThread.DownloadAbort;
3533         if GikoForm.WorkCount <> 0 then GikoForm.WorkCount := 0;
3534         try
3535                 GikoForm.Animate.Active := False;
3536         except
3537         end;
3538         GikoForm.ScreenCursor := crDefault;
3539 end;
3540 // *************************************************************************
3541 //! \83\8a\83X\83g\82Æ\83u\83\89\83E\83U\82Ì\8fc\89¡\94z\92u\82ð\95Ï\8dX\82·\82é
3542 // *************************************************************************
3543 procedure TGikoDM.ArrangeActionExecute(Sender: TObject);
3544 begin
3545         if ArrangeAction.Checked then begin
3546                 //\8fc
3547                 GikoForm.ViewPanel.Align := alNone;
3548                 GikoForm.ListSplitter.Align := alNone;
3549                 GikoForm.ThreadPanel.Align := alNone;
3550
3551                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3552                 GikoForm.ViewPanel.Align := alLeft;
3553
3554                 GikoForm.ListSplitter.Width := 5;
3555                 GikoForm.ListSplitter.Align := alLeft;
3556
3557                 GikoForm.ViewPanel.Left := -10;
3558
3559                 GikoForm.ThreadPanel.Align := alClient;
3560
3561                 GikoSys.Setting.ListOrientation := gloHorizontal;
3562                 case GikoSys.Setting.ListWidthState of
3563                         glsMax: begin
3564                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3565                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3566                                 GikoForm.ViewPanel.Width := 1;
3567                         end;
3568                         glsNormal: begin
3569                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3570                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3571                         end;
3572                         glsMin: begin
3573                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3574                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3575                                 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
3576                         end;
3577                 end;
3578         end else begin
3579                 //\89¡
3580                 GikoForm.ViewPanel.Align := alNone;
3581                 GikoForm.ListSplitter.Align := alNone;
3582                 GikoForm.ThreadPanel.Align := alNone;
3583
3584                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3585                 GikoForm.ViewPanel.Align := alTop;
3586
3587                 GikoForm.ListSplitter.Height := 5;
3588                 GikoForm.ListSplitter.Align := alTop;
3589
3590                 GikoForm.ViewPanel.Top := -10;
3591
3592                 GikoForm.ThreadPanel.Align := alClient;
3593                 GikoSys.Setting.ListOrientation := gloVertical;
3594                 case GikoSys.Setting.ListHeightState of
3595                         glsMax: begin
3596                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3597                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3598                                 GikoForm.ViewPanel.Height := 1;
3599                         end;
3600                         glsNormal: begin
3601                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3602                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3603                         end;
3604                         glsMin: begin
3605                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3606                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3607                                 GikoForm.ViewPanel.Height :=
3608                                         GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
3609                         end;
3610                 end;
3611         end;
3612 end;
3613 // *************************************************************************
3614 //! \83y\83C\83\93\82Ì\83T\83C\83Y\82ð\8f\89\8aú\89»\82·\82é
3615 // *************************************************************************
3616 procedure TGikoDM.PaneInitActionExecute(Sender: TObject);
3617 begin
3618         GikoForm.CabinetPanel.Width := 150;
3619         GikoForm.MessagePanel.Height := 40;
3620
3621         GikoForm.BrowserSizeWidth := 200;
3622         GikoForm.BrowserSizeHeight := 200;
3623         if ArrangeAction.Checked then begin
3624                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3625         end else begin
3626                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3627         end;
3628         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
3629                 if GikoSys.Setting.ListHeightState = glsMax then begin
3630                         BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3631                         GikoSys.Setting.ListHeightState := glsNormal;
3632                 end;
3633         end else begin
3634                 if GikoSys.Setting.ListWidthState = glsMax then begin
3635                         BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3636                         GikoSys.Setting.ListWidthState := glsNormal;
3637                 end;
3638         end;
3639 end;
3640 // *************************************************************************
3641 //! \83u\83\89\83E\83U\83^\83u\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3642 // *************************************************************************
3643 procedure TGikoDM.BrowserTabVisibleActionExecute(Sender: TObject);
3644 begin
3645         GikoSys.Setting.BrowserTabVisible := BrowserTabVisibleAction.Checked;
3646         GikoForm.SetBrowserTabState;
3647 end;
3648 // *************************************************************************
3649 //! \83u\83\89\83E\83U\83^\83u\82ð\8fã\82É\95\\8e¦\82·\82é
3650 // *************************************************************************
3651 procedure TGikoDM.BrowserTabTopActionExecute(Sender: TObject);
3652 begin
3653         BrowserTabBottomAction.Checked := False;
3654         BrowserTabTopAction.Checked := True;
3655         GikoSys.Setting.BrowserTabPosition := gtpTop;
3656         GikoForm.SetBrowserTabState;
3657 end;
3658 // *************************************************************************
3659 //! \83u\83\89\83E\83U\83^\83u\82ð\89º\82É\95\\8e¦\82·\82é
3660 // *************************************************************************
3661 procedure TGikoDM.BrowserTabBottomActionExecute(Sender: TObject);
3662 begin
3663         BrowserTabTopAction.Checked := False;
3664         BrowserTabBottomAction.Checked := True;
3665         GikoSys.Setting.BrowserTabPosition := gtpBottom;
3666         GikoForm.SetBrowserTabState;
3667 end;
3668 // *************************************************************************
3669 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83^\83u\83X\83^\83C\83\8b\82É\82·\82é
3670 // *************************************************************************
3671 procedure TGikoDM.BrowserTabTabStyleActionExecute(Sender: TObject);
3672 begin
3673         BrowserTabButtonStyleAction.Checked := False;
3674         BrowserTabFlatStyleAction.Checked := False;
3675         BrowserTabTabStyleAction.Checked := True;
3676         GikoSys.Setting.BrowserTabStyle := gtsTab;
3677         GikoForm.SetBrowserTabState;
3678 end;
3679 // *************************************************************************
3680 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
3681 // *************************************************************************
3682 procedure TGikoDM.BrowserTabButtonStyleActionExecute(Sender: TObject);
3683 begin
3684         BrowserTabTabStyleAction.Checked := False;
3685         BrowserTabFlatStyleAction.Checked := False;
3686         BrowserTabButtonStyleAction.Checked := True;
3687         GikoSys.Setting.BrowserTabStyle := gtsButton;
3688         GikoForm.SetBrowserTabState;
3689 end;
3690 // *************************************************************************
3691 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83t\83\89\83b\83g\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
3692 // *************************************************************************
3693 procedure TGikoDM.BrowserTabFlatStyleActionExecute(Sender: TObject);
3694 begin
3695         BrowserTabFlatStyleAction.Checked := True;
3696         BrowserTabTabStyleAction.Checked := False;
3697         BrowserTabButtonStyleAction.Checked := False;
3698         GikoSys.Setting.BrowserTabStyle := gtsFlat;
3699         GikoForm.SetBrowserTabState;
3700 end;
3701 // *************************************************************************
3702 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3703 // *************************************************************************
3704 procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject);
3705 begin
3706         GikoForm.ActiveContent.Browser.SetFocus;
3707 end;
3708 // *************************************************************************
3709 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3710 // *************************************************************************
3711 procedure TGikoDM.SetFocusForBrowserActionUpdate(Sender: TObject);
3712 begin
3713         if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) and
3714                 (GikoForm.ActiveContent.Browser <> GikoForm.BrowserNullTab.Browser) then
3715                 TAction(Sender).Enabled := true
3716         else
3717                 TAction(Sender).Enabled := false;
3718 end;
3719 // *************************************************************************
3720 //! \83X\83\8c\83b\83h\88ê\97\97\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3721 // *************************************************************************
3722 procedure TGikoDM.SetFocusForThreadListActionExecute(Sender: TObject);
3723 begin
3724         if GikoForm.ActiveContent <> nil then
3725                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3726         GikoForm.ListView.SetFocus;
3727
3728         if( GikoForm.ListView.Items.Count > 0 ) and (GikoForm.ListView.ItemFocused = nil) then
3729                 GikoForm.ListView.Items.Item[0].Selected := true; //\91I\91ð\83A\83C\83e\83\80\82ª\96³\82¢\82Æ\82«\82Í\90æ\93ª\82Ì\82ð\91I\91ð\82·\82é
3730
3731         //\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
3732         if (GikoForm.ListView.ItemFocused <> nil) then begin
3733                 GikoForm.ListView.ItemFocused.MakeVisible(False);
3734         end;
3735 end;
3736 // *************************************************************************
3737 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3738 // *************************************************************************
3739 procedure TGikoDM.SetFocusForCabinetActionExecute(Sender: TObject);
3740 begin
3741         if GikoForm.ActiveContent <> nil then
3742                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3743         if GikoForm.TreeView.Visible then begin
3744                 GikoForm.TreeView.SetFocus;
3745                 if(GikoForm.TreeView.Items.Count > 0) and ( GikoForm.TreeView.Selected = nil ) then
3746                         GikoForm.TreeView.Items.Item[0].Selected := true;
3747         end else if GikoForm.FavoriteTreeView.Visible then begin
3748                 GikoForm.FavoriteTreeView.SetFocus;
3749                 if(GikoForm.FavoriteTreeView.Items.Count > 0) and (GikoForm.FavoriteTreeView.Selected = nil) then
3750                         GikoForm.FavoriteTreeView.Items.Item[0].Selected := true;
3751         end;
3752 end;
3753 // *************************************************************************
3754 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3755 // *************************************************************************
3756 procedure TGikoDM.SetFocusForCabinetActionUpdate(Sender: TObject);
3757 begin
3758         SetFocusForCabinetAction.Enabled := GikoForm.CabinetPanel.Visible;
3759 end;
3760 // *************************************************************************
3761 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3762 // *************************************************************************
3763 procedure TGikoDM.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
3764 begin
3765         BrowserMinAction.Execute;
3766         SetFocusForThreadListAction.Execute;
3767 end;
3768 // *************************************************************************
3769 //! \83X\83\8c\95\\8e¦\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3770 // *************************************************************************
3771 procedure TGikoDM.BrowserMaxAndFocusActionExecute(Sender: TObject);
3772 begin
3773         BrowserMaxAction.Execute;
3774         SetFocusForBrowserAction.Execute;
3775 end;
3776 // *************************************************************************
3777 //! \83X\83\8c\83b\83h\88ê\97\97\82Ì\91I\91ð\82ð\8dí\8f\9c\82·\82é
3778 // *************************************************************************
3779 procedure TGikoDM.UnSelectedListViewActionExecute(Sender: TObject);
3780 begin
3781         if GikoForm.ListView.Selected <> nil then begin
3782                 GikoForm.ListView.Selected.Focused := True;
3783                 GikoForm.ListView.Selected := nil;
3784         end;
3785 end;
3786 ////////////////////////////////\95\\8e¦\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3787 // *************************************************************************
3788 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8aù\93Ç\82É\82·\82é
3789 // *************************************************************************
3790 procedure TGikoDM.KidokuActionExecute(Sender: TObject);
3791 var
3792         List: TList;
3793         i: Integer;
3794 begin
3795         List := TList.Create;
3796         try
3797                 GikoForm.SelectListItem(List);
3798                 for i := 0 to List.Count - 1 do begin
3799                         if TObject(List[i]) is TThreadItem then begin
3800                                 if (TThreadItem(List[i]).UnRead) then begin
3801                                         TThreadItem(List[i]).UnRead := false;
3802                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
3803                                 end;
3804                         end;
3805                 end;
3806                 if GikoForm.TreeView.Visible then
3807                         GikoForm.TreeView.Refresh;
3808                 if GikoForm.ListView.Visible then
3809                         GikoForm.ListView.Refresh;
3810         finally
3811                 List.Free;
3812         end;
3813 end;
3814 // *************************************************************************
3815 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\96¢\93Ç\82É\82·\82é
3816 // *************************************************************************
3817 procedure TGikoDM.MidokuActionExecute(Sender: TObject);
3818 var
3819         List: TList;
3820         i: Integer;
3821 begin
3822         List := TList.Create;
3823         try
3824                 GikoForm.SelectListItem(List);
3825                 for i := 0 to List.Count - 1 do begin
3826                         if TObject(List[i]) is TThreadItem then begin
3827                                 if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin
3828                                         TThreadItem(List[i]).UnRead := true;
3829                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
3830                                 end;
3831                         end;
3832                 end;
3833                 if GikoForm.TreeView.Visible then
3834                         GikoForm.TreeView.Refresh;
3835                 if GikoForm.ListView.Visible then
3836                         GikoForm.ListView.Refresh;
3837         finally
3838                 List.Free;
3839         end;
3840 end;
3841 // *************************************************************************
3842 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82é
3843 // *************************************************************************
3844 procedure TGikoDM.AllSelectActionExecute(Sender: TObject);
3845 begin
3846         GikoForm.ListViewAllSelect;
3847 end;
3848 // *************************************************************************
3849 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
3850 // *************************************************************************
3851 procedure TGikoDM.AllSelectActionUpdate(Sender: TObject);
3852 begin
3853         AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0;
3854 end;
3855 ////////////////////////////////\95Ò\8fW\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3856 end.
3857