OSDN Git Service

6c80978677d1f27a12b4107b7307c7bad33cf229
[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, BrowserRecord;
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.ActiveContent.Move(IntToStr(res));
1529                         SetFocusForBrowserAction.Execute;
1530                 end else if res > GikoForm.GetActiveContent.Count then begin
1531                         GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
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 begin
1685         Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1686         try
1687                 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1688                 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1689                 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1690                 case GikoForm.ToolBarSettingSender of
1691                 tssMain:                Dlg.ToolBarIndex := 0;
1692                 tssList:                Dlg.ToolBarIndex := 1;
1693                 tssBrowser: Dlg.ToolBarIndex := 2;
1694                 end;
1695                 if Dlg.ShowModal = mrOK then begin
1696                         GikoForm.SetToolBarPopup;
1697
1698                         //\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é
1699                         for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1700                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1701                                         GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1702                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1703                                         GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1704                         end;
1705                         for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1706                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1707                                         GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1708                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1709                                         GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1710                         end;
1711                         for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1712                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1713                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1714                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1715                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1716                         end;
1717
1718                         SaveToolBarSetting(GikoForm.StdToolBar);
1719                         SaveToolBarSetting(GikoForm.ListToolBar);
1720                         //ListToolBar\82É\82¢\82é\82©\82à\82µ\82ê\82È\82¢\8di\8d\9e\82ÝComboBox\82ð\94z\92u
1721                         GikoForm.SetSelectComboBox;
1722                         GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1723                         SaveToolBarSetting(GikoForm.BrowserToolBar);
1724                 end;
1725         finally
1726                 Dlg.Release;
1727                 GikoForm.ToolBarSettingSender := tssNone;
1728         end;
1729 end;
1730 // *************************************************************************
1731 //! \83~\83\85\81[\83g
1732 // *************************************************************************
1733 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1734 begin
1735         GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1736 end;
1737 ////////////////////////////////\83c\81[\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1738 // *************************************************************************
1739 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1740 // *************************************************************************
1741 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1742 var
1743         Board: TBoard;
1744         TmpTreeNode: TTreeNode;
1745 begin
1746         TmpTreeNode := GikoForm.ClickNode;
1747         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1748         Board := nil;
1749
1750         if TObject(TmpTreeNode.Data) is TBoard then
1751                 Board := TBoard(TmpTreeNode.Data)
1752         else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1753                 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1754
1755         if Board <> nil then
1756                 GikoForm.DownloadList(Board);
1757 end;
1758 // *************************************************************************
1759 //! \91I\91ð\82³\82ê\82½\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1760 // *************************************************************************
1761 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1762 var
1763         ThreadItem: TThreadItem;
1764         TmpTreeNode: TTreeNode;
1765 begin
1766         TmpTreeNode := GikoForm.ClickNode;
1767         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1768         ThreadItem := nil;
1769
1770         if TObject(TmpTreeNode.Data) is TThreadItem then
1771                 ThreadItem := TThreadItem(TmpTreeNode.Data)
1772         else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1773                 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1774
1775         if ThreadItem <> nil then
1776                 GikoForm.DownloadContent(ThreadItem);
1777 end;
1778 // *************************************************************************
1779 //! \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
1780 // *************************************************************************
1781 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1782 var
1783         TmpTreeNode: TTreeNode;
1784         s: string;
1785 begin
1786         TmpTreeNode := GikoForm.ClickNode;
1787         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1788         if TObject(TmpTreeNode.Data) is TBoard then begin
1789                 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1790         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1791                 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1792         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1793                 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1794         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1795                 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1796         end;
1797         Clipboard.AsText := s;
1798 end;
1799 // *************************************************************************
1800 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
1801 // *************************************************************************
1802 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1803 var
1804         TmpTreeNode: TTreeNode;
1805         s: string;
1806 begin
1807         TmpTreeNode := GikoForm.ClickNode;
1808         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1809         if TObject(TmpTreeNode.Data) is TBoard then begin
1810                 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1811         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1812                 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1813         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1814                 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1815         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1816                 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1817         end;
1818         Clipboard.AsText := s;
1819 end;
1820 // *************************************************************************
1821 //! \82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
1822 // *************************************************************************
1823 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1824 begin
1825         GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1826 end;
1827 // *************************************************************************
1828 //! \94Â\96¼\8c\9f\8dõ
1829 // *************************************************************************
1830 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1831 var
1832         s : String;
1833         msg : String;
1834         CurItem : TTreeNode;
1835         next : boolean;
1836 begin
1837         if InputQuery('\94Â\96¼\8c\9f\8dõ','\94Â\96¼\82Ì\93ü\97Í',s) then begin
1838                 next := true;
1839                 while next do begin
1840                         if GikoForm.TreeView.Selected = nil then
1841                                 CurItem := GikoForm.TreeView.Items.GetFirstNode
1842                         else begin
1843                                 CurItem := GikoForm.TreeView.Selected.GetNext;
1844                                 if CurItem = nil then
1845                                         CurItem := GikoForm.TreeView.Items.GetFirstNode;
1846                         end;
1847                         while CurItem <> nil do begin
1848                                 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1849                                         break;
1850                                 end;
1851                                 CurItem := CurItem.GetNext;
1852                         end;
1853                         try
1854                                 if CurItem = nil then begin
1855                                         msg := '\90æ\93ª\82É\96ß\82è\82Ü\82·\82©\81H';
1856                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1857                                                 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1858                                         end else begin
1859                                                 Exit;
1860                                         end;
1861                                         GikoForm.TreeView.Select(CurItem);
1862                                         GikoForm.TreeView.SetFocus;
1863                                 end else begin
1864                                         GikoForm.TreeView.Select(CurItem);
1865                                         GikoForm.TreeView.SetFocus;
1866                                         msg := '\8e\9f\82É\8ds\82«\82Ü\82·\82©\81H';
1867                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1868                                                 next := true;
1869                                         end else begin
1870                                                 next := false;
1871                                         end;
1872                                 end;
1873
1874                         except
1875                                 Exit;
1876                         end;
1877                 end;
1878         end;
1879 end;
1880 // *************************************************************************
1881 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
1882 // *************************************************************************
1883 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1884 var
1885         s: string;
1886 begin
1887         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1888         s := GikoForm.ClickNode.Text;
1889         Clipboard.AsText := s;
1890 end;
1891 ////////////////////////////////\83c\83\8a\81[\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1892 // *************************************************************************
1893 //! \83\8d\83O\83C\83\93\81^\83\8d\83O\83A\83E\83g\82ð\82·\82é
1894 // *************************************************************************
1895 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1896 var
1897         TmpCursor: TCursor;
1898         msg : String;
1899 begin
1900         if GikoSys.Dolib.Connected then begin
1901                 //\83\8d\83O\83A\83E\83g
1902                 GikoSys.Dolib.Disconnect;
1903                 LoginAction.Checked := False;
1904                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogout)), nil, gmiOK);
1905                 LoginAction.Caption := '\83\8d\83O\83C\83\93(&L)';
1906         end else begin
1907                 TmpCursor := GikoForm.ScreenCursor;
1908                 GikoForm.ScreenCursor := crHourGlass;
1909                 try
1910                         //\92Ê\8fí\83\8d\83O\83C\83\93
1911                         if not GikoSys.Setting.ForcedLogin then begin
1912                                 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1913                                 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1914                                 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1915                                 if GikoSys.Setting.ReadProxy then begin
1916                                         GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1917                                         GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1918                                 end else begin
1919                                         GikoSys.Dolib.ProxyAddress := '';
1920                                         GikoSys.Dolib.ProxyPort := 0;
1921                                 end;
1922                                 if GikoSys.Dolib.Connect then begin
1923                                         LoginAction.Checked := True;
1924                                         GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1925                                         LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
1926                                         //LoginToolButton.Style := tbsCheck;
1927                                 end else begin
1928                 //                      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);
1929                                         GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1930                                         GikoForm.PlaySound('Error');
1931                                         LoginAction.Checked := False;
1932                                         //LoginToolButton.Down := False;
1933                                         ///LoginToolButton.Style := tbsButton;
1934                                 end;
1935                         end else begin
1936                                 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
1937                                                 + '\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
1938                                                 + '\82±\82Ì\83\82\81[\83h\82Å\83\8d\83O\83C\83\93\82ð\8e\8e\82Ý\82Ü\82·\82©\81H' + #13#10;
1939                                 if MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_YESNO or MB_ICONEXCLAMATION) = IDYES  then begin
1940                                         GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1941                                         GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1942                                         GikoSys.Dolib.Password := GikoSys.Setting.Password;
1943                                         if GikoSys.Setting.ReadProxy then begin
1944                                                 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1945                                                 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1946                                         end else begin
1947                                                 GikoSys.Dolib.ProxyAddress := '';
1948                                                 GikoSys.Dolib.ProxyPort := 0;
1949                                         end;
1950                                         //SSL\8fá\8aQ\97p\8b­\90§\83\8d\83O\83C\83\93
1951                                         GikoSys.Dolib.ForcedConnect;
1952                                         if GikoSys.Dolib.Connect then begin
1953                                                 LoginAction.Checked := True;
1954                                                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1955                                                 LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
1956                                                 //LoginToolButton.Style := tbsCheck;
1957                                                 end else begin
1958                         //                      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);
1959                                                 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1960                                                 GikoForm.PlaySound('Error');
1961                                                 LoginAction.Checked := False;
1962                                                 //LoginToolButton.Down := False;
1963                                                 //LoginToolButton.Style := tbsButton;
1964                                         end;
1965                                 end else begin
1966                                         LoginAction.Checked := False;
1967                                         //LoginToolButton.Down := False;
1968                                         //LoginToolButton.Style := tbsButton;
1969                                 end;
1970                         end;
1971                 finally
1972                         GikoForm.ScreenCursor := TmpCursor;
1973                 end;
1974         end;
1975 end;
1976 // *************************************************************************
1977 //! \83{\81[\83h\8dX\90V\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1978 // *************************************************************************
1979 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1980 var
1981         Dlg: TNewBoardDialog;
1982         Msg: string;
1983 begin
1984         if GikoForm.EditorFormExists then begin
1985                 Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
1986                 MsgBox(GikoForm.Handle, Msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
1987                 Exit;
1988         end;
1989         Dlg := TNewBoardDialog.Create(GikoForm);
1990         try
1991                 Dlg.ShowModal;
1992         finally
1993                 Dlg.Release;
1994         end;
1995 end;
1996 // *************************************************************************
1997 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
1998 // *************************************************************************
1999 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
2000 const
2001         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';
2002         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';
2003         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2004 var
2005         ThreadItem: TThreadItem;
2006         TmpListItem: TListItem;
2007         List: TList;
2008         i: Integer;
2009 begin
2010         List := TList.Create;
2011         try
2012                 TmpListItem := GikoForm.ListView.Selected;
2013                 while TmpListItem <> nil do begin
2014                         if TObject(TmpListItem.Data) is TThreadItem then begin
2015                                 ThreadItem := TThreadItem(TmpListItem.Data);
2016                                 if ThreadItem.IsLogFile then
2017                                         List.Add(ThreadItem);
2018                         end;
2019                         TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
2020                 end;
2021
2022                 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
2023                         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
2024                                 if List.Count = 1 then begin
2025                                         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
2026                                                 Exit;
2027                                 end else begin
2028                                         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
2029                                                 Exit;
2030                                 end;
2031                         end;
2032                 end;
2033
2034                 for i := 0 to List.Count - 1 do begin
2035                         ThreadItem := TThreadItem(List[i]);
2036                         GikoForm.DeleteHistory(ThreadItem);
2037                         GikoForm.DeleteTab(ThreadItem);
2038                         ThreadItem.DeleteLogFile;
2039
2040                         GikoForm.TreeView.Refresh;      // UnRead \82Ì\95\\8e¦\82ð\8dX\90V
2041                 end;
2042                 GikoForm.ListView.Refresh;
2043         finally
2044                 List.Free;
2045         end;
2046 end;
2047 // *************************************************************************
2048 //! 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Ê
2049 // *************************************************************************
2050 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
2051 begin
2052         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
2053                                                                 and (GikoForm.ListView.SelCount > 0);
2054 end;
2055 // *************************************************************************
2056 //! \8di\8d\9e\82Ý\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2057 // *************************************************************************
2058 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
2059 const
2060         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';
2061         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2062 begin
2063         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2064                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2065                         Exit;
2066         GikoSys.Setting.SelectTextList.Clear;
2067         GikoForm.SelectComboBox.Items.Clear;
2068         GikoForm.SelectComboBox.Text := '';
2069         GikoForm.SetListViewType( gvtAll );
2070 end;
2071 // *************************************************************************
2072 //! \83\8c\83X\83G\83f\83B\83^\82Ì\96¼\91O\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2073 // *************************************************************************
2074 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2075 const
2076         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';
2077         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2078 begin
2079         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2080                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2081                         Exit;
2082         GikoSys.Setting.NameList.Clear;
2083         GikoForm.AllEditroFormNameTextClearClear;
2084 end;
2085 // *************************************************************************
2086 //! \83\8c\83X\83G\83f\83B\83^\82Ì\83\81\81[\83\8b\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
2087 // *************************************************************************
2088 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2089 const
2090         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';
2091         DEL_TITLE = '\8dí\8f\9c\8am\94F';
2092 begin
2093         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2094                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2095                         Exit;
2096         GikoSys.Setting.MailList.Clear;
2097         GikoForm.AllEditroFormMailTextClearClear;
2098 end;
2099 // *************************************************************************
2100 //! \83M\83R\83i\83r\82ð\8fI\97¹\82·\82é
2101 // *************************************************************************
2102 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2103 begin
2104         GikoForm.Close;
2105 end;
2106 // *************************************************************************
2107 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\91O\8f\88\97\9d
2108 // *************************************************************************
2109 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2110 begin
2111         ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2112 end;
2113 // *************************************************************************
2114 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\8f\88\97\9d
2115 // *************************************************************************
2116 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2117 begin
2118         if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2119                 ShowMessage('\83t\83@\83C\83\8b\82ð\8fo\97Í\82µ\82Ü\82µ\82½');
2120         end else begin
2121                 ShowMessage('\83t\83@\83C\83\8b\82Ì\8fo\97Í\82É\8e¸\94s\82µ\82Ü\82µ\82½');
2122         end;
2123 end;
2124 // *************************************************************************
2125 //! \91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91
2126 // *************************************************************************
2127 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2128 var
2129         List: TList;
2130         i: Integer;
2131         html: TStringList;
2132         title: string;
2133 begin
2134         List := TList.Create;
2135         try
2136                 GikoForm.ScreenCursor := crHourGlass;
2137                 GikoForm.SelectListItem(List);
2138                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2139                         (GikoSys.Setting.ListHeightState = glsMax)) or
2140                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2141                         (GikoSys.Setting.ListWidthState = glsMax))      then
2142                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2143                 else if(List.Count = 0) then
2144                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2145                 else begin
2146                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91¶';
2147                         FileSaveAs1.Dialog.Filter := 'HTML\83t\83@\83C\83\8b(*.html)|*.html';
2148                         for i := 0 to List.Count - 1 do begin
2149                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2150                                         FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2151                                         if FileSaveAs1.Dialog.Execute then begin
2152                                                 html := TStringList.Create;
2153                                                 title := TThreadItem(List[i]).Title;
2154                                                 try
2155                                                         HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2156                                                         html.SaveToFile(FileSaveAs1.Dialog.FileName);
2157                                                         THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
2158                                                 finally
2159                                                         html.Free;
2160                                                 end;
2161                                         end;
2162                                 end;
2163                         end;
2164                 end;
2165         finally
2166                 GikoForm.ScreenCursor := crDefault;
2167                 List.Free;
2168         end;
2169 end;
2170 // *************************************************************************
2171 //! \91I\91ð\83X\83\8c\83b\83h\82ðDAT\8c`\8e®\82Ì\82Ü\82Ü\95Û\91
2172 // *************************************************************************
2173 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2174 var
2175         List: TList;
2176         i: Integer;
2177 begin
2178         List := TList.Create;
2179         try
2180                 GikoForm.ScreenCursor := crHourGlass;
2181                 GikoForm.SelectListItem(List);
2182                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2183                         (GikoSys.Setting.ListHeightState = glsMax)) or
2184                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2185                         (GikoSys.Setting.ListWidthState = glsMax)) then
2186                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2187                 else if(List.Count = 0) then
2188                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2189                 else begin
2190                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðdat\82Ì\82Ü\82Ü\95Û\91¶';
2191                         FileSaveAs1.Dialog.Filter := 'DAT\83t\83@\83C\83\8b(*.dat)|*.dat';
2192                         for i := 0 to List.Count - 1 do begin
2193                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2194                                         FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
2195                                         if FileSaveAs1.Dialog.Execute then begin
2196                                                 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2197                                                 PChar(FileSaveAs1.Dialog.FileName), true);
2198                                         end;
2199                                 end;
2200                         end;
2201                 end;
2202         finally
2203                 GikoForm.ScreenCursor := crDefault;
2204                 List.Free;
2205         end;
2206
2207 end;
2208 // *************************************************************************
2209 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95Û\91
2210 // *************************************************************************
2211 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2212 begin
2213         if not GikoForm.SaveTabURLs then begin
2214                 if TabsSaveAction.Tag = 0 then
2215                         ShowMessage('\95Û\91\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ')
2216                 else if TabsSaveAction.Tag = 1 then
2217                         GikoDM.TabsOpenAction.Tag := -1;
2218         end;
2219 end;
2220 // *************************************************************************
2221 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95\9c\8c³
2222 // *************************************************************************
2223 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2224 begin
2225         if TabsOpenAction.Tag <> -1 then begin
2226                 if not GikoForm.LoadTabURLs then begin
2227                         if TabsOpenAction.Tag = 0 then
2228                                 ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
2229                 end;
2230         end;
2231 end;
2232 // *************************************************************************
2233 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95Û\91
2234 // *************************************************************************
2235 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2236 begin
2237         GikoForm.SaveTabURLs;
2238 end;
2239 // *************************************************************************
2240 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95\9c\8c³
2241 // *************************************************************************
2242 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2243 begin
2244         GikoForm.LoadTabURLs;
2245 end;
2246 // *************************************************************************
2247 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é
2248 // *************************************************************************
2249 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2250 begin
2251         GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2252 end;
2253 // *************************************************************************
2254 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é\82ÌUpdate\83C\83x\83\93\83g
2255 // *************************************************************************
2256 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2257 begin
2258         if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2259                 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2260                 else BeLogInOutAction.Checked := false;
2261                 BeLogInOutAction.Enabled := true
2262         end else
2263                 BeLogInOutAction.Enabled := false;
2264 end;
2265 ////////////////////////////////\83t\83@\83C\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2266 // *************************************************************************
2267 //! \83R\83R\82Ü\82Å\93Ç\82ñ\82¾
2268 // *************************************************************************
2269 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2270 var
2271         No: Integer;
2272         ThreadItem: TThreadItem;
2273 begin
2274         No := GikoForm.KokoPopupMenu.Tag;
2275         if No = 0 then Exit;
2276         ThreadItem := GikoForm.GetActiveContent;
2277         if ThreadItem = nil then Exit;
2278         ThreadItem.Kokomade := No;
2279         GikoForm.ActiveContent.Thread.ScrollTop :=
2280                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2281         GikoForm.ActiveContent.Repaint := true;
2282         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2283         //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é
2284         //Application.ProcessMessages;
2285 end;
2286 // *************************************************************************
2287 //! \91S\95\94\93Ç\82ñ\82¾
2288 // *************************************************************************
2289 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2290 var
2291         ThreadItem: TThreadItem;
2292 begin
2293         ThreadItem := GikoForm.GetActiveContent;
2294         if ThreadItem = nil then Exit;
2295         ThreadItem.Kokomade := -1;
2296         GikoForm.ActiveContent.Thread.ScrollTop :=
2297                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2298         GikoForm.ActiveContent.Repaint := true;
2299         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2300         //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é
2301         //Application.ProcessMessages;
2302 end;
2303 // *************************************************************************
2304 //! \83R\83R\82É\83\8c\83X
2305 // *************************************************************************
2306 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2307 var
2308         Editor: TEditorForm;
2309         Item: TThreadItem;
2310         Number: Integer;
2311 begin
2312         Number := GikoForm.KokoPopupMenu.Tag;
2313         if Number = 0 then Exit;
2314         Item := GikoForm.GetActiveContent;
2315         if Item = nil then Exit;
2316
2317         Editor := TEditorForm.Create(GikoForm);
2318         Editor.SetThreadItem(Item);
2319         GikoSys.LoadEditorKeySetting(Editor.ActionList);
2320         Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2321         Editor.Show;
2322         Editor.BodyEdit.SetFocus;
2323 end;
2324 // *************************************************************************
2325 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2326 // *************************************************************************
2327 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2328 begin
2329         GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2330 end;
2331 // *************************************************************************
2332 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2333 // *************************************************************************
2334 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2335 var
2336         ThreadItem : TThreadItem;
2337         No, count, rc : Integer;
2338         body : string;
2339         limited: boolean;
2340 begin
2341         No := GikoForm.KokoPopupMenu.Tag;
2342         if No = 0 then Exit;
2343         ThreadItem := GikoForm.GetActiveContent;
2344         if ThreadItem = nil then Exit;
2345         count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2346         limited := false;
2347         if count > 20 then begin
2348                 rc := GikoUtil.MsgBox(GikoForm.Handle,
2349                                 '20\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
2350                                 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
2351                                 MB_YESNO or MB_ICONQUESTION);
2352                 limited := rc <> ID_YES;
2353         end;
2354         body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2355         GikoForm.ActiveContent.IDAnchorPopup(body);
2356 end;
2357 // *************************************************************************
2358 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\92Ê\8fí\81j
2359 // *************************************************************************
2360 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2361 begin
2362         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2363 end;
2364 // *************************************************************************
2365 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\93§\96¾\81j
2366 // *************************************************************************
2367 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2368 begin
2369         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2370 end;
2371 // *************************************************************************
2372 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c
2373 // *************************************************************************
2374 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2375 var
2376         IndividualForm :TIndividualAbonForm;
2377         ThreadItem : TThreadItem;
2378         msg : String;
2379         ReadList                : TStringList;
2380         wordCount               : TWordCount;
2381 begin
2382         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2383         try
2384                 ThreadItem := GikoForm.GetActiveContent;
2385                 ThreadItem.ScrollTop :=
2386                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2387                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2388                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2389                                 ReadList                := TStringList.Create;
2390                                 wordCount               := TWordCount.Create;
2391                                 try
2392 {$IFDEF SPAM_FILTER_ENABLED}
2393                                         // \83X\83p\83\80\82ð\89ð\8f\9c
2394                                         ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2395                                         GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2396                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2397                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2398 {$ENDIF}
2399                                         if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2400                                                 GikoForm.ActiveContent.Repaint := true;
2401                                                 GikoForm.InsertBrowserTab( ThreadItem, True );
2402                                         end;
2403                                 finally
2404                                         wordCount.Free;
2405                                         ReadList.Free;
2406                                 end;
2407                         end else begin
2408                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2409                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2410                         end;
2411                 end;
2412         finally
2413                 IndividualForm.Release;
2414         end;
2415 end;
2416 // *************************************************************************
2417 //! \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
2418 // *************************************************************************
2419 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2420 var
2421         IndividualForm :TIndividualAbonForm;
2422         ThreadItem : TThreadItem;
2423         msg : String;
2424         ReadList                : TStringList;
2425         wordCount               : TWordCount;
2426 {$IFDEF SPAM_FILTER_ENABLED}
2427         i : Integer;
2428 {$ENDIF}
2429 begin
2430         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2431         try
2432                 ThreadItem := GikoForm.GetActiveContent;
2433                 ThreadItem.ScrollTop :=
2434                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2435                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2436                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2437                                 if (IndividualForm.ShowModal = mrOK) then begin
2438                                         ReadList                := TStringList.Create;
2439                                         wordCount               := TWordCount.Create;
2440                                         try
2441 {$IFDEF SPAM_FILTER_ENABLED}
2442                                                 // \83X\83p\83\80\82ð\89ð\8f\9c
2443                                                 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2444                                                 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2445                                                         GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2446                                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2447                                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2448                                                 end;
2449 {$ENDIF}
2450                                                 if IndividualForm.FRepaint then begin
2451                                                         GikoForm.ActiveContent.Repaint := true;
2452                                                         GikoForm.InsertBrowserTab( ThreadItem, True );
2453                                                 end;
2454                                         finally
2455                                                 wordCount.Free;
2456                                                 ReadList.Free;
2457                                         end;
2458                                 end;
2459                         end else begin
2460                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2461                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2462                         end;
2463                 end;
2464         finally
2465                 IndividualForm.Release;
2466         end;
2467 end;
2468 // *************************************************************************
2469 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\92Ê\8fí
2470 // *************************************************************************
2471 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2472 begin
2473         GikoForm.IndividualAbonID(1);
2474 end;
2475 // *************************************************************************
2476 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\93§\96¾
2477 // *************************************************************************
2478 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2479 begin
2480         GikoForm.IndividualAbonID(0);
2481 end;
2482 ////////////////////////////////\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2483 // *************************************************************************
2484 //! \83M\83R\83i\83r\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2485 // *************************************************************************
2486 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2487 begin
2488         GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2489 end;
2490 // *************************************************************************
2491 //! \83\82\83i\83W\83\89\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2492 // *************************************************************************
2493 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2494 begin
2495         GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2496 end;
2497 // *************************************************************************
2498 //! \82Q\82¿\82á\82ñ\82Ë\82é\83g\83b\83v\83y\81[\83W\82ð\95\\8e¦\82·\82é
2499 // *************************************************************************
2500 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2501 begin
2502         GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2503 end;
2504 // *************************************************************************
2505 //! \83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82ð\8aJ\82­
2506 // *************************************************************************
2507 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2508 begin
2509         GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2510 end;
2511 // *************************************************************************
2512 //! \83o\81[\83W\83\87\83\93\8fî\95ñ\82ð\95\\8e¦\82·\82é
2513 // *************************************************************************
2514 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2515 var
2516         Dlg: TAboutDialog;
2517 begin
2518         Dlg := TAboutDialog.Create(GikoForm);
2519         try
2520                 Dlg.ShowModal;
2521         finally
2522                 Dlg.Release;
2523         end;
2524 end;
2525 // *************************************************************************
2526 //! \83M\83R\83i\83r\82Ì\83w\83\8b\83v\82ð\95\\8e¦\82·\82é
2527 // *************************************************************************
2528 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2529 var
2530         FileName: string;
2531 begin
2532         FileName := GikoSys.GetAppDir + 'batahlp.chm';
2533         if not FileExists(FileName) then begin
2534                 MsgBox(
2535                         GikoForm.Handle,
2536                         '\83w\83\8b\83v\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\82Å\82µ\82½' + #13#10 +
2537                         '\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 +
2538                         '\83w\83\8b\83v\82Í\83M\83R\83i\83r\82Ì\83T\83C\83g\82É\92u\82¢\82Ä\82 \82è\82Ü\82·',
2539                         '\83G\83\89\81[',
2540                         MB_ICONSTOP);
2541                 Exit;
2542         end;
2543         ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2544 end;
2545 // *************************************************************************
2546 //! \83M\83R\83i\83rWiki\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2547 // *************************************************************************
2548 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2549 begin
2550         GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2551 end;
2552 ////////////////////////////////\83w\83\8b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2553 // *************************************************************************
2554 //! \83\8a\83X\83g\94Ô\8d\86\95\\8e¦\82ð\95Ï\8dX\82·\82é
2555 // *************************************************************************
2556 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2557 begin
2558         GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2559         GikoForm.ListView.Refresh;
2560 end;
2561 // *************************************************************************
2562 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82é
2563 // *************************************************************************
2564 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2565 begin
2566         if GikoForm.GetActiveList is TBoard then begin
2567                 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2568                         GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2569         end else if GikoForm.GetActiveList is TCategory then begin
2570                 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2571         end;
2572 end;
2573 // *************************************************************************
2574 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82éUpDate\83C\83x\83\93\83g
2575 // *************************************************************************
2576 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2577 begin
2578         UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2579 end;
2580 // *************************************************************************
2581 //! \95\\8e¦\81@\95\\8e¦\83\8a\83X\83g\82Ì\83\82\81[\83h\95Ï\8dX
2582 // *************************************************************************
2583 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2584 begin
2585         case GikoForm.ListView.ViewStyle of
2586                 vsIcon: SmallIconAction.Execute;
2587                 vsSmallIcon: ListIconAction.Execute;
2588                 vsList: DetailIconAction.Execute;
2589                 vsReport: LargeIconAction.Execute;
2590         end;
2591 end;
2592 // *************************************************************************
2593 //! \83X\83\8c\83b\83h\82ð\82·\82×\82Ä\95\\8e¦\82·\82é
2594 // *************************************************************************
2595 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2596 begin
2597         try
2598                 if GikoForm.ViewType <> gvtAll then
2599                         GikoForm.SetListViewType(gvtAll);
2600                 GikoSys.Setting.ThreadRange := gtrAll;
2601                 AllItemAction.Checked           := True;
2602                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2603                 GikoForm.ModifySelectList;
2604                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2605                 if GikoForm.SelectComboBoxPanel.Visible then begin
2606                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2607                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2608                         GikoForm.ListView.SetFocus;
2609                 end;
2610         except
2611         end;
2612 end;
2613 // *************************************************************************
2614 //! \83\8d\83O\97L\82è\83X\83\8c\83b\83h\82Ì\82Ý\82ð\95\\8e¦\82·\82é
2615 // *************************************************************************
2616 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2617 begin
2618         try
2619                 if GikoForm.ViewType <> gvtLog then
2620                         GikoForm.SetListViewType(gvtLog);
2621                 GikoSys.Setting.ThreadRange     := gtrLog;
2622                 LogItemAction.Checked := True;
2623                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2624                 GikoForm.ModifySelectList;
2625                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2626                 if GikoForm.SelectComboBoxPanel.Visible  then begin
2627                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2628                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2629                         GikoForm.ListView.SetFocus;
2630                 end;
2631         except
2632         end;
2633 end;
2634 // *************************************************************************
2635 //! \90V\92\85\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
2636 // *************************************************************************
2637 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2638 begin
2639         try
2640
2641                 if GikoForm.ViewType <> gvtNew then
2642                         GikoForm.SetListViewType(gvtNew);
2643                 GikoSys.Setting.ThreadRange     := gtrNew;
2644                 NewItemAction.Checked := True;
2645                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2646                 GikoForm.ModifySelectList;
2647                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2648                 if GikoForm.SelectComboBoxPanel.Visible then begin
2649                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2650                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2651                         GikoForm.ListView.SetFocus;
2652                 end;
2653         except
2654         end;
2655 end;
2656 // *************************************************************************
2657 //! \83X\83\8c\83b\83h\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
2658 // *************************************************************************
2659 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2660 begin
2661         case GikoSys.Setting.ThreadRange of
2662         gtrAll: AllItemAction.Execute;
2663         gtrLog: LogItemAction.Execute;
2664         gtrNew: NewItemAction.Execute;
2665         end;
2666 end;
2667 // *************************************************************************
2668 //! \83X\83\8c\83b\83h\8di\8d\9e\82Ý\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
2669 // *************************************************************************
2670 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2671 var
2672         idx: Integer;
2673         Dlg: TListSelectDialog;
2674 begin
2675         try
2676                 if GikoForm.SelectComboBoxPanel.Visible then begin
2677                         if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2678                                 // SelectComboBox \82ª\82 \82é\8fê\8d\87\82Í\83t\83H\81[\83J\83X\82ð\88Ú\82·
2679                                 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2680                                         if GikoSys.Setting.ListWidthState = glsMax then
2681                                                 BrowserMinAction.Execute;
2682                                 end else begin
2683                                         if GikoSys.Setting.ListHeightState = glsMax then
2684                                                 BrowserMinAction.Execute;
2685                                 end;
2686                                 GikoForm.SelectComboBox.SetFocus;
2687                                 exit;
2688                         end;
2689                 end;
2690         except
2691         end;
2692
2693         if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2694                 GikoForm.SelectComboBox.Text := '';
2695                 GikoForm.SelectComboBox.Color := clWindow;
2696         end;
2697
2698         AllItemAction.Checked := False;
2699         LogItemAction.Checked := False;
2700         NewItemAction.Checked := False;
2701         //SelectItemAction.Checked := True;
2702         GikoForm.ModifySelectList;
2703         Dlg := TListSelectDialog.Create(GikoForm);
2704         try
2705                 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2706                 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2707                 Dlg.ShowModal;
2708                 if Dlg.ModalResult = mrCancel then begin
2709                         if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2710                                 AllItemAction.Checked := True;
2711                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2712                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2713                         end;
2714
2715                         if GikoForm.GetActiveList is TBoard then
2716                                 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2717                 end else begin
2718                         idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2719                         if idx <> -1 then
2720                                 GikoSys.Setting.SelectTextList.Delete(idx);
2721                         GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2722                         while Dlg.SelectComboBox.Items.Count > 100 do begin
2723                                 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2724                         end;
2725
2726                         if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2727                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2728                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2729                         end else begin
2730                                 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2731                                 GikoForm.SelectComboBox.Color := clWindow;
2732                         end;
2733                         GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2734                 end;
2735         finally
2736                 Dlg.Release;
2737         end;
2738 end;
2739 // *************************************************************************
2740 //! \90V\83X\83\8c\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
2741 // *************************************************************************
2742 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2743 var
2744         Editor: TEditorForm;
2745 begin
2746         if not (GikoForm.GetActiveList is TBoard) then
2747                 Exit;
2748         Editor := TEditorForm.Create(GikoForm);
2749         Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2750         Editor.Show;
2751         Editor.BodyEdit.SetFocus;
2752 end;
2753 // *************************************************************************
2754 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
2755 // *************************************************************************
2756 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2757 var
2758         URL: string;
2759 begin
2760         if GikoForm.GetActiveList is TBoard then begin
2761                 URL := TBoard(GikoForm.GetActiveList).URL;
2762                 GikoSys.OpenBrowser(URL, gbtAuto);
2763         end;
2764 end;
2765 // *************************************************************************
2766 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
2767 // *************************************************************************
2768 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2769 var
2770         List: TList;
2771         i: Integer;
2772         s: string;
2773 begin
2774         s := '';
2775         List := TList.Create;
2776         try
2777                 GikoForm.SelectListItem(List);
2778                 for i := 0 to List.Count - 1 do begin
2779                         if TObject(List[i]) is TBoard then
2780                                 s := s + TBoard(List[i]).URL + #13#10
2781                         else if TObject(List[i]) is TThreadItem then
2782                                 s := s + TThreadItem(List[i]).URL + #13#10;
2783                 end;
2784                 if s <> '' then
2785                         Clipboard.AsText := s;
2786         finally
2787                 List.Free;
2788         end;
2789 end;
2790 // *************************************************************************
2791 //! \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
2792 // *************************************************************************
2793 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2794 begin
2795         if ((GikoForm.GetActiveList is TBoard) or
2796                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2797                 TAction(Sender).Enabled := True
2798         else
2799                 TAction(Sender).Enabled := False;
2800 end;
2801 // *************************************************************************
2802 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
2803 // *************************************************************************
2804 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2805 var
2806         List: TList;
2807         i: Integer;
2808         s: string;
2809 begin
2810         s := '';
2811         List := TList.Create;
2812         try
2813                 GikoForm.SelectListItem(List);
2814                 for i := 0 to List.Count - 1 do begin
2815                         if TObject(List[i]) is TBoard then
2816                                 s := s + TBoard(List[i]).Title + #13#10
2817                         else if TObject(List[i]) is TThreadItem then
2818                                 s := s + TThreadItem(List[i]).Title + #13#10;
2819                 end;
2820                 if s <> '' then
2821                         Clipboard.AsText := s;
2822         finally
2823                 List.Free;
2824         end;
2825 end;
2826 // *************************************************************************
2827 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
2828 // *************************************************************************
2829 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2830 begin
2831         if ((GikoForm.GetActiveList is TBoard) or
2832                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2833                 TAction(Sender).Enabled := True
2834         else
2835                 TAction(Sender).Enabled := False;
2836 end;
2837 // *************************************************************************
2838 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
2839 // *************************************************************************
2840 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2841 var
2842         List: TList;
2843         i: Integer;
2844         s: string;
2845 begin
2846         s := '';
2847         List := TList.Create;
2848         try
2849                 GikoForm.SelectListItem(List);
2850                 for i := 0 to List.Count - 1 do begin
2851                         if TObject(List[i]) is TBoard then
2852                                 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2853                         else if TObject(List[i]) is TThreadItem then
2854                                 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2855                 end;
2856                 if s <> '' then
2857                         Clipboard.AsText := s;
2858         finally
2859                 List.Free;
2860         end;
2861 end;
2862 // *************************************************************************
2863 //! \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é
2864 // *************************************************************************
2865 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2866 var
2867         i: Integer;
2868         List: TList;
2869         msg: string;
2870         shiftDown: Boolean;
2871 begin
2872         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2873         if GikoForm.GetActiveList is TCategory then begin
2874                 List := TList.Create;
2875                 try
2876                         GikoForm.SelectListItem(List);
2877                         if List.Count > 5 then begin
2878                                 msg := '5\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2879                                                  + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2880                                 MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2881                                 Exit;
2882                         end;
2883                         for i := 0 to List.Count - 1 do begin
2884                                 if TObject(List[i]) is TBoard then
2885                                         GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2886                         end;
2887                 finally
2888                         List.Free;
2889                 end;
2890         end else if GikoForm.GetActiveList is TBoard then begin
2891                 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2892         end;
2893 end;
2894 // *************************************************************************
2895 //! \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
2896 // *************************************************************************
2897 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2898 begin
2899         if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2900                 TAction(Sender).Enabled := True
2901         else if GikoForm.GetActiveList is TBoard then
2902                 TAction(Sender).Enabled := True
2903         else
2904                 TAction(Sender).Enabled := False;
2905 end;
2906 // *************************************************************************
2907 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
2908 // *************************************************************************
2909 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2910 var
2911         List: TList;
2912         i: Integer;
2913         msg: string;
2914         shiftDown: Boolean;
2915 begin
2916         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2917         List := TList.Create;
2918         try
2919                 GikoForm.SelectListItem(List);
2920                 if List.Count > 10 then begin
2921                         msg := '10\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2922                                          + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2923                         MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2924                         Exit;
2925                 end;
2926                 for i := 0 to List.Count - 1 do begin
2927                         if TObject(List[i]) is TThreadItem then
2928                                 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2929                 end;
2930         finally
2931                 List.Free;
2932         end;
2933 end;
2934 // *************************************************************************
2935 //! \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
2936 // *************************************************************************
2937 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2938 begin
2939         TAction(Sender).Enabled :=
2940                 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2941 end;
2942 // *************************************************************************
2943 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñ
2944 // *************************************************************************
2945 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2946 begin
2947         //INFO 2005/11/19 \83_\83~\81[\81H\81@by \82à\82\82ã
2948         // \82±\82Ì\83R\83\81\83\93\83g\8dí\8f\9c\82µ\82Ä\82Í\91Ê\96Ú
2949 end;
2950 // *************************************************************************
2951 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñUpdate\83C\83x\83\93\83g
2952 // *************************************************************************
2953 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2954 var
2955         i: Integer;
2956         List: TList;
2957 begin
2958         if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2959                 List := TList.Create;
2960                 try
2961                         GikoForm.SelectListItem(List);
2962                         for i := 0 to List.Count - 1 do begin
2963                                 if TObject(List[i]) is TThreadItem then begin
2964                                         if TThreadItem(List[i]).IsLogFile then begin
2965                                                 SelectReservAction.Enabled := True;
2966                                                 Exit;
2967                                         end;
2968                                 end;
2969                         end;
2970                         SelectReservAction.Enabled := False;
2971                 finally
2972                         List.Free;
2973                 end;
2974         end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2975                 SelectReservAction.Enabled := True
2976         else
2977                 SelectReservAction.Enabled := False;
2978 end;
2979 // *************************************************************************
2980 //! \91I\91ð\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82É\90V\82µ\82¢\96¼\91O\82Å\8f\84\89ñ\97\\96ñ
2981 // *************************************************************************
2982 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2983 var
2984         s: string;
2985         Dlg: TRoundNameDialog;
2986                 cnt: Integer;
2987
2988 begin
2989         //\8cÄ\82Ñ\8fo\82µ\8c³\82ª\81ATAction\82ÅListView\82É\91I\91ð\82ª\82¢\82È\82¯\82ê\82Î\81AEXIT\82·\82é
2990         if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2991                 Exit;
2992
2993         //\93o\98^\8fã\8cÀ\83`\83F\83b\83N
2994         cnt := RoundList.Count[grtBoard];
2995         cnt := cnt + RoundList.Count[grtItem];
2996         if cnt > 500 then begin
2997                         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);
2998                         Exit;
2999         end;
3000
3001         Dlg := TRoundNameDialog.Create(GikoForm);
3002         try
3003                 Dlg.ShowModal;
3004                 if Dlg.ModalResult <> mrCancel then begin
3005                         s := Trim(Dlg.RoundNameEdit.Text);
3006                         if (Sender is TMenuItem) then begin
3007                                 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
3008                         end else if (Sender is TAction) then begin
3009                                 if (GikoForm.ListView.Selected <> nil) then begin
3010                                         if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
3011                                                 GikoForm.SetSelectItemRound(True, s,
3012                                                         TThreadItem(GikoForm.ListView.Selected.Data).Title);
3013                                         end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
3014                                                 GikoForm.SetSelectItemRound(True, s,
3015                                                         TBoard(GikoForm.ListView.Selected.Data).Title);
3016                                         end;
3017                                 end;
3018                         end;
3019                         GikoForm.ListView.Refresh;
3020                 end;
3021         finally
3022                 Dlg.Free;
3023         end;
3024 end;
3025 // *************************************************************************
3026 //! \91I\91ð\82³\82ê\82Ä\82¢\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82ð\8dí\8f\9c\82·\82é
3027 // *************************************************************************
3028 procedure TGikoDM.SelectDeleteRoundExecute(Sender: TObject);
3029 var
3030         s : String;
3031 begin
3032         if (Sender is TMenuItem) then begin
3033                 try
3034                         GikoForm.SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
3035                 except
3036                 end;
3037         end else if (Sender is TAction) then begin
3038                 try
3039                         if GikoForm.ListView.Selected <> nil then begin
3040                                 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
3041                                         s := TThreadItem(GikoForm.ListView.Selected.Data).Title;
3042                                 end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
3043                                         s := TBoard(GikoForm.ListView.Selected.Data).Title;
3044                                 end;
3045                                 GikoForm.SetSelectItemRound(False, '', s);
3046
3047                         end;
3048                 except
3049                 end;
3050         end;
3051         GikoForm.ListView.Refresh;
3052 end;
3053 // *************************************************************************
3054 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
3055 // *************************************************************************
3056 procedure TGikoDM.BoardFavoriteAddActionExecute(Sender: TObject);
3057 begin
3058         if TObject(GikoForm.ListView.Selected.Data) is TBoard then
3059                 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
3060 end;
3061 // *************************************************************************
3062 //! \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
3063 // *************************************************************************
3064 procedure TGikoDM.BoardFavoriteAddActionUpdate(Sender: TObject);
3065 begin
3066         BoardFavoriteAddAction.Enabled :=
3067                 (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0);
3068 end;
3069 // *************************************************************************
3070 //! Explorer\82ÅLog\83t\83H\83\8b\83_\82ð\8aJ\82­
3071 // *************************************************************************
3072 procedure TGikoDM.LogFolderOpenActionExecute(Sender: TObject);
3073 var
3074         List: TList;
3075 begin
3076         if ((GikoSys.Setting.ListOrientation = gloVertical) and
3077                 (GikoSys.Setting.ListHeightState = glsMax)) or
3078                 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
3079                 (GikoSys.Setting.ListWidthState = glsMax))      then begin
3080                 if(GikoForm.GetActiveContent <> nil) then begin
3081                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(GikoForm.GetActiveContent.FilePath) + '"');
3082                 end;
3083         end else if GikoForm.GetActiveList is TCategory then begin
3084                 List := TList.Create;
3085                 try
3086                         GikoForm.SelectListItem(List);
3087                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(List[0]).FilePath) + '"');
3088                 finally
3089                         List.Free;
3090                 end;
3091         end else if GikoForm.GetActiveList is TBoard then begin
3092                 GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(GikoForm.GetActiveList).FilePath) + '"');
3093         end;
3094
3095 end;
3096 // *************************************************************************
3097 //! 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Ê
3098 // *************************************************************************
3099 procedure TGikoDM.LogFolderOpenActionUpdate(Sender: TObject);
3100 begin
3101         if ((GikoForm.GetActiveList is TBoard) or (GikoForm.GetActiveList is TCategory))
3102                 and (GikoForm.ListView.SelCount > 0) then
3103                 TAction(Sender).Enabled := True
3104         else
3105                 TAction(Sender).Enabled := False;
3106 end;
3107 // *************************************************************************
3108 //! Header.txt\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
3109 // *************************************************************************
3110 procedure TGikoDM.BrowsBoradHeadActionExecute(Sender: TObject);
3111 var
3112         RefURL, URL : string;
3113         List : TList;
3114 begin
3115         RefURL := '';
3116         if GikoForm.GetActiveList is TCategory then begin
3117                 List := TList.Create;
3118                 try
3119                         GikoForm.SelectListItem(List);
3120                         RefURL := TBoard(List[0]).URL;
3121                 finally
3122                         List.Free;
3123                 end;
3124         end else if GikoForm.GetActiveList is TBoard then begin
3125                 RefURL := TBoard(GikoForm.GetActiveList).URL
3126         end;
3127         if RefURL <> '' then begin
3128                 if RefURL[Length(RefURL)] <> '/' then
3129                         URL     := RefURL + '/' + 'head.txt'
3130                 else
3131                         URL     := RefURL + 'head.txt';
3132
3133                 GikoForm.MoveToURL(URL);
3134         end else begin
3135                 ShowMessage('\94Â\82ð\93Á\92è\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B');
3136         end;
3137
3138 end;
3139 // *************************************************************************
3140 //! \8c»\8dÝ\82Ì\83J\83\89\83\80\82ð\83\\81[\83g\82·\82é
3141 // *************************************************************************
3142 procedure TGikoDM.SortActiveColumnActionExecute(Sender: TObject);
3143 var
3144         i       : Integer;
3145         so : boolean;
3146         si : Integer;
3147 begin
3148         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3149                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3150                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3151                         GikoForm.SortOrder := not GikoForm.SortOrder;
3152                         so := GikoForm.SortOrder;
3153                         si := GikoForm.SortIndex;
3154                         TListViewUtils.ListViewSort(nil, GikoForm.ListView,
3155                                  GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
3156                                  so, si );
3157                         GikoForm.SortIndex := si;
3158                         GikoForm.SortOrder := so;
3159                         break;
3160                 end;
3161         end;
3162 end;
3163 // *************************************************************************
3164 //! \89E\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3165 // *************************************************************************
3166 procedure TGikoDM.SortNextColumnActionExecute(Sender: TObject);
3167 var
3168         i, id   : Integer;
3169         so : boolean;
3170         si : Integer;
3171 begin
3172         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3173                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3174                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3175                         id := i + 1;
3176                         if id > GikoForm.ListView.Columns.Count - 1 then
3177                                 id := 0;
3178                         GikoForm.SortOrder := id = 0;
3179                         so := GikoForm.SortOrder;
3180                         si := GikoForm.SortIndex;
3181                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3182                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3183                                 so, si );
3184                         GikoForm.SortIndex := si;
3185                         GikoForm.SortOrder := so;
3186                         break;
3187                 end;
3188         end;
3189 end;
3190 // *************************************************************************
3191 //! \8d\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3192 // *************************************************************************
3193 procedure TGikoDM.SortPrevColumnActionExecute(Sender: TObject);
3194 var
3195         i, id   : Integer;
3196         so : boolean;
3197         si : Integer;
3198 begin
3199         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3200                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3201                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3202                         id := i - 1;
3203                         if id < 0 then
3204                                 id := GikoForm.ListView.Columns.Count - 1;
3205                         GikoForm.SortOrder := id = 0;
3206                         so := GikoForm.SortOrder;
3207                         si := GikoForm.SortIndex;
3208                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3209                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3210                                 so, si );
3211                         GikoForm.SortIndex := si;
3212                         GikoForm.SortOrder := so;
3213                         break;
3214                 end;
3215         end;
3216 end;
3217 ////////////////////////////////\94Â\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3218 // *************************************************************************
3219 //! \95W\8f\80\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3220 // *************************************************************************
3221 procedure TGikoDM.StdToolBarVisibleActionExecute(Sender: TObject);
3222 var
3223         CoolBand: TCoolBand;
3224 begin
3225         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.StdToolBar);
3226         if CoolBand = nil then
3227                 Exit;
3228         GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
3229         CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
3230         GikoForm.StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
3231 end;
3232 // *************************************************************************
3233 //! \83A\83h\83\8c\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3234 // *************************************************************************
3235 procedure TGikoDM.AddressBarVisibleActionExecute(Sender: TObject);
3236 var
3237         CoolBand: TCoolBand;
3238 begin
3239         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.AddressToolBar);
3240         if CoolBand = nil then
3241                 Exit;
3242         GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
3243         CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
3244         GikoForm.AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
3245 end;
3246 // *************************************************************************
3247 //! \83\8a\83\93\83N\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3248 // *************************************************************************
3249 procedure TGikoDM.LinkBarVisibleActionExecute(Sender: TObject);
3250 var
3251         CoolBand: TCoolBand;
3252 begin
3253         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.LinkToolBar);
3254         if CoolBand = nil then
3255                 Exit;
3256         GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
3257         CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
3258         GikoForm.LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
3259 end;
3260 // *************************************************************************
3261 //! \83\8a\83X\83g\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3262 // *************************************************************************
3263 procedure TGikoDM.ListToolBarVisibleActionExecute(Sender: TObject);
3264 var
3265         CoolBand: TCoolBand;
3266 begin
3267         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListToolBar);
3268         if CoolBand = nil then
3269                 Exit;
3270         CoolBand.Visible := ListToolBarVisibleAction.Checked;
3271         GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
3272 end;
3273 // *************************************************************************
3274 //! \83\8a\83X\83g\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3275 // *************************************************************************
3276 procedure TGikoDM.ListNameBarVisibleActionExecute(Sender: TObject);
3277 var
3278         CoolBand: TCoolBand;
3279 begin
3280         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListNameToolBar);
3281         if CoolBand = nil then
3282                 Exit;
3283         CoolBand.Visible := ListNameBarVisibleAction.Checked;
3284         GikoSys.Setting.ListNameBarVisible := ListNameBarVisibleAction.Checked;
3285 end;
3286 // *************************************************************************
3287 //! \83u\83\89\83E\83U\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3288 // *************************************************************************
3289 procedure TGikoDM.BrowserToolBarVisibleActionExecute(Sender: TObject);
3290 var
3291         CoolBand: TCoolBand;
3292 begin
3293         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserToolBar);
3294         if CoolBand = nil then
3295                 Exit;
3296         CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
3297         GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
3298 end;
3299 // *************************************************************************
3300 //! \83u\83\89\83E\83U\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3301 // *************************************************************************
3302 procedure TGikoDM.BrowserNameBarVisibleActionExecute(Sender: TObject);
3303 var
3304         CoolBand: TCoolBand;
3305 begin
3306         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserNameToolBar);
3307         if CoolBand = nil then
3308                 Exit;
3309         CoolBand.Visible := BrowserNameBarVisibleAction.Checked;
3310         GikoSys.Setting.BrowserNameBarVisible := BrowserNameBarVisibleAction.Checked;
3311 end;
3312 // *************************************************************************
3313 //! \83\81\83b\83Z\81[\83W\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3314 // *************************************************************************
3315 procedure TGikoDM.MsgBarVisibleActionExecute(Sender: TObject);
3316 begin
3317         GikoForm.MessageSplitter.Visible := MsgBarVisibleAction.Checked;
3318         GikoForm.MessagePanel.Top :=
3319                 GikoForm.MessageSplitter.Top + GikoForm.MessageSplitter.Height;
3320         GikoForm.MessageSplitter.Top := GikoForm.MessagePanel.Top + 1;
3321         GikoForm.MessagePanel.Visible := MsgBarVisibleAction.Checked;
3322         GikoSys.Setting.MessageBarVisible := MsgBarVisibleAction.Checked;
3323 end;
3324 // *************************************************************************
3325 //! \83\81\83b\83Z\81[\83W\83o\81[\82ð\95Â\82\82é
3326 // *************************************************************************
3327 procedure TGikoDM.MsgBarCloseActionExecute(Sender: TObject);
3328 begin
3329         MsgBarVisibleAction.Execute;
3330 end;
3331 // *************************************************************************
3332 //! \83X\83e\81[\83^\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3333 // *************************************************************************
3334 procedure TGikoDM.StatusBarVisibleActionExecute(Sender: TObject);
3335 begin
3336         GikoForm.StatusBar.Visible := StatusBarVisibleAction.Checked;
3337         GikoSys.Setting.StatusBarVisible := StatusBarVisibleAction.Checked;
3338 end;
3339 // *************************************************************************
3340 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\8cf\8e¦\94Â\82É\82·\82é
3341 // *************************************************************************
3342 procedure TGikoDM.CabinetBBSActionExecute(Sender: TObject);
3343 begin
3344
3345         if GikoForm.CabinetPanel.Visible then begin
3346                 if GikoForm.TreeType = gtt2ch then begin
3347                         GikoForm.CabinetVisible( False );
3348
3349                         CabinetBBSAction.Checked := False;
3350                 end else begin
3351                         CabinetBBSAction.Checked := True;
3352                 end;
3353         end else begin
3354                 GikoForm.CabinetVisible( True );
3355                 CabinetBBSAction.Checked := True;
3356         end;
3357
3358         if GikoForm.ActiveBBS = nil then
3359                 GikoForm.ShowBBSTree( BBSs[ 0 ] )
3360         else
3361                 GikoForm.ShowBBSTree( GikoForm.ActiveBBS );
3362
3363 end;
3364 // *************************************************************************
3365 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\97\9a\97ð\83\8a\83X\83g\82É\82·\82é
3366 // *************************************************************************
3367 procedure TGikoDM.CabinetHistoryActionExecute(Sender: TObject);
3368 begin
3369         GikoForm.ShowHistoryTree;
3370 end;
3371 // *************************************************************************
3372 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\82¨\8bC\82É\93ü\82è\83\8a\83X\83g\82É\82·\82é
3373 // *************************************************************************
3374 procedure TGikoDM.CabinetFavoriteActionExecute(Sender: TObject);
3375 var
3376         i, b : Integer;
3377         item : TMenuItem;
3378 begin
3379
3380         if GikoForm.CabinetPanel.Visible then begin
3381                 if GikoForm.TreeType = gttFavorite then begin
3382                         GikoForm.CabinetVisible( False );
3383                         CabinetFavoriteAction.Checked := False;
3384                 end else begin
3385                         CabinetFavoriteAction.Checked := True;
3386                 end;
3387         end else begin
3388                 GikoForm.CabinetVisible( True );
3389                 CabinetFavoriteAction.Checked := True;
3390         end;
3391
3392         // BBS...BBS, History, Favorite
3393         GikoSys.Setting.CabinetIndex := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3394
3395         b := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3396         for i := 0 to b do begin
3397                 item := GikoForm.CabinetSelectPopupMenu.Items[ i ];
3398                 if item is TBBSMenuItem then begin
3399                         item.Checked := False;
3400                         // CabinetMenu \82Í CabinetSelectPopupMenu \82Æ\93¯\82\82Æ\8c\88\82ß\82¤\82¿\82µ\82¿\82á\82¤
3401                         GikoForm.CabinetMenu.Items[ i ].Checked := False;
3402                 end;
3403         end;
3404
3405         // \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Ö
3406         GikoForm.HistoryToolBar.Hide;
3407         GikoForm.FavoriteToolBar.Show;
3408         GikoForm.TreeView.Visible := False;
3409         GikoForm.FavoriteTreeView.Visible := True;
3410
3411         GikoForm.CabinetSelectToolButton.Caption := '\82¨\8bC\82É\93ü\82è';
3412         GikoForm.TreeType := gttFavorite;
3413
3414         // \83\81\83j\83\85\81[\8by\82Ñ\83{\83^\83\93\82Ì\83`\83F\83b\83N\82ð\90Ý\92è
3415         CabinetBBSAction.Checked := False;
3416         CabinetHistoryAction.Checked := False;
3417
3418         // \82¨\8bC\82É\93ü\82è\82Ì\83c\83\8a\81[\82ð\93W\8aJ
3419         GikoForm.FavoriteTreeView.Items.GetFirstNode.Expanded := True;
3420
3421 end;
3422 // *************************************************************************
3423 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3424 // *************************************************************************
3425 procedure TGikoDM.CabinetVisibleActionExecute(Sender: TObject);
3426 begin
3427         case GikoForm.TreeType of
3428         gttHistory:             CabinetHistoryAction.Execute;
3429         gttFavorite:    CabinetFavoriteAction.Execute;
3430         else
3431                 CabinetBBSAction.Execute;
3432         end;
3433 end;
3434 // *************************************************************************
3435 //! \83L\83\83\83r\83l\83b\83g\82ð\95Â\82\82é
3436 // *************************************************************************
3437 procedure TGikoDM.CabinetCloseActionExecute(Sender: TObject);
3438 begin
3439         //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ã
3440 end;
3441 // *************************************************************************
3442 //! \83\8a\83X\83g\82ð\91å\82«\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3443 // *************************************************************************
3444 procedure TGikoDM.LargeIconActionExecute(Sender: TObject);
3445 begin
3446         GikoForm.ListView.ViewStyle := vsIcon;
3447         LargeIconAction.Checked := True;
3448 end;
3449 // *************************************************************************
3450 //! \83\8a\83X\83g\82ð\8f¬\82³\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3451 // *************************************************************************
3452 procedure TGikoDM.SmallIconActionExecute(Sender: TObject);
3453 begin
3454         GikoForm.ListView.ViewStyle := vsSmallIcon;
3455         SmallIconAction.Checked := True;
3456 end;
3457 // *************************************************************************
3458 //! \83\8a\83X\83g\82ð\88ê\97\97\95\\8e¦\82É\82·\82é
3459 // *************************************************************************
3460 procedure TGikoDM.ListIconActionExecute(Sender: TObject);
3461 begin
3462         GikoForm.ListView.ViewStyle := vsList;
3463         ListIconAction.Checked := True;
3464 end;
3465 // *************************************************************************
3466 //! \83\8a\83X\83g\82ð\8fÚ\8d×\95\\8e¦\82É\82·\82é
3467 // *************************************************************************
3468 procedure TGikoDM.DetailIconActionExecute(Sender: TObject);
3469 begin
3470         GikoForm.ListView.ViewStyle := vsReport;
3471         DetailIconAction.Checked := True;
3472 end;
3473 // *************************************************************************
3474 //! \83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82·\82é
3475 // *************************************************************************
3476 procedure TGikoDM.StopActionExecute(Sender: TObject);
3477 begin
3478         GikoForm.FControlThread.DownloadAbort;
3479         if GikoForm.WorkCount <> 0 then GikoForm.WorkCount := 0;
3480         try
3481                 GikoForm.Animate.Active := False;
3482         except
3483         end;
3484         GikoForm.ScreenCursor := crDefault;
3485 end;
3486 // *************************************************************************
3487 //! \83\8a\83X\83g\82Æ\83u\83\89\83E\83U\82Ì\8fc\89¡\94z\92u\82ð\95Ï\8dX\82·\82é
3488 // *************************************************************************
3489 procedure TGikoDM.ArrangeActionExecute(Sender: TObject);
3490 begin
3491         if ArrangeAction.Checked then begin
3492                 //\8fc
3493                 GikoForm.ViewPanel.Align := alNone;
3494                 GikoForm.ListSplitter.Align := alNone;
3495                 GikoForm.ThreadPanel.Align := alNone;
3496
3497                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3498                 GikoForm.ViewPanel.Align := alLeft;
3499
3500                 GikoForm.ListSplitter.Width := 5;
3501                 GikoForm.ListSplitter.Align := alLeft;
3502
3503                 GikoForm.ViewPanel.Left := -10;
3504
3505                 GikoForm.ThreadPanel.Align := alClient;
3506
3507                 GikoSys.Setting.ListOrientation := gloHorizontal;
3508                 case GikoSys.Setting.ListWidthState of
3509                         glsMax: begin
3510                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3511                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3512                                 GikoForm.ViewPanel.Width := 1;
3513                         end;
3514                         glsNormal: begin
3515                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3516                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3517                         end;
3518                         glsMin: begin
3519                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3520                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3521                                 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
3522                         end;
3523                 end;
3524         end else begin
3525                 //\89¡
3526                 GikoForm.ViewPanel.Align := alNone;
3527                 GikoForm.ListSplitter.Align := alNone;
3528                 GikoForm.ThreadPanel.Align := alNone;
3529
3530                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3531                 GikoForm.ViewPanel.Align := alTop;
3532
3533                 GikoForm.ListSplitter.Height := 5;
3534                 GikoForm.ListSplitter.Align := alTop;
3535
3536                 GikoForm.ViewPanel.Top := -10;
3537
3538                 GikoForm.ThreadPanel.Align := alClient;
3539                 GikoSys.Setting.ListOrientation := gloVertical;
3540                 case GikoSys.Setting.ListHeightState of
3541                         glsMax: begin
3542                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3543                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3544                                 GikoForm.ViewPanel.Height := 1;
3545                         end;
3546                         glsNormal: begin
3547                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3548                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3549                         end;
3550                         glsMin: begin
3551                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3552                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3553                                 GikoForm.ViewPanel.Height :=
3554                                         GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
3555                         end;
3556                 end;
3557         end;
3558 end;
3559 // *************************************************************************
3560 //! \83y\83C\83\93\82Ì\83T\83C\83Y\82ð\8f\89\8aú\89»\82·\82é
3561 // *************************************************************************
3562 procedure TGikoDM.PaneInitActionExecute(Sender: TObject);
3563 begin
3564         GikoForm.CabinetPanel.Width := 150;
3565         GikoForm.MessagePanel.Height := 40;
3566
3567         GikoForm.BrowserSizeWidth := 200;
3568         GikoForm.BrowserSizeHeight := 200;
3569         if ArrangeAction.Checked then begin
3570                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3571         end else begin
3572                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3573         end;
3574         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
3575                 if GikoSys.Setting.ListHeightState = glsMax then begin
3576                         BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3577                         GikoSys.Setting.ListHeightState := glsNormal;
3578                 end;
3579         end else begin
3580                 if GikoSys.Setting.ListWidthState = glsMax then begin
3581                         BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3582                         GikoSys.Setting.ListWidthState := glsNormal;
3583                 end;
3584         end;
3585 end;
3586 // *************************************************************************
3587 //! \83u\83\89\83E\83U\83^\83u\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3588 // *************************************************************************
3589 procedure TGikoDM.BrowserTabVisibleActionExecute(Sender: TObject);
3590 begin
3591         GikoSys.Setting.BrowserTabVisible := BrowserTabVisibleAction.Checked;
3592         GikoForm.SetBrowserTabState;
3593 end;
3594 // *************************************************************************
3595 //! \83u\83\89\83E\83U\83^\83u\82ð\8fã\82É\95\\8e¦\82·\82é
3596 // *************************************************************************
3597 procedure TGikoDM.BrowserTabTopActionExecute(Sender: TObject);
3598 begin
3599         BrowserTabBottomAction.Checked := False;
3600         BrowserTabTopAction.Checked := True;
3601         GikoSys.Setting.BrowserTabPosition := gtpTop;
3602         GikoForm.SetBrowserTabState;
3603 end;
3604 // *************************************************************************
3605 //! \83u\83\89\83E\83U\83^\83u\82ð\89º\82É\95\\8e¦\82·\82é
3606 // *************************************************************************
3607 procedure TGikoDM.BrowserTabBottomActionExecute(Sender: TObject);
3608 begin
3609         BrowserTabTopAction.Checked := False;
3610         BrowserTabBottomAction.Checked := True;
3611         GikoSys.Setting.BrowserTabPosition := gtpBottom;
3612         GikoForm.SetBrowserTabState;
3613 end;
3614 // *************************************************************************
3615 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83^\83u\83X\83^\83C\83\8b\82É\82·\82é
3616 // *************************************************************************
3617 procedure TGikoDM.BrowserTabTabStyleActionExecute(Sender: TObject);
3618 begin
3619         BrowserTabButtonStyleAction.Checked := False;
3620         BrowserTabFlatStyleAction.Checked := False;
3621         BrowserTabTabStyleAction.Checked := True;
3622         GikoSys.Setting.BrowserTabStyle := gtsTab;
3623         GikoForm.SetBrowserTabState;
3624 end;
3625 // *************************************************************************
3626 //! \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é
3627 // *************************************************************************
3628 procedure TGikoDM.BrowserTabButtonStyleActionExecute(Sender: TObject);
3629 begin
3630         BrowserTabTabStyleAction.Checked := False;
3631         BrowserTabFlatStyleAction.Checked := False;
3632         BrowserTabButtonStyleAction.Checked := True;
3633         GikoSys.Setting.BrowserTabStyle := gtsButton;
3634         GikoForm.SetBrowserTabState;
3635 end;
3636 // *************************************************************************
3637 //! \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é
3638 // *************************************************************************
3639 procedure TGikoDM.BrowserTabFlatStyleActionExecute(Sender: TObject);
3640 begin
3641         BrowserTabFlatStyleAction.Checked := True;
3642         BrowserTabTabStyleAction.Checked := False;
3643         BrowserTabButtonStyleAction.Checked := False;
3644         GikoSys.Setting.BrowserTabStyle := gtsFlat;
3645         GikoForm.SetBrowserTabState;
3646 end;
3647 // *************************************************************************
3648 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3649 // *************************************************************************
3650 procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject);
3651 begin
3652         GikoForm.ActiveContent.Browser.SetFocus;
3653 end;
3654 // *************************************************************************
3655 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3656 // *************************************************************************
3657 procedure TGikoDM.SetFocusForBrowserActionUpdate(Sender: TObject);
3658 begin
3659         if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) and
3660                 (GikoForm.ActiveContent.Browser <> GikoForm.BrowserNullTab.Browser) then
3661                 TAction(Sender).Enabled := true
3662         else
3663                 TAction(Sender).Enabled := false;
3664 end;
3665 // *************************************************************************
3666 //! \83X\83\8c\83b\83h\88ê\97\97\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3667 // *************************************************************************
3668 procedure TGikoDM.SetFocusForThreadListActionExecute(Sender: TObject);
3669 begin
3670         if GikoForm.ActiveContent <> nil then
3671                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3672         GikoForm.ListView.SetFocus;
3673
3674         if( GikoForm.ListView.Items.Count > 0 ) and (GikoForm.ListView.ItemFocused = nil) then
3675                 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é
3676
3677         //\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
3678         if (GikoForm.ListView.ItemFocused <> nil) then begin
3679                 GikoForm.ListView.ItemFocused.MakeVisible(False);
3680         end;
3681 end;
3682 // *************************************************************************
3683 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3684 // *************************************************************************
3685 procedure TGikoDM.SetFocusForCabinetActionExecute(Sender: TObject);
3686 begin
3687         if GikoForm.ActiveContent <> nil then
3688                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3689         if GikoForm.TreeView.Visible then begin
3690                 GikoForm.TreeView.SetFocus;
3691                 if(GikoForm.TreeView.Items.Count > 0) and ( GikoForm.TreeView.Selected = nil ) then
3692                         GikoForm.TreeView.Items.Item[0].Selected := true;
3693         end else if GikoForm.FavoriteTreeView.Visible then begin
3694                 GikoForm.FavoriteTreeView.SetFocus;
3695                 if(GikoForm.FavoriteTreeView.Items.Count > 0) and (GikoForm.FavoriteTreeView.Selected = nil) then
3696                         GikoForm.FavoriteTreeView.Items.Item[0].Selected := true;
3697         end;
3698 end;
3699 // *************************************************************************
3700 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3701 // *************************************************************************
3702 procedure TGikoDM.SetFocusForCabinetActionUpdate(Sender: TObject);
3703 begin
3704         SetFocusForCabinetAction.Enabled := GikoForm.CabinetPanel.Visible;
3705 end;
3706 // *************************************************************************
3707 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3708 // *************************************************************************
3709 procedure TGikoDM.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
3710 begin
3711         BrowserMinAction.Execute;
3712         SetFocusForThreadListAction.Execute;
3713 end;
3714 // *************************************************************************
3715 //! \83X\83\8c\95\\8e¦\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3716 // *************************************************************************
3717 procedure TGikoDM.BrowserMaxAndFocusActionExecute(Sender: TObject);
3718 begin
3719         BrowserMaxAction.Execute;
3720         SetFocusForBrowserAction.Execute;
3721 end;
3722 // *************************************************************************
3723 //! \83X\83\8c\83b\83h\88ê\97\97\82Ì\91I\91ð\82ð\8dí\8f\9c\82·\82é
3724 // *************************************************************************
3725 procedure TGikoDM.UnSelectedListViewActionExecute(Sender: TObject);
3726 begin
3727         if GikoForm.ListView.Selected <> nil then begin
3728                 GikoForm.ListView.Selected.Focused := True;
3729                 GikoForm.ListView.Selected := nil;
3730         end;
3731 end;
3732 ////////////////////////////////\95\\8e¦\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3733 // *************************************************************************
3734 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8aù\93Ç\82É\82·\82é
3735 // *************************************************************************
3736 procedure TGikoDM.KidokuActionExecute(Sender: TObject);
3737 var
3738         List: TList;
3739         i: Integer;
3740 begin
3741         List := TList.Create;
3742         try
3743                 GikoForm.SelectListItem(List);
3744                 for i := 0 to List.Count - 1 do begin
3745                         if TObject(List[i]) is TThreadItem then begin
3746                                 if (TThreadItem(List[i]).UnRead) then begin
3747                                         TThreadItem(List[i]).UnRead := false;
3748                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
3749                                 end;
3750                         end;
3751                 end;
3752                 if GikoForm.TreeView.Visible then
3753                         GikoForm.TreeView.Refresh;
3754                 if GikoForm.ListView.Visible then
3755                         GikoForm.ListView.Refresh;
3756         finally
3757                 List.Free;
3758         end;
3759 end;
3760 // *************************************************************************
3761 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\96¢\93Ç\82É\82·\82é
3762 // *************************************************************************
3763 procedure TGikoDM.MidokuActionExecute(Sender: TObject);
3764 var
3765         List: TList;
3766         i: Integer;
3767 begin
3768         List := TList.Create;
3769         try
3770                 GikoForm.SelectListItem(List);
3771                 for i := 0 to List.Count - 1 do begin
3772                         if TObject(List[i]) is TThreadItem then begin
3773                                 if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin
3774                                         TThreadItem(List[i]).UnRead := true;
3775                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
3776                                 end;
3777                         end;
3778                 end;
3779                 if GikoForm.TreeView.Visible then
3780                         GikoForm.TreeView.Refresh;
3781                 if GikoForm.ListView.Visible then
3782                         GikoForm.ListView.Refresh;
3783         finally
3784                 List.Free;
3785         end;
3786 end;
3787 // *************************************************************************
3788 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82é
3789 // *************************************************************************
3790 procedure TGikoDM.AllSelectActionExecute(Sender: TObject);
3791 begin
3792         GikoForm.ListViewAllSelect;
3793 end;
3794 // *************************************************************************
3795 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
3796 // *************************************************************************
3797 procedure TGikoDM.AllSelectActionUpdate(Sender: TObject);
3798 begin
3799         AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0;
3800 end;
3801 ////////////////////////////////\95Ò\8fW\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3802 end.
3803