Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/GikoDataModule.pas

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


Revision 1.78 - (hide annotations) (download) (as text)
Sun Sep 13 15:09:07 2009 UTC (14 years, 7 months ago) by h677
Branch: MAIN
CVS Tags: v1_61_0_799, v1_62_0_805, v1_62_0_804, v1_62_0_807, v1_62_0_806, v1_62_0_803, v1_62_0_802, v1_61_0_800, v1_61_1_801
Branch point for: Bb61
Changes since 1.77: +16 -1 lines
File MIME type: text/x-pascal
ポップアップメニューのカスタマイズ画面を追加

1 h677 1.1 unit GikoDataModule;
2    
3     interface
4    
5     uses
6 h677 1.2 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 h677 1.6 {$IF Defined(DELPRO) }
8     SHDocVw,
9     MSHTML,
10     {$ELSE}
11     SHDocVw_TLB,
12     MSHTML_TLB,
13     {$IFEND}
14 h677 1.32 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs,
15 h677 1.58 ActiveX, GikoSystem, MoveHistoryItem, HistoryList;
16 h677 1.17
17     const
18     CAPTION_NAME: string = '???潟????';
19     USER_SETLINKBAR = WM_USER + 2003;
20    
21     ITEM_ICON_SORT1 = 12; //!< ?純?若???≪?ゃ?潟??/span>
22     ITEM_ICON_SORT2 = 13; //!< ?純?若???≪?ゃ?潟??/span>
23    
24     //???若?????若?≪?ゃ?潟??/span>
25     TOOL_ICON_HEIGHT_MAX = 16; //!< 蕭?????紊с?≪?ゃ?潟??/span>
26     TOOL_ICON_HEIGHT_MIN = 17; //!< 蕭?????絨?≪?ゃ?潟??/span>
27     TOOL_ICON_HEIGHT_NORMAL = 18; //!< 蕭???罔?羣??≪?ゃ?潟??/span>
28     TOOL_ICON_WIDTH_MAX = 19; //!< 綛???紊с?≪?ゃ?潟??/span>
29     TOOL_ICON_WIDTH_MIN = 20; //!< 綛???絨?≪?ゃ?潟??/span>
30     TOOL_ICON_WIDTH_NORMAL = 21; //!< 綛?罔?羣??≪?ゃ?潟??/span>
31    
32     TOOL_ICON_FAV_FOLDER = 30; //!< ??羂????ャ???????????≪?ゃ?潟??/span>
33     TOOL_ICON_FAV_BOARD = 31; //!< ??羂????ャ???帥?≪?ゃ?潟??/span>
34     TOOL_ICON_FAV_THREAD = 32; //!< ??羂????ャ???鴻???≪?ゃ?潟??/span>
35    
36 h677 1.38 //! HTTP
37     PROTOCOL_HTTP : string = 'http://';
38 h677 1.17 //! ???潟?????泣?ゃ????RL
39 h677 1.38 URL_GIKONAVI: string = 'gikonavi.sourceforge.jp/';
40 h677 1.17 //! Monazilla?泣?ゃ????RL
41 h677 1.38 URL_MONAZILLA: string = 'www.monazilla.org/';
42 h677 1.17 //! 2?<??????????RL
43 h677 1.38 URL_2ch: string = 'www.2ch.net/';
44 h677 1.17 //! ???潟????Wiki??RL
45 h677 1.75 URL_Wiki: string = 'sourceforge.jp/projects/gikonavi/wiki/FAQ';
46 h677 1.17
47     SELECTCOMBOBOX_NAME: string = ''; // '?鴻??????腟?莨惹?膣?#39;;
48     SELECTCOMBOBOX_COLOR: TColor = clWindow;
49 h677 1.1
50 h677 1.11
51 h677 1.1 type
52 h677 1.58
53 h677 1.1 TGikoDM = class(TDataModule)
54 h677 1.6 GikoFormActionList: TActionList;
55     OnlyAHundredResAction: TAction;
56     OnlyKokoResAction: TAction;
57     LoginAction: TAction;
58     NewBoardAction: TAction;
59     LogDeleteAction: TAction;
60     KidokuAction: TAction;
61     StdToolBarVisibleAction: TAction;
62     AddressBarVisibleAction: TAction;
63     LinkBarVisibleAction: TAction;
64 h677 1.4 ListToolBarVisibleAction: TAction;
65 h677 1.6 SearchAction: TAction;
66     GikoNaviWebPageAction: TAction;
67     MonazillaWebPageAction: TAction;
68     BBS2chWebPageAction: TAction;
69     GikoFolderOpenAction: TAction;
70     AboutAction: TAction;
71     SelectTextClearAction: TAction;
72     NameTextClearAction: TAction;
73     MailTextClearAction: TAction;
74     ExitAction: TAction;
75     ListNameBarVisibleAction: TAction;
76     BrowserToolBarVisibleAction: TAction;
77     BrowserNameBarVisibleAction: TAction;
78     MsgBarVisibleAction: TAction;
79     MsgBarCloseAction: TAction;
80     StatusBarVisibleAction: TAction;
81     CabinetBBSAction: TAction;
82     CabinetHistoryAction: TAction;
83     OnlyNewResAction: TAction;
84 h677 1.4 CabinetFavoriteAction: TAction;
85 h677 1.6 CabinetVisibleAction: TAction;
86     ListNumberVisibleAction: TAction;
87     UpFolderAction: TAction;
88     CabinetCloseAction: TAction;
89     IconStyle: TAction;
90     LargeIconAction: TAction;
91     SmallIconAction: TAction;
92     ListIconAction: TAction;
93     DetailIconAction: TAction;
94     MidokuAction: TAction;
95     AllSelectAction: TAction;
96     AllItemAction: TAction;
97     LogItemAction: TAction;
98     NewItemAction: TAction;
99     ThreadRangeAction: TAction;
100     SelectItemAction: TAction;
101     StopAction: TAction;
102     OptionAction: TAction;
103     RoundAction: TAction;
104 h677 1.4 BrowserMaxAction: TAction;
105 h677 1.6 BrowserMinAction: TAction;
106     ScrollTopAction: TAction;
107     ScrollLastAction: TAction;
108     ScrollNewAction: TAction;
109     ScrollKokoAction: TAction;
110     EditorAction: TAction;
111     IEAction: TAction;
112     ShowThreadAction: TAction;
113     ShowBoardAction: TAction;
114     URLCopyAction: TAction;
115     NameCopyAction: TAction;
116     NameURLCopyAction: TAction;
117     ItemReloadAction: TAction;
118     ThreadEditorAction: TAction;
119     BoardIEAction: TAction;
120     SelectItemURLCopyAction: TAction;
121     SelectItemNameCopyAction: TAction;
122     SelectItemNameURLCopyAction: TAction;
123     SelectListReloadAction: TAction;
124 h677 1.4 SelectThreadReloadAction: TAction;
125 h677 1.6 BrowserTabCloseAction: TAction;
126     NotSelectTabCloseAction: TAction;
127     AllTabCloseAction: TAction;
128     KokomadeAction: TAction;
129     ZenbuAction: TAction;
130     KokoResAction: TAction;
131     TreeSelectBoradReload: TAction;
132     TreeSelectThreadReload: TAction;
133     TreeSelectURLCopy: TAction;
134     SelectReservAction: TAction;
135     SelectNewRoundName: TAction;
136     SelectDeleteRound: TAction;
137     KeySettingAction: TAction;
138     ArrangeAction: TAction;
139     ActiveLogDeleteAction: TAction;
140     TreeSelectNameURLCopy: TAction;
141     PaneInitAction: TAction;
142     LeftmostTabSelectAction: TAction;
143     LeftTabSelectAction: TAction;
144 h677 1.4 RightTabSelectAction: TAction;
145 h677 1.6 RightmostTabSelectAction: TAction;
146     FavoriteAddAction: TAction;
147     BoardFavoriteAddAction: TAction;
148     ThreadFavoriteAddAction: TAction;
149     TreeSelectFavoriteAddAction: TAction;
150     FavoriteArrangeAction: TAction;
151     MoveToAction: TAction;
152     BrowserTabVisibleAction: TAction;
153     BrowserTabTopAction: TAction;
154     BrowserTabBottomAction: TAction;
155     BrowserTabTabStyleAction: TAction;
156     BrowserTabButtonStyleAction: TAction;
157     BrowserTabFlatStyleAction: TAction;
158     GikoHelpAction: TAction;
159     KotehanAction: TAction;
160     ToolBarSettingAction: TAction;
161     SelectResAction: TAction;
162     AllResAction: TAction;
163     EditNGAction: TAction;
164 h677 1.4 ReloadAction: TAction;
165 h677 1.6 GoFowardAction: TAction;
166     GoBackAction: TAction;
167     TreeSelectSearchBoardName: TAction;
168     FavoriteTreeViewRenameAction: TAction;
169     FavoriteTreeViewNewFolderAction: TAction;
170     FavoriteTreeViewDeleteAction: TAction;
171     FavoriteTreeViewBrowseFolderAction: TAction;
172     FavoriteTreeViewReloadAction: TAction;
173     FavoriteTreeViewURLCopyAction: TAction;
174     FavoriteTreeViewNameCopyAction: TAction;
175     FavoriteTreeViewNameURLCopyAction: TAction;
176     FavoriteTreeViewLogDeleteAction: TAction;
177     ResRangeAction: TAction;
178     ExportFavoriteFile: TFileSaveAs;
179     FavoriteTreeViewBrowseBoardAction: TAction;
180     FavoriteTreeViewBrowseThreadAction: TAction;
181     UpBoardAction: TAction;
182     KoreCopy: TAction;
183     TreeSelectNameCopy: TAction;
184 h677 1.4 SetFocusForBrowserAction: TAction;
185 h677 1.6 SetFocusForThreadListAction: TAction;
186     SetFocusForCabinetAction: TAction;
187     FileRun1: TFileRun;
188     ThreadlistMaxAndFocusAction: TAction;
189     BrowserMaxAndFocusAction: TAction;
190     SelectItemSaveForHTML: TAction;
191     SelectItemSaveForDat: TAction;
192     LogFolderOpenAction: TAction;
193     TabsSaveAction: TAction;
194     TabsOpenAction: TAction;
195     BrowsBoradHeadAction: TAction;
196     JumpToNumOfResAction: TAction;
197     FavoriteTreeViewCollapseAction: TAction;
198     RightTabCloseAction: TAction;
199     LeftTabCloseAction: TAction;
200     SameIDResAnchorAction: TAction;
201 h677 1.4 IndividualAbon1Action: TAction;
202 h677 1.6 IndividualAbon0Action: TAction;
203     AntiIndividualAbonAction: TAction;
204     AntiIndividualAbonDlgAction: TAction;
205     IndividualAbonID1Action: TAction;
206     IndividualAbonID0Action: TAction;
207     MuteAction: TAction;
208     SortActiveColumnAction: TAction;
209     SortNextColumnAction: TAction;
210     SortPrevColumnAction: TAction;
211     BeLogInOutAction: TAction;
212     UnSelectedListViewAction: TAction;
213     WikiFAQWebPageAction: TAction;
214     ToobarImageList: TImageList;
215 h677 1.19 SaveDialog: TSaveDialog;
216 h677 1.25 ThreadSizeCalcForFileAction: TAction;
217 h677 1.31 SetInputAssistAction: TAction;
218 h677 1.32 OpenFindDialogAction: TAction;
219 h677 1.35 ArchiveItemAction: TAction;
220     LiveItemAction: TAction;
221 h677 1.36 FavoriteTreeViewItemNameCopyAction: TAction;
222 h677 1.41 CloseAllEditorAction: TAction;
223 h677 1.43 PrevMoveHistory: TAction;
224     NextMoveHistory: TAction;
225 h677 1.44 ClickActiveElementAction: TAction;
226     VKDownAction: TAction;
227     VKUpAction: TAction;
228     VKRightAction: TAction;
229     VKLeftAction: TAction;
230 h677 1.45 StoredTaskTrayAction: TAction;
231 h677 1.47 AllImageLinkToClipbordAction: TAction;
232     NewImageLinkToClipBoardAction: TAction;
233 h677 1.49 SetForcusForAddresBarAction: TAction;
234 h677 1.51 NewBoardSearchAction: TAction;
235 h677 1.52 NGWordEditFormAction: TAction;
236 h677 1.57 ScrollPageDownAction: TAction;
237     ScrollPageUpAction: TAction;
238     AllLinkToClipboardAction: TAction;
239     NewLinkToClipboardAction: TAction;
240 h677 1.61 AddIDtoNGWord0Action: TAction;
241     AddIDtoNGWord1Action: TAction;
242 h677 1.66 ExtractSameIDAction: TAction;
243 h677 1.67 ShowTabListAction: TAction;
244 h677 1.69 DereferenceResAction: TAction;
245 h677 1.70 UpdateGikonaviAction: TAction;
246 h677 1.76 konoURLPATHAction: TAction;
247     konoURLQueryAction: TAction;
248 h677 1.78 PopupMenuSettingAction: TAction;
249 h677 1.6 procedure EditNGActionExecute(Sender: TObject);
250     procedure ReloadActionExecute(Sender: TObject);
251     procedure GoFowardActionExecute(Sender: TObject);
252     procedure GoBackActionExecute(Sender: TObject);
253     procedure MoveToActionExecute(Sender: TObject);
254     procedure FavoriteAddActionExecute(Sender: TObject);
255 h677 1.4 procedure FavoriteArrangeActionExecute(Sender: TObject);
256 h677 1.6 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
257     procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
258     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
259     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
260     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
261     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
262     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
263     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
264     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
265     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
266     procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
267     procedure OnlyAHundredResActionExecute(Sender: TObject);
268     procedure OnlyKokoResActionExecute(Sender: TObject);
269     procedure OnlyNewResActionExecute(Sender: TObject);
270     procedure BrowserMaxActionExecute(Sender: TObject);
271     procedure BrowserMinActionExecute(Sender: TObject);
272     procedure ScrollTopActionExecute(Sender: TObject);
273     procedure ScrollLastActionExecute(Sender: TObject);
274     procedure ScrollNewActionExecute(Sender: TObject);
275 h677 1.4 procedure ScrollKokoActionExecute(Sender: TObject);
276 h677 1.6 procedure ScrollKokoActionUpdate(Sender: TObject);
277     procedure EditorActionExecute(Sender: TObject);
278     procedure IEActionExecute(Sender: TObject);
279     procedure ShowThreadActionExecute(Sender: TObject);
280     procedure ShowBoardActionExecute(Sender: TObject);
281     procedure URLCopyActionExecute(Sender: TObject);
282     procedure NameCopyActionExecute(Sender: TObject);
283     procedure NameURLCopyActionExecute(Sender: TObject);
284     procedure ItemReloadActionExecute(Sender: TObject);
285     procedure BrowserTabCloseActionExecute(Sender: TObject);
286     procedure BrowserTabCloseActionUpdate(Sender: TObject);
287     procedure NotSelectTabCloseActionExecute(Sender: TObject);
288     procedure NotSelectTabCloseActionUpdate(Sender: TObject);
289     procedure AllTabCloseActionExecute(Sender: TObject);
290     procedure ActiveLogDeleteActionExecute(Sender: TObject);
291     procedure LeftmostTabSelectActionExecute(Sender: TObject);
292     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
293     procedure LeftTabSelectActionExecute(Sender: TObject);
294     procedure RightTabSelectActionExecute(Sender: TObject);
295 h677 1.4 procedure RightTabSelectActionUpdate(Sender: TObject);
296 h677 1.6 procedure RightmostTabSelectActionExecute(Sender: TObject);
297     procedure ThreadFavoriteAddActionExecute(Sender: TObject);
298     procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
299     procedure SelectResActionExecute(Sender: TObject);
300     procedure AllResActionExecute(Sender: TObject);
301     procedure ResRangeActionExecute(Sender: TObject);
302     procedure UpBoardActionExecute(Sender: TObject);
303     procedure JumpToNumOfResActionExecute(Sender: TObject);
304     procedure RightTabCloseActionExecute(Sender: TObject);
305     procedure RightTabCloseActionUpdate(Sender: TObject);
306     procedure LeftTabCloseActionExecute(Sender: TObject);
307     procedure DataModuleCreate(Sender: TObject);
308     procedure SearchActionExecute(Sender: TObject);
309     procedure OptionActionExecute(Sender: TObject);
310     procedure RoundActionExecute(Sender: TObject);
311     procedure KeySettingActionExecute(Sender: TObject);
312     procedure KotehanActionExecute(Sender: TObject);
313     procedure ToolBarSettingActionExecute(Sender: TObject);
314     procedure MuteActionExecute(Sender: TObject);
315     procedure TreeSelectBoradReloadExecute(Sender: TObject);
316     procedure TreeSelectThreadReloadExecute(Sender: TObject);
317     procedure TreeSelectURLCopyExecute(Sender: TObject);
318     procedure TreeSelectNameURLCopyExecute(Sender: TObject);
319     procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
320     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
321     procedure TreeSelectNameCopyExecute(Sender: TObject);
322     procedure LoginActionExecute(Sender: TObject);
323     procedure NewBoardActionExecute(Sender: TObject);
324     procedure LogDeleteActionExecute(Sender: TObject);
325     procedure LogDeleteActionUpdate(Sender: TObject);
326     procedure SelectTextClearActionExecute(Sender: TObject);
327     procedure NameTextClearActionExecute(Sender: TObject);
328     procedure MailTextClearActionExecute(Sender: TObject);
329     procedure ExitActionExecute(Sender: TObject);
330     procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
331     procedure ExportFavoriteFileAccept(Sender: TObject);
332     procedure SelectItemSaveForHTMLExecute(Sender: TObject);
333     procedure SelectItemSaveForDatExecute(Sender: TObject);
334     procedure TabsSaveActionExecute(Sender: TObject);
335     procedure TabsOpenActionExecute(Sender: TObject);
336     procedure BeLogInOutActionExecute(Sender: TObject);
337     procedure BeLogInOutActionUpdate(Sender: TObject);
338     procedure KokomadeActionExecute(Sender: TObject);
339     procedure ZenbuActionExecute(Sender: TObject);
340     procedure KokoResActionExecute(Sender: TObject);
341     procedure KoreCopyExecute(Sender: TObject);
342     procedure SameIDResAnchorActionExecute(Sender: TObject);
343     procedure IndividualAbon1ActionExecute(Sender: TObject);
344     procedure IndividualAbon0ActionExecute(Sender: TObject);
345     procedure AntiIndividualAbonActionExecute(Sender: TObject);
346     procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
347     procedure IndividualAbonID1ActionExecute(Sender: TObject);
348     procedure IndividualAbonID0ActionExecute(Sender: TObject);
349     procedure GikoNaviWebPageActionExecute(Sender: TObject);
350 h677 1.7 procedure MonazillaWebPageActionExecute(Sender: TObject);
351     procedure BBS2chWebPageActionExecute(Sender: TObject);
352     procedure GikoFolderOpenActionExecute(Sender: TObject);
353     procedure AboutActionExecute(Sender: TObject);
354     procedure GikoHelpActionExecute(Sender: TObject);
355     procedure WikiFAQWebPageActionExecute(Sender: TObject);
356     procedure ListNumberVisibleActionExecute(Sender: TObject);
357     procedure UpFolderActionExecute(Sender: TObject);
358     procedure UpFolderActionUpdate(Sender: TObject);
359     procedure IconStyleExecute(Sender: TObject);
360     procedure AllItemActionExecute(Sender: TObject);
361     procedure LogItemActionExecute(Sender: TObject);
362     procedure NewItemActionExecute(Sender: TObject);
363     procedure ThreadRangeActionExecute(Sender: TObject);
364     procedure SelectItemActionExecute(Sender: TObject);
365     procedure ThreadEditorActionExecute(Sender: TObject);
366     procedure BoardIEActionExecute(Sender: TObject);
367     procedure SelectItemURLCopyActionExecute(Sender: TObject);
368     procedure SelectItemURLCopyActionUpdate(Sender: TObject);
369     procedure SelectItemNameCopyActionExecute(Sender: TObject);
370     procedure SelectItemNameCopyActionUpdate(Sender: TObject);
371     procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
372     procedure SelectListReloadActionExecute(Sender: TObject);
373     procedure SelectListReloadActionUpdate(Sender: TObject);
374     procedure SelectThreadReloadActionExecute(Sender: TObject);
375     procedure SelectThreadReloadActionUpdate(Sender: TObject);
376     procedure SelectReservActionExecute(Sender: TObject);
377     procedure SelectReservActionUpdate(Sender: TObject);
378     procedure SelectNewRoundNameExecute(Sender: TObject);
379     procedure SelectDeleteRoundExecute(Sender: TObject);
380     procedure BoardFavoriteAddActionExecute(Sender: TObject);
381     procedure BoardFavoriteAddActionUpdate(Sender: TObject);
382     procedure LogFolderOpenActionExecute(Sender: TObject);
383     procedure LogFolderOpenActionUpdate(Sender: TObject);
384     procedure BrowsBoradHeadActionExecute(Sender: TObject);
385     procedure SortActiveColumnActionExecute(Sender: TObject);
386 h677 1.11 procedure SortNextColumnActionExecute(Sender: TObject);
387     procedure SortPrevColumnActionExecute(Sender: TObject);
388     procedure StdToolBarVisibleActionExecute(Sender: TObject);
389     procedure AddressBarVisibleActionExecute(Sender: TObject);
390     procedure LinkBarVisibleActionExecute(Sender: TObject);
391     procedure ListToolBarVisibleActionExecute(Sender: TObject);
392     procedure ListNameBarVisibleActionExecute(Sender: TObject);
393     procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
394     procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
395     procedure MsgBarVisibleActionExecute(Sender: TObject);
396     procedure MsgBarCloseActionExecute(Sender: TObject);
397     procedure StatusBarVisibleActionExecute(Sender: TObject);
398     procedure CabinetBBSActionExecute(Sender: TObject);
399     procedure CabinetHistoryActionExecute(Sender: TObject);
400     procedure CabinetFavoriteActionExecute(Sender: TObject);
401     procedure CabinetVisibleActionExecute(Sender: TObject);
402     procedure CabinetCloseActionExecute(Sender: TObject);
403     procedure LargeIconActionExecute(Sender: TObject);
404     procedure SmallIconActionExecute(Sender: TObject);
405     procedure ListIconActionExecute(Sender: TObject);
406     procedure DetailIconActionExecute(Sender: TObject);
407     procedure StopActionExecute(Sender: TObject);
408     procedure ArrangeActionExecute(Sender: TObject);
409     procedure PaneInitActionExecute(Sender: TObject);
410     procedure BrowserTabVisibleActionExecute(Sender: TObject);
411     procedure BrowserTabTopActionExecute(Sender: TObject);
412     procedure BrowserTabBottomActionExecute(Sender: TObject);
413     procedure BrowserTabTabStyleActionExecute(Sender: TObject);
414     procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
415     procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
416     procedure SetFocusForBrowserActionExecute(Sender: TObject);
417     procedure SetFocusForBrowserActionUpdate(Sender: TObject);
418     procedure SetFocusForThreadListActionExecute(Sender: TObject);
419     procedure SetFocusForCabinetActionExecute(Sender: TObject);
420     procedure SetFocusForCabinetActionUpdate(Sender: TObject);
421     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
422     procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
423     procedure UnSelectedListViewActionExecute(Sender: TObject);
424     procedure KidokuActionExecute(Sender: TObject);
425     procedure MidokuActionExecute(Sender: TObject);
426     procedure AllSelectActionExecute(Sender: TObject);
427     procedure AllSelectActionUpdate(Sender: TObject);
428 h677 1.25 procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
429 h677 1.31 procedure SetInputAssistActionExecute(Sender: TObject);
430 h677 1.32 procedure OpenFindDialogActionExecute(Sender: TObject);
431 h677 1.35 procedure ArchiveItemActionExecute(Sender: TObject);
432     procedure LiveItemActionExecute(Sender: TObject);
433 h677 1.36 procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject);
434 h677 1.41 procedure CloseAllEditorActionExecute(Sender: TObject);
435     procedure CloseAllEditorActionUpdate(Sender: TObject);
436 h677 1.43 procedure PrevMoveHistoryUpdate(Sender: TObject);
437     procedure PrevMoveHistoryExecute(Sender: TObject);
438     procedure NextMoveHistoryUpdate(Sender: TObject);
439     procedure NextMoveHistoryExecute(Sender: TObject);
440 h677 1.44 procedure ClickActiveElementActionExecute(Sender: TObject);
441     procedure VKDownActionExecute(Sender: TObject);
442     procedure VKUpActionExecute(Sender: TObject);
443     procedure VKRightActionExecute(Sender: TObject);
444     procedure VKLeftActionExecute(Sender: TObject);
445 h677 1.45 procedure StoredTaskTrayActionExecute(Sender: TObject);
446 h677 1.46 procedure LeftTabSelectActionUpdate(Sender: TObject);
447     procedure RightmostTabSelectActionUpdate(Sender: TObject);
448 h677 1.47 procedure NewImageLinkToClipBoardActionExecute(Sender: TObject);
449     procedure AllImageLinkToClipbordActionExecute(Sender: TObject);
450 h677 1.49 procedure SetForcusForAddresBarActionExecute(Sender: TObject);
451 h677 1.51 procedure NewBoardSearchActionExecute(Sender: TObject);
452 h677 1.57 procedure ScrollPageDownActionExecute(Sender: TObject);
453     procedure ScrollPageUpActionExecute(Sender: TObject);
454     procedure AllLinkToClipboardActionExecute(Sender: TObject);
455     procedure NewLinkToClipboardActionExecute(Sender: TObject);
456 h677 1.61 procedure AddIDtoNGWord0ActionExecute(Sender: TObject);
457     procedure AddIDtoNGWord1ActionExecute(Sender: TObject);
458 h677 1.66 procedure ExtractSameIDActionExecute(Sender: TObject);
459 h677 1.67 procedure ShowTabListActionExecute(Sender: TObject);
460 h677 1.69 procedure DereferenceResActionExecute(Sender: TObject);
461 h677 1.70 procedure UpdateGikonaviActionExecute(Sender: TObject);
462 h677 1.76 procedure konoURLPATHActionExecute(Sender: TObject);
463     procedure konoURLQueryActionExecute(Sender: TObject);
464     procedure konoURLQueryActionUpdate(Sender: TObject);
465 h677 1.78 procedure PopupMenuSettingActionExecute(Sender: TObject);
466 h677 1.1 private
467     { Private 絎h? }
468 h677 1.17 procedure ClearResFilter;
469     procedure SetResRange(range: Integer);
470 h677 1.18 procedure SetThreadAreaHorNormal;
471     procedure SetThreadAreaHorizontal(gls : TGikoListState);
472     procedure SetThreadAreaVerNormal;
473     procedure SetThreadAreaVertical(gls : TGikoListState);
474     procedure SetThreadReadProperty(read: Boolean);
475 h677 1.19 procedure SelectThreadSaveToFile(dat: Boolean);
476 h677 1.24 function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
477 h677 1.25 procedure RecalcThreadSize(limit : Integer);
478 h677 1.35 procedure ClearSelectComboBox;
479 h677 1.41 procedure ClearMailAllEditor();
480     procedure ClearNameTextAllEditor();
481 h677 1.77 procedure MoveURLWithHistory(URL : String; KeyMask: Boolean = False);
482 h677 1.43 procedure BackToHistory(item: TMoveHistoryItem);
483 h677 1.47 function GetActiveThreadLinks : IHTMLElementCollection;
484 h677 1.57 procedure GetLinkURLs(links : IHTMLElementCollection;
485     URLs : TStringList; const Start: Integer; Exts : TStringList);
486 h677 1.1 public
487     { Public 絎h? }
488 h677 1.23 procedure RepaintStatusBar;
489 h677 1.41 function EditorFormExists(): boolean;
490 h677 1.42 procedure GetTabURLs(AStringList: TStringList);
491     procedure OpenURLs(AStringList: TStringList);
492 h677 1.1 published
493     { Published 絎h? }
494 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
495 h677 1.1 procedure DependActiveCntentActionUpdate(Sender: TObject);
496 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
497 h677 1.2 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
498 h677 1.68 //! TAction??ctiveList??TBoard(???号????ф???鴻??????
499     procedure DependActiveListTBoardActionUpdate(Sender: TObject);
500 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
501 h677 1.68 procedure DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject);
502 h677 1.1 end;
503    
504     var
505     GikoDM: TGikoDM;
506    
507 h677 1.11
508 h677 1.1 implementation
509    
510     uses
511 h677 1.19 Windows, Math, Clipbrd,
512 h677 1.58 Giko, GikoUtil, BoardGroup,
513 h677 1.18 FavoriteArrange, Favorite, MojuUtils,
514 h677 1.4 Editor, ListSelect, Search, Option, Round,
515     KeySetting, Gesture, Kotehan, ToolBarSetting,
516 h677 1.6 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
517 h677 1.17 GikoBayesian, About, ShellAPI,
518 h677 1.8 RoundName, RoundData, Menus, ListViewUtils,
519 h677 1.40 ThreadControl, GikoMessage, InputAssist,
520 h677 1.78 DefaultFileManager, Forms, NewBoardURL, UpdateCheck,
521     PopupMenuSetting;
522 h677 1.1
523 h677 1.38 const
524     MSG_ERROR : string = '??????#39;;
525 h677 1.41
526 h677 1.1 {$R *.dfm}
527     // *************************************************************************
528 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
529 h677 1.2 // *************************************************************************
530     procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
531     begin
532     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
533     end;
534     // *************************************************************************
535 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
536 h677 1.2 // *************************************************************************
537     procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
538     begin
539     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
540     and (GikoForm.GetActiveContent.IsLogFile);
541     end;
542     // *************************************************************************
543 h677 1.68 //! TAction??ctiveList??TBoard(???号????ф???鴻??????
544     // *************************************************************************
545     procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
546     begin
547     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard) and
548     (GikoForm.GetActiveList <> BoardGroup.SpecialBoard);
549     end;
550     // *************************************************************************
551 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
552 h677 1.2 // *************************************************************************
553 h677 1.68 procedure TGikoDM.DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject);
554 h677 1.2 begin
555     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
556     end;
557     // *************************************************************************
558 yoffy 1.9 //! NG???若??膩???
559 h677 1.1 // *************************************************************************
560     procedure TGikoDM.EditNGActionExecute(Sender: TObject);
561     begin
562     //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
563     GikoSys.FAbon.EditNGwords;
564     end;
565     // *************************************************************************
566 yoffy 1.9 //! NG???若??茯??粋昭?随???茯??粋昭?随?
567 h677 1.1 // *************************************************************************
568     procedure TGikoDM.ReloadActionExecute(Sender: TObject);
569     begin
570     //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
571     if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
572 h677 1.38 MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????',
573     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
574 h677 1.1 end else begin
575     //???????帥????????祉??荐??
576     GikoForm.RepaintAllTabsBrowser();
577     end;
578     end;
579     // *************************************************************************
580 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
581 h677 1.1 // *************************************************************************
582     procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
583     begin
584     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
585     if GikoSys.FAbon.GoBack =false then begin
586 h677 1.38 MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????',
587     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
588 h677 1.1 end else begin
589     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
590 h677 1.16 RepaintStatusBar;
591 h677 1.1 //???????帥????????祉??荐??
592     GikoForm.RepaintAllTabsBrowser();
593     end;
594     end;
595     // *************************************************************************
596 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
597 h677 1.1 // *************************************************************************
598     procedure TGikoDM.GoBackActionExecute(Sender: TObject);
599     begin
600     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
601     if GikoSys.FAbon.GoForward =false then begin
602 h677 1.38 MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????',
603     MSG_ERROR, MB_OK or MB_ICONEXCLAMATION);
604 h677 1.1 end else begin
605 h677 1.16 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
606     RepaintStatusBar;
607     //???????帥????????祉??荐??
608 h677 1.1 GikoForm.RepaintAllTabsBrowser();
609     end;
610     end;
611     // *************************************************************************
612 h677 1.16 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
613     // *************************************************************************
614     procedure TGikoDM.RepaintStatusBar;
615     var
616     s : String;
617     begin
618     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
619     s := GikoSys.FAbon.NGwordname;
620 h677 1.23 GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
621 h677 1.16 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
622 h677 1.23 GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
623     := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
624 h677 1.16 GikoForm.StatusBarResize(nil);
625     end;
626     // *************************************************************************
627 yoffy 1.9 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
628 h677 1.1 // *************************************************************************
629     procedure TGikoDM.MoveToActionExecute(Sender: TObject);
630     begin
631     //?≪?????鴻?潟?潟?????????鴻????URL????緇?
632     //URL??Щ??
633 h677 1.43 MoveURLWithHistory( Trim(GikoForm.AddressComboBox.Text) );
634 h677 1.1 end;
635     // *************************************************************************
636 yoffy 1.9 //! ??羂????ャ????申?????ゃ?≪???違??????span>
637 h677 1.1 // *************************************************************************
638     procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
639     begin
640     GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
641     end;
642     // *************************************************************************
643 yoffy 1.9 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
644 h677 1.1 // *************************************************************************
645     procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
646     var
647     Dlg: TFavoriteArrangeDialog;
648     begin
649 h677 1.12 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
650 h677 1.1 try
651     Dlg.ShowModal;
652     finally
653     Dlg.Release;
654     end;
655     //???潟?????若???贋?違??篌?????
656     PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
657     end;
658     // *************************************************************************
659 yoffy 1.9 //! ?????若????????????
660 h677 1.1 // *************************************************************************
661     procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
662     var
663     node : TTreeNode;
664     begin
665     node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
666     try
667     //???若????膓???????????若????膰????????
668     while node <> nil do begin
669     if node.HasChildren then
670     node.Expanded := False;
671     node := node.GetNext;
672     end;
673     except
674     end;
675     end;
676 h677 1.2 // *************************************************************************
677 yoffy 1.9 //! ??羂????ャ??????????膩???????
678 h677 1.2 // *************************************************************************
679     procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
680     var
681     node : TTreeNode;
682     begin
683    
684     if GikoForm.ClickNode = nil then
685     Exit;
686     if GikoForm.ClickNode.IsFirstNode then
687     Exit;
688     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
689     Exit;
690     GikoForm.FavoriteTreeView.ReadOnly := False;
691     if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
692     node := GikoForm.ClickNode.Parent;
693     while node <> nil do begin
694     node.Expanded := True;
695     node := node.Parent;
696     end;
697     GikoForm.ClickNode.EditText;
698     end else begin
699     GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
700     end;
701 h677 1.22 //?贋?違????????????????
702     FavoriteDM.Modified := true;
703 h677 1.2 GikoForm.SetLinkBar;
704     end;
705     // *************************************************************************
706 yoffy 1.9 //! ?違?????羂????ャ??????????????篏???????
707 h677 1.2 // *************************************************************************
708     procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
709     var
710     NewFavFolder: TFavoriteFolder;
711     Node: TTreeNode;
712     begin
713    
714     if GikoForm.ClickNode = nil then
715     Exit;
716    
717     try
718     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
719     GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
720     GikoForm.ClickNode := GikoForm.ClickNode.Parent;
721     end;
722    
723     NewFavFolder := TFavoriteFolder.Create;
724     Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
725     Node.ImageIndex := 14;
726     Node.SelectedIndex := 14;
727     // FClickNode.Selected.Expanded := True;
728     GikoForm.FavoriteTreeView.Selected := Node;
729     GikoForm.ClickNode := Node;
730 h677 1.22 //?贋?違????????????????
731     FavoriteDM.Modified := true;
732 h677 1.2 FavoriteTreeViewRenameAction.Execute;
733     finally
734     end;
735    
736     end;
737     // *************************************************************************
738 yoffy 1.9 //! ??????羂????ャ???????ゃ????
739 h677 1.2 // *************************************************************************
740     procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
741     const
742     DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
743     DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
744     DEL_TITLE = '???ょ∈茯?';
745     begin
746    
747     if GikoForm.ClickNode = nil then
748     Exit;
749     if GikoForm.ClickNode.IsFirstNode then
750     Exit;
751     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
752     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
753     if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
754     Exit;
755     end else begin
756     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
757     Exit;
758     end;
759     end;
760    
761     GikoForm.ClickNode.Delete;
762 h677 1.22 //?贋?違????????????????
763     FavoriteDM.Modified := true;
764 h677 1.2
765     GikoForm.SetLinkBar;
766    
767     end;
768     // *************************************************************************
769 yoffy 1.9 //! ???????????????ャ?c????????羂????ャ????????????span>
770 h677 1.2 // *************************************************************************
771     procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
772     Sender: TObject);
773     begin
774     GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
775     end;
776     // *************************************************************************
777 yoffy 1.9 //! ?御??????????????羂????ャ?????????潟???若??????
778 h677 1.2 // *************************************************************************
779     procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
780     var
781     FavThread: TFavoriteThreadItem;
782     FavBoard: TFavoriteBoardItem;
783     shiftDown: Boolean;
784     begin
785 h677 1.29 if (GikoForm.ClickNode = nil) then Exit;
786 h677 1.2
787     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
788    
789 h677 1.29 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
790     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
791     if FavThread.Item <> nil then
792     GikoForm.DownloadContent(FavThread.Item, shiftDown);
793     end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
794     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
795     GikoForm.DownloadList(FavBoard.Item, shiftDown);
796 h677 1.2 end;
797    
798     end;
799     // *************************************************************************
800 h677 1.36 //! ?御??????????????羂????ャ????RL???潟???若????
801 h677 1.2 // *************************************************************************
802     procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
803     begin
804    
805     if GikoForm.ClickNode = nil then Exit;
806    
807 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
808     Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
809 h677 1.2 end;
810     end;
811     // *************************************************************************
812 h677 1.36 //! ?御??????????????羂????ャ???????????潟???若????
813 h677 1.2 // *************************************************************************
814     procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
815     begin
816    
817     if GikoForm.ClickNode = nil then Exit;
818    
819 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
820     Clipboard.AsText :=
821     TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
822 h677 1.36 end else begin
823     Clipboard.AsText :=
824     GikoForm.ClickNode.Text + #13#10;
825    
826 h677 1.2 end;
827     end;
828     // *************************************************************************
829 h677 1.36 //! ?御??????????????羂????ャ??????????RL???潟???若????
830 h677 1.2 // *************************************************************************
831     procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
832     Sender: TObject);
833     var
834 h677 1.16 favItem : TFavoriteItem;
835 h677 1.2 begin
836    
837     if GikoForm.ClickNode = nil then Exit;
838    
839 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
840     favItem := TFavoriteItem(GikoForm.ClickNode.Data);
841     Clipboard.AsText := favItem.GetItemTitle + #13#10 +
842     favItem.URL + #13#10;
843 h677 1.2 end;
844    
845     end;
846     // *************************************************************************
847 h677 1.36 //! ?御??????????????羂????ャ???鴻???????????ゃ????
848 h677 1.2 // *************************************************************************
849     procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
850     const
851     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
852     DEL_TITLE = '???ょ∈茯?';
853     var
854     ThreadItem: TThreadItem;
855     FavThread: TFavoriteThreadItem;
856     begin
857    
858     if GikoForm.ClickNode = nil then Exit;
859     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
860    
861     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
862     ThreadItem := FavThread.Item;
863    
864     try
865     if GikoSys.Setting.DeleteMsg then begin
866     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
867     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
868     Exit;
869     end;
870    
871     GikoForm.DeleteHistory(ThreadItem);
872     GikoForm.DeleteTab(ThreadItem);
873     ThreadItem.DeleteLogFile;
874    
875     GikoForm.ListView.Refresh;
876     finally
877     end;
878    
879     end;
880     // *************************************************************************
881 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
882 h677 1.2 // *************************************************************************
883     procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
884     Sender: TObject);
885     var
886     threadItem : TThreadItem;
887     begin
888    
889     if GikoForm.ClickNode = nil then Exit;
890    
891     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
892    
893     threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
894     if threadItem = nil then
895     Exit;
896     GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
897    
898     end;
899     end;
900 h677 1.17 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
901     procedure TGikoDM.ClearResFilter;
902     var
903     FilterList : TStringList;
904     begin
905     // ???c???炊??絖?????腥冴??????
906     FilterList := TStringList.Create;
907     try
908     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
909     GikoSys.FSelectResFilter.Reverse := False;
910     finally
911     FilterList.Free;
912     end;
913     GikoForm.SelectResWord := '';
914     end;
915     // *************************************************************************
916     //! ???鴻??;腓榊??蚊??荐??????
917     // *************************************************************************
918     procedure TGikoDM.SetResRange(range: Integer);
919     begin
920     if GikoSys.ResRange <> range then begin
921     GikoSys.ResRange := range;
922     // ???c???炊??絖?????腥冴??????
923     ClearResFilter;
924     GikoForm.RepaintAllTabsBrowser();
925     end;
926     end;
927 h677 1.3 // *************************************************************************
928 yoffy 1.9 //! ????00???鴻???粋;腓?/span>
929 h677 1.3 // *************************************************************************
930     procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
931     begin
932     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
933     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
934    
935     GikoForm.ResRangeMenuSelect := 100;
936     OnlyAHundredResAction.Checked := True;
937 h677 1.72 //??茵?ず膀??蚊??荐????????荐???ゃ???????c???????
938     SetResRange(GikoSys.Setting.ResRangeExCount);
939 h677 1.3 end;
940     // *************************************************************************
941 yoffy 1.9 //! ??????鴻???粋;腓?/span>
942 h677 1.3 // *************************************************************************
943     procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
944     begin
945     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
946     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
947    
948     GikoForm.ResRangeMenuSelect := Ord( grrKoko );
949     OnlyKokoResAction.Checked := True;
950    
951 h677 1.17 //??茵?ず膀??蚊??荐??????
952     SetResRange(Ord( grrKoko ));
953 h677 1.3 end;
954     // *************************************************************************
955 yoffy 1.9 //! ?亥?????鴻???粋;腓?/span>
956 h677 1.3 // *************************************************************************
957     procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
958     begin
959     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
960     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
961    
962     GikoForm.ResRangeMenuSelect := Ord( grrNew );
963     OnlyNewResAction.Checked := True;
964    
965 h677 1.17 //??茵?ず膀??蚊??荐??????
966     SetResRange(Ord( grrNew ));
967 h677 1.3 end;
968     // *************************************************************************
969 h677 1.18 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
970     // *************************************************************************
971     procedure TGikoDM.SetThreadAreaHorNormal;
972     begin
973     //??絽梧;腓冴??????
974     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
975     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
976     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
977     GikoSys.Setting.ListWidthState := glsNormal;
978     end;
979     // *************************************************************************
980     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
981     // *************************************************************************
982     procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
983     begin
984     if GikoSys.Setting.ListWidthState = glsNormal then
985     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
986     //??紊ц;腓?/span>
987     if (gls = glsMax) then begin
988     GikoForm.ViewPanel.Width := 1;
989     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
990     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
991     GikoSys.Setting.ListWidthState := glsMax;
992     end else if (gls = glsMin) then begin
993     GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
994     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
995     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
996     GikoSys.Setting.ListWidthState := glsMin;
997     end;
998     end;
999     // *************************************************************************
1000     //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
1001     // *************************************************************************
1002     procedure TGikoDM.SetThreadAreaVerNormal;
1003     begin
1004     //??絽梧;腓冴??????
1005     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
1006     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1007     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1008     GikoSys.Setting.ListHeightState := glsNormal;
1009     end;
1010     // *************************************************************************
1011     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
1012     // *************************************************************************
1013     procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
1014     begin
1015     if GikoSys.Setting.ListHeightState = glsNormal then
1016     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
1017     if (gls = glsMin) then begin
1018     GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
1019     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1020     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1021     GikoSys.Setting.ListHeightState := glsMin;
1022     end else if (gls = glsMax) then begin
1023     GikoForm.ViewPanel.Height := 1;
1024     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1025     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1026     GikoSys.Setting.ListHeightState := glsMax;
1027     end;
1028     end;
1029     // *************************************************************************
1030 yoffy 1.9 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
1031 h677 1.3 // *************************************************************************
1032     procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
1033     begin
1034     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1035     case GikoSys.Setting.ListWidthState of
1036     glsMax: begin
1037     //??絽梧;腓冴??????
1038 h677 1.18 SetThreadAreaHorNormal;
1039 h677 1.3 end;
1040     glsMin, glsNormal: begin
1041     //??紊ц;腓冴??????
1042 h677 1.18 SetThreadAreaHorizontal(glsMax);
1043 h677 1.3 end;
1044     end;
1045     end else begin
1046     case GikoSys.Setting.ListHeightState of
1047     glsMax: begin
1048     //??絽梧;腓冴??????
1049 h677 1.18 SetThreadAreaVerNormal;
1050 h677 1.3 end;
1051     glsMin, glsNormal: begin
1052     //??紊ц;腓冴??????
1053 h677 1.18 SetThreadAreaVertical(glsMax);
1054 h677 1.3 end;
1055     end;
1056     end;
1057     end;
1058     // *************************************************************************
1059 yoffy 1.9 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
1060 h677 1.3 // *************************************************************************
1061     procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
1062     begin
1063     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1064     case GikoSys.Setting.ListWidthState of
1065     glsMax, glsNormal: begin
1066     //??絨頫?ず??????
1067 h677 1.18 SetThreadAreaHorizontal(glsMin);
1068 h677 1.3 end;
1069     glsMin: begin
1070     //??絽梧;腓冴??????
1071 h677 1.18 SetThreadAreaHorNormal;
1072 h677 1.3 end;
1073     end;
1074     end else begin
1075     case GikoSys.Setting.ListHeightState of
1076     glsMax, glsNormal: begin
1077     //??絨頫?ず??????
1078 h677 1.18 SetThreadAreaVertical(glsMin);
1079 h677 1.3 end;
1080     glsMin: begin
1081     //??絽梧;腓冴??????
1082 h677 1.18 SetThreadAreaVerNormal;
1083 h677 1.3 end;
1084     end;
1085     end;
1086     end;
1087     // *************************************************************************
1088 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1089 h677 1.3 // *************************************************************************
1090     procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1091     begin
1092     GikoForm.BrowserMovement('top');
1093     end;
1094     // *************************************************************************
1095 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1096 h677 1.3 // *************************************************************************
1097     procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1098     begin
1099     GikoForm.BrowserMovement('bottom');
1100     end;
1101     // *************************************************************************
1102 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1103 h677 1.3 // *************************************************************************
1104     procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1105     begin
1106     GikoForm.BrowserMovement('new');
1107     end;
1108     // *************************************************************************
1109 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1110 h677 1.3 // *************************************************************************
1111     procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1112     begin
1113     GikoForm.BrowserMovement('koko');
1114     end;
1115     // *************************************************************************
1116 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1117 h677 1.3 // *************************************************************************
1118     procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1119     begin
1120     ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1121     and (GikoForm.GetActiveContent.IsLogFile)
1122     and (GikoForm.GetActiveContent.Kokomade <> -1);
1123     end;
1124     // *************************************************************************
1125 yoffy 1.9 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1126 h677 1.3 // *************************************************************************
1127     procedure TGikoDM.EditorActionExecute(Sender: TObject);
1128     var
1129     Editor: TEditorForm;
1130     Item: TThreadItem;
1131     begin
1132     Item := GikoForm.GetActiveContent;
1133     if Item = nil then Exit;
1134     Editor := TEditorForm.Create(GikoForm.GetMainForm);
1135     Editor.SetThreadItem(Item);
1136     Editor.Show;
1137     Editor.BodyEdit.SetFocus;
1138     end;
1139     // *************************************************************************
1140 yoffy 1.9 //! ?鴻???????????吟?ц;腓冴????
1141 h677 1.3 // *************************************************************************
1142     procedure TGikoDM.IEActionExecute(Sender: TObject);
1143     begin
1144     ShowThreadAction.Execute;
1145     end;
1146     // *************************************************************************
1147 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1148 h677 1.3 // *************************************************************************
1149     procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1150     var
1151     ThreadItem: TThreadItem;
1152     begin
1153     ThreadItem := GikoForm.GetActiveContent;
1154     if ThreadItem = nil then Exit;
1155     GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1156     end;
1157     // *************************************************************************
1158 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1159 h677 1.3 // *************************************************************************
1160     procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1161     var
1162     ThreadItem: TThreadItem;
1163     begin
1164     ThreadItem := GikoForm.GetActiveContent;
1165     if ThreadItem = nil then Exit;
1166     GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1167     end;
1168     // *************************************************************************
1169 yoffy 1.9 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1170 h677 1.3 // *************************************************************************
1171     procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1172     var
1173     s: string;
1174     begin
1175     s := '';
1176     if TObject(GikoForm.GetActiveContent) is TBoard then
1177     s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1178     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1179     s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1180     if s <> '' then
1181     Clipboard.AsText := s;
1182     end;
1183     // *************************************************************************
1184 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????潟???若????
1185 h677 1.3 // *************************************************************************
1186     procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1187     var
1188     s: string;
1189     begin
1190     s := '';
1191     if TObject(GikoForm.GetActiveContent) is TBoard then
1192     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1193     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1194     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1195     if s <> '' then
1196     Clipboard.AsText := s;
1197     end;
1198     // *************************************************************************
1199 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1200 h677 1.3 // *************************************************************************
1201     procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1202     var
1203     s: string;
1204     begin
1205     s := '';
1206     if TObject(GikoForm.GetActiveContent) is TBoard then
1207     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1208     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1209     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1210     if s <> '' then
1211     Clipboard.AsText := s;
1212     end;
1213     // *************************************************************************
1214 yoffy 1.9 //! 茵?ず???????????鴻?????????????潟???若??????
1215 h677 1.3 // *************************************************************************
1216     procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1217     var
1218     ThreadItem: TThreadItem;
1219     shiftDown: Boolean;
1220     begin
1221     ThreadItem := GikoForm.GetActiveContent;
1222     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1223     if ThreadItem <> nil then
1224     GikoForm.DownloadContent(ThreadItem, shiftDown);
1225     end;
1226     // *************************************************************************
1227 yoffy 1.9 //! ?上?????????????帥??????????
1228 h677 1.3 // *************************************************************************
1229     procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1230     var
1231     idx: Integer;
1232     begin
1233     idx := GikoForm.BrowserTab.TabIndex;
1234     if idx <> -1 then begin
1235     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1236     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1237     end;
1238     end;
1239     end;
1240     // *************************************************************************
1241 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1242 h677 1.3 // *************************************************************************
1243     procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1244     begin
1245     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1246     end;
1247     // *************************************************************************
1248 yoffy 1.9 //! ?上?????????????帥??篁ュ?????????
1249 h677 1.3 // *************************************************************************
1250     procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1251     var
1252     i: Integer;
1253     idx: Integer;
1254     begin
1255     idx := GikoForm.BrowserTab.TabIndex;
1256     if idx = -1 then Exit;
1257     GikoForm.BrowserTab.Tabs.BeginUpdate;
1258     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1259     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1260     GikoForm.BrowserTab.Tabs.Delete(i);
1261     end;
1262     if idx > 0 then begin
1263     for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1264     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1265     GikoForm.BrowserTab.Tabs.Delete(i);
1266     end;
1267     end;
1268     GikoForm.BrowserTab.Tabs.EndUpdate;
1269     end;
1270     // *************************************************************************
1271 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1272 h677 1.3 // *************************************************************************
1273     procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1274     begin
1275     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1276     end;
1277     // *************************************************************************
1278 yoffy 1.9 //! ???????帥??????????
1279 h677 1.3 // *************************************************************************
1280     procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1281     var
1282     i: Integer;
1283     begin
1284     if GikoSys.Setting.ShowDialogForAllTabClose then
1285     if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1286     Exit;
1287    
1288     GikoForm.ActiveContent := nil;
1289     GikoForm.BrowserNullTab.Thread := nil;
1290     GikoForm.BrowserTab.OnChange := nil;
1291     GikoForm.BrowserTab.Tabs.BeginUpdate;
1292     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1293     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1294     end;
1295     GikoForm.BrowserTab.Tabs.Clear;
1296     GikoForm.BrowserTab.Tabs.EndUpdate;
1297     GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1298     GikoForm.SetContent(GikoForm.BrowserNullTab);
1299     GikoForm.Caption := CAPTION_NAME ;
1300     end;
1301     // *************************************************************************
1302 yoffy 1.9 //! ?上?????????????帥?????鴻???????????ゃ????
1303 h677 1.3 // *************************************************************************
1304     procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1305     const
1306     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1307     DEL_TITLE = '???ょ∈茯?';
1308     var
1309     idx: Integer;
1310     ThreadItem: TThreadItem;
1311     begin
1312     idx := GikoForm.BrowserTab.TabIndex;
1313     if idx <> -1 then begin
1314     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1315     ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1316     if GikoSys.Setting.DeleteMsg then
1317     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1318     if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1319     Exit;
1320     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1321 h677 1.37 GikoForm.DeleteHistory(ThreadItem);
1322 h677 1.3 ThreadItem.DeleteLogFile;
1323     if ThreadItem.ParentBoard = GikoForm.ActiveList then
1324     GikoForm.ListView.Refresh;
1325     end;
1326     end;
1327     end;
1328     // *************************************************************************
1329 yoffy 1.9 //! 筝???窪???帥?????御??????
1330 h677 1.3 // *************************************************************************
1331     procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1332     begin
1333     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1334     GikoForm.BrowserTab.TabIndex := 0;
1335     GikoForm.BrowserTab.OnChange(nil);
1336     end;
1337     end;
1338     // *************************************************************************
1339 h677 1.46 //! 綏????帥?????御????????pdate?ゃ???潟??
1340     // *************************************************************************
1341     procedure TGikoDM.LeftTabSelectActionUpdate(Sender: TObject);
1342     begin
1343     if ( not GikoSys.Setting.LoopBrowserTabs ) then begin
1344     LeftmostTabSelectActionUpdate(Sender);
1345     end else begin
1346     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1347     end;
1348     end;
1349    
1350     // *************************************************************************
1351 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1352 h677 1.3 // *************************************************************************
1353     procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1354     begin
1355     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1356     and (GikoForm.BrowserTab.TabIndex <> 0);
1357     end;
1358     // *************************************************************************
1359 yoffy 1.9 //! 綏????帥?????御??????
1360 h677 1.3 // *************************************************************************
1361     procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1362     begin
1363     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1364     if GikoForm.BrowserTab.TabIndex = -1 then begin
1365     GikoForm.BrowserTab.TabIndex := 0;
1366     GikoForm.BrowserTab.OnChange(nil);
1367     end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1368     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1369     GikoForm.BrowserTab.OnChange(nil);
1370 h677 1.46 end else begin
1371     if (GikoSys.Setting.LoopBrowserTabs) and
1372     (GikoForm.BrowserTab.TabIndex = 0) then begin
1373     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1374     GikoForm.BrowserTab.OnChange(nil);
1375     end;
1376     end;
1377 h677 1.3 end;
1378     end;
1379     // *************************************************************************
1380 yoffy 1.9 //! ?潟???帥?????御??????
1381 h677 1.3 // *************************************************************************
1382     procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1383     begin
1384     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1385     if GikoForm.BrowserTab.TabIndex = -1 then begin
1386     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1387     GikoForm.BrowserTab.OnChange(nil);
1388     end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1389     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1390     GikoForm.BrowserTab.OnChange(nil);
1391 h677 1.46 end else begin
1392     if (GikoSys.Setting.LoopBrowserTabs) and
1393     (GikoForm.BrowserTab.TabIndex = (GikoForm.BrowserTab.Tabs.Count - 1)) then begin
1394     GikoForm.BrowserTab.TabIndex := 0;
1395     GikoForm.BrowserTab.OnChange(nil);
1396     end;
1397     end;
1398 h677 1.3 end;
1399     end;
1400     // *************************************************************************
1401 h677 1.46 //! ?潟???帥?????御??????Update?ゃ???潟??
1402 h677 1.3 // *************************************************************************
1403     procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1404     begin
1405 h677 1.46 if ( not GikoSys.Setting.LoopBrowserTabs ) then begin
1406     RightmostTabSelectActionUpdate(Sender);
1407     end else begin
1408     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1409     end;
1410 h677 1.3 end;
1411 h677 1.46
1412 h677 1.3 // *************************************************************************
1413 yoffy 1.9 //! 筝???劻???帥?????御??????
1414 h677 1.3 // *************************************************************************
1415     procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1416     begin
1417     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1418     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1419     GikoForm.BrowserTab.OnChange(nil);
1420     end;
1421     end;
1422     // *************************************************************************
1423 h677 1.46 //! 筝???劻???帥?????御????????pdate?ゃ???潟??
1424     // *************************************************************************
1425     procedure TGikoDM.RightmostTabSelectActionUpdate(Sender: TObject);
1426     begin
1427     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1428     and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1429    
1430     end;
1431     // *************************************************************************
1432 yoffy 1.9 //! ?御?????????????鴻??????????羂????ャ????申??
1433 h677 1.3 // *************************************************************************
1434     procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1435     begin
1436     if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1437     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1438     end;
1439     // *************************************************************************
1440 yoffy 1.9 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1441 h677 1.3 // *************************************************************************
1442     procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1443     begin
1444     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1445     and (GikoForm.ListView.SelCount > 0);
1446     end;
1447     // *************************************************************************
1448 yoffy 1.9 //! ???鴻????絎鴻??腟???莨若??
1449 h677 1.3 // *************************************************************************
1450     procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1451     var
1452     Dlg: TListSelectDialog;
1453     FilterList : TStringList;
1454     idx : Integer;
1455     begin
1456 h677 1.12 Dlg := TListSelectDialog.Create(GikoForm);
1457 h677 1.3 try
1458     Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1459     Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1460     Dlg.ShowModal;
1461     if Dlg.ModalResult = mrOK then begin
1462     SelectResAction.Checked := True;
1463     if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1464     // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1465     ResRangeAction.Execute;
1466     end else begin
1467     GikoSys.ResRange := Ord( grrSelect );
1468    
1469     // ??緇???┃絎???????????荀?????????span>
1470     GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1471    
1472     // 罎?膣√吋罩眼???贋??/span>
1473     idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1474     if idx <> -1 then
1475     GikoSys.Setting.SelectTextList.Delete(idx);
1476     GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1477     while Dlg.SelectComboBox.Items.Count > 100 do begin
1478     Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1479     end;
1480    
1481     try
1482     if GikoForm.SelectComboBoxPanel.Visible then
1483     GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1484     except
1485     end;
1486    
1487     // ???c???帥??┃絎?
1488     FilterList := TStringList.Create;
1489     try
1490     GikoSys.FSelectResFilter.Reverse := True;
1491     FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1492     FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1493    
1494     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1495     finally
1496     FilterList.Free;
1497     end;
1498     GikoForm.RepaintAllTabsBrowser();
1499     end;
1500     end else begin
1501     // ???c?潟?祉??/span>
1502     if GikoSys.ResRange <> Ord( grrSelect ) then
1503     ResRangeAction.Execute;
1504     end;
1505     finally
1506     Dlg.Release;
1507     end;
1508    
1509     end;
1510     // *************************************************************************
1511 yoffy 1.9 //! ?????????鴻??茵?ず????
1512 h677 1.3 // *************************************************************************
1513     procedure TGikoDM.AllResActionExecute(Sender: TObject);
1514     begin
1515     if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1516     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1517    
1518     GikoForm.ResRangeMenuSelect := Ord( grrAll );
1519     AllResAction.Checked := True;
1520    
1521 h677 1.17 //??茵?ず膀??蚊??荐??????
1522     SetResRange(Ord( grrAll ));
1523 h677 1.3 end;
1524     // *************************************************************************
1525 yoffy 1.9 //! ???鴻??;腓榊??蚊??荐??
1526 h677 1.3 // *************************************************************************
1527     procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1528     begin
1529     case GikoForm.ResRangeMenuSelect of
1530     Ord( grrAll ): AllResAction.Execute;
1531     Ord( grrKoko ): OnlyKokoResAction.Execute;
1532     Ord( grrNew ): OnlyNewResAction.Execute;
1533     100: OnlyAHundredResAction.Execute;
1534     end;
1535    
1536     end;
1537     // *************************************************************************
1538 yoffy 1.9 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1539 h677 1.3 // *************************************************************************
1540     procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1541     begin
1542     GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1543     end;
1544     // *************************************************************************
1545 yoffy 1.9 //! ??絎???????垩?????鴻?????/span>
1546 h677 1.3 // *************************************************************************
1547     procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1548     var
1549     str: string;
1550     res: integer;
1551     begin
1552     str := '1';
1553     if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1554     str := ZenToHan(str);
1555     res := StrToIntDef(str, -1);
1556     if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1557 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(res));
1558 h677 1.3 SetFocusForBrowserAction.Execute;
1559     end else if res > GikoForm.GetActiveContent.Count then begin
1560 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1561 h677 1.3 SetFocusForBrowserAction.Execute;
1562     end;
1563     end;
1564     end;
1565     // *************************************************************************
1566 yoffy 1.9 //! ?≪?????c?????帥???????潟????????
1567 h677 1.3 // *************************************************************************
1568     procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1569     var
1570     i: Integer;
1571     idx: Integer;
1572     begin
1573     idx := GikoForm.BrowserTab.TabIndex;
1574     if idx = -1 then Exit;
1575     GikoForm.BrowserTab.Tabs.BeginUpdate;
1576     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1577     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1578     GikoForm.BrowserTab.Tabs.Delete(i);
1579     end;
1580     GikoForm.BrowserTab.Tabs.EndUpdate;
1581     end;
1582     // *************************************************************************
1583 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1584 h677 1.3 // *************************************************************************
1585     procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1586     begin
1587     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1588     end;
1589     // *************************************************************************
1590 yoffy 1.9 //! ?≪?????c?????帥??????綏?????????
1591 h677 1.3 // *************************************************************************
1592     procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1593     var
1594     i: Integer;
1595     idx: Integer;
1596     begin
1597     idx := GikoForm.BrowserTab.TabIndex;
1598     if idx = -1 then Exit;
1599     GikoForm.BrowserTab.Tabs.BeginUpdate;
1600     if idx > 0 then begin
1601     for i := idx - 1 downto 0 do begin
1602     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1603     GikoForm.BrowserTab.Tabs.Delete(i);
1604     end;
1605     end;
1606     GikoForm.BrowserTab.Tabs.EndUpdate;
1607     end;
1608     ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1609 h677 1.4 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1610     begin
1611 h677 1.40 // GikoDM?????????????????????綽?荀??????????<?ゃ????????????????鐚?鐚?
1612     // ????????????絵??????????鐚?
1613     //????莎桁???????????????<?ゃ??┃絎?
1614     TDefaultFileManager.CopyDefaultFiles(
1615     GikoSys.GetAppDir + 'defaultFiles.ini');
1616 h677 1.4 end;
1617     // *************************************************************************
1618 yoffy 1.9 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1619 h677 1.4 // *************************************************************************
1620     procedure TGikoDM.SearchActionExecute(Sender: TObject);
1621     var
1622     chk: TObject;
1623     begin
1624    
1625     if GikoForm.SearchDialog = nil then begin
1626     if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1627     chk := GikoForm.GetActiveList
1628     else
1629     chk := nil;
1630    
1631 h677 1.12 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1632 h677 1.4 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1633     end;
1634    
1635     try
1636     GikoForm.SearchDialog.Show;
1637     except
1638     end;
1639     end;
1640     // *************************************************************************
1641 yoffy 1.9 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1642 h677 1.4 // *************************************************************************
1643     procedure TGikoDM.OptionActionExecute(Sender: TObject);
1644     var
1645     Dlg: TOptionDialog;
1646     begin
1647 h677 1.12 Dlg := TOptionDialog.Create(GikoForm);
1648 h677 1.4 try
1649     Dlg.ShowModal;
1650     finally
1651     Dlg.Release;
1652     end;
1653     end;
1654     // *************************************************************************
1655 yoffy 1.9 //! 綏≦?????ゃ?≪???違??茵?ず????
1656 h677 1.4 // *************************************************************************
1657     procedure TGikoDM.RoundActionExecute(Sender: TObject);
1658     var
1659     Dlg: TRoundDialog;
1660     begin
1661 h677 1.12 Dlg := TRoundDialog.Create(GikoForm);
1662 h677 1.4 try
1663     Dlg.ShowModal;
1664     finally
1665     Dlg.Release;
1666     end;
1667     end;
1668     // *************************************************************************
1669 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1670 h677 1.4 // *************************************************************************
1671     procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1672     var
1673     Dlg: TKeySettingForm;
1674     begin
1675 h677 1.12 Dlg := TKeySettingForm.Create(GikoForm);
1676 h677 1.4 try
1677     if Dlg.ShowModal = mrOk then begin
1678 h677 1.20 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1679 h677 1.30 GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME);
1680 h677 1.4 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1681     end;
1682    
1683     finally
1684     Dlg.Release;
1685     MouseGesture.UnHook;
1686     MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1687     MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1688     MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1689     if GikoSys.Setting.GestureEnabled then begin
1690     GikoSys.Setting.Gestures.ClearGesture;
1691     GikoSys.Setting.Gestures.LoadGesture(
1692     GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1693     MouseGesture.SetHook( GikoForm.Handle );
1694     end;
1695     end;
1696     end;
1697     // *************************************************************************
1698 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1699 h677 1.4 // *************************************************************************
1700     procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1701     var
1702     Dlg: TKotehanDialog;
1703     begin
1704 h677 1.12 Dlg := TKotehanDialog.Create(GikoForm);
1705 h677 1.4 try
1706     Dlg.ShowModal;
1707     finally
1708     Dlg.Release;
1709     end;
1710     end;
1711     // *************************************************************************
1712 yoffy 1.9 //! ???若?????取┃絎????ゃ?≪???違??????span>
1713 h677 1.4 // *************************************************************************
1714     procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1715     var
1716     Dlg: TToolBarSettingDialog;
1717     i: Integer;
1718     begin
1719     Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1720     try
1721     Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1722     Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1723     Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1724     case GikoForm.ToolBarSettingSender of
1725     tssMain: Dlg.ToolBarIndex := 0;
1726     tssList: Dlg.ToolBarIndex := 1;
1727     tssBrowser: Dlg.ToolBarIndex := 2;
1728     end;
1729     if Dlg.ShowModal = mrOK then begin
1730     GikoForm.SetToolBarPopup;
1731    
1732     //?????????荐??????????????????????????c?????????
1733     for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1734     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1735     GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1736     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1737     GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1738     end;
1739     for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1740     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1741     GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1742     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1743     GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1744     end;
1745     for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1746     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1747     GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1748     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1749     GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1750     end;
1751    
1752     SaveToolBarSetting(GikoForm.StdToolBar);
1753     SaveToolBarSetting(GikoForm.ListToolBar);
1754     //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1755 h677 1.13 GikoForm.SetSelectComboBox;
1756 h677 1.4 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1757     SaveToolBarSetting(GikoForm.BrowserToolBar);
1758     end;
1759     finally
1760     Dlg.Release;
1761     GikoForm.ToolBarSettingSender := tssNone;
1762     end;
1763     end;
1764     // *************************************************************************
1765 yoffy 1.9 //! ???ャ?若??
1766 h677 1.4 // *************************************************************************
1767     procedure TGikoDM.MuteActionExecute(Sender: TObject);
1768     begin
1769     GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1770     end;
1771     ////////////////////////////////???若???障?с?????障??/////////////////////
1772     // *************************************************************************
1773 yoffy 1.9 //! ?鴻??????筝?荀с???????潟???若??????
1774 h677 1.4 // *************************************************************************
1775     procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1776     var
1777     Board: TBoard;
1778     TmpTreeNode: TTreeNode;
1779     begin
1780     TmpTreeNode := GikoForm.ClickNode;
1781     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1782     Board := nil;
1783    
1784     if TObject(TmpTreeNode.Data) is TBoard then
1785     Board := TBoard(TmpTreeNode.Data)
1786     else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1787     Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1788    
1789     if Board <> nil then
1790     GikoForm.DownloadList(Board);
1791     end;
1792     // *************************************************************************
1793 yoffy 1.9 //! ?御?????????鴻?????????????潟???若??????
1794 h677 1.4 // *************************************************************************
1795     procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1796     var
1797     ThreadItem: TThreadItem;
1798     TmpTreeNode: TTreeNode;
1799     begin
1800     TmpTreeNode := GikoForm.ClickNode;
1801     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1802     ThreadItem := nil;
1803    
1804     if TObject(TmpTreeNode.Data) is TThreadItem then
1805     ThreadItem := TThreadItem(TmpTreeNode.Data)
1806     else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1807     ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1808    
1809     if ThreadItem <> nil then
1810     GikoForm.DownloadContent(ThreadItem);
1811     end;
1812     // *************************************************************************
1813 yoffy 1.9 //! ?御?????????帥??RL???潟???若????
1814 h677 1.4 // *************************************************************************
1815     procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1816     var
1817     TmpTreeNode: TTreeNode;
1818     s: string;
1819     begin
1820     TmpTreeNode := GikoForm.ClickNode;
1821     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1822     if TObject(TmpTreeNode.Data) is TBoard then begin
1823     s := TBoard(TmpTreeNode.Data).URL + #13#10;
1824     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1825     s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1826     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1827     s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1828     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1829     s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1830     end;
1831     Clipboard.AsText := s;
1832     end;
1833     // *************************************************************************
1834 yoffy 1.9 //! ?御?????????帥????????RL???潟???若????
1835 h677 1.4 // *************************************************************************
1836     procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1837     var
1838     TmpTreeNode: TTreeNode;
1839     s: string;
1840     begin
1841     TmpTreeNode := GikoForm.ClickNode;
1842     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1843     if TObject(TmpTreeNode.Data) is TBoard then begin
1844     s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1845     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1846     s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1847     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1848     s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1849     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1850     s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1851     end;
1852     Clipboard.AsText := s;
1853     end;
1854     // *************************************************************************
1855 yoffy 1.9 //! ??羂????ャ????申??????
1856 h677 1.4 // *************************************************************************
1857     procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1858     begin
1859     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1860     end;
1861     // *************************************************************************
1862 yoffy 1.9 //! ?水??罎?膣?/span>
1863 h677 1.4 // *************************************************************************
1864     procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1865     var
1866     s : String;
1867     msg : String;
1868     CurItem : TTreeNode;
1869     next : boolean;
1870     begin
1871     if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1872     next := true;
1873     while next do begin
1874     if GikoForm.TreeView.Selected = nil then
1875     CurItem := GikoForm.TreeView.Items.GetFirstNode
1876     else begin
1877     CurItem := GikoForm.TreeView.Selected.GetNext;
1878     if CurItem = nil then
1879     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1880     end;
1881     while CurItem <> nil do begin
1882     if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1883     break;
1884     end;
1885     CurItem := CurItem.GetNext;
1886     end;
1887     try
1888     if CurItem = nil then begin
1889     msg := '???????祉???障????鐚?';
1890     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1891     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1892     end else begin
1893     Exit;
1894     end;
1895     GikoForm.TreeView.Select(CurItem);
1896     GikoForm.TreeView.SetFocus;
1897     end else begin
1898     GikoForm.TreeView.Select(CurItem);
1899     GikoForm.TreeView.SetFocus;
1900     msg := '罨<??????障????鐚?';
1901     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1902     next := true;
1903     end else begin
1904     next := false;
1905     end;
1906     end;
1907    
1908     except
1909     Exit;
1910     end;
1911     end;
1912     end;
1913     end;
1914     // *************************************************************************
1915 yoffy 1.9 //! ?御?????????帥?????????潟???若????
1916 h677 1.4 // *************************************************************************
1917     procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1918     var
1919     s: string;
1920     begin
1921     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1922     s := GikoForm.ClickNode.Text;
1923     Clipboard.AsText := s;
1924     end;
1925     ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1926 h677 1.5 // *************************************************************************
1927 yoffy 1.9 //! ???違?ゃ?鰹????違?≪??????????
1928 h677 1.5 // *************************************************************************
1929     procedure TGikoDM.LoginActionExecute(Sender: TObject);
1930     var
1931     TmpCursor: TCursor;
1932     msg : String;
1933     begin
1934     if GikoSys.Dolib.Connected then begin
1935     //???違?≪????
1936     GikoSys.Dolib.Disconnect;
1937     LoginAction.Checked := False;
1938 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1939 h677 1.5 LoginAction.Caption := '???違?ゃ??&L)';
1940     end else begin
1941     TmpCursor := GikoForm.ScreenCursor;
1942     GikoForm.ScreenCursor := crHourGlass;
1943     try
1944     //??絽吾???違?ゃ??/span>
1945     if not GikoSys.Setting.ForcedLogin then begin
1946     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1947     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1948     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1949     if GikoSys.Setting.ReadProxy then begin
1950     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1951     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1952     end else begin
1953     GikoSys.Dolib.ProxyAddress := '';
1954     GikoSys.Dolib.ProxyPort := 0;
1955     end;
1956     if GikoSys.Dolib.Connect then begin
1957     LoginAction.Checked := True;
1958 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1959 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1960     //LoginToolButton.Style := tbsCheck;
1961     end else begin
1962     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1963     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1964     GikoForm.PlaySound('Error');
1965     LoginAction.Checked := False;
1966     //LoginToolButton.Down := False;
1967     ///LoginToolButton.Style := tbsButton;
1968     end;
1969     end else begin
1970     msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1971     + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1972     + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1973     if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1974     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1975     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1976     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1977     if GikoSys.Setting.ReadProxy then begin
1978     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1979     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1980     end else begin
1981     GikoSys.Dolib.ProxyAddress := '';
1982     GikoSys.Dolib.ProxyPort := 0;
1983     end;
1984     //SSL??絎括??七?吟???違?ゃ??/span>
1985     GikoSys.Dolib.ForcedConnect;
1986     if GikoSys.Dolib.Connect then begin
1987     LoginAction.Checked := True;
1988 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1989 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1990     //LoginToolButton.Style := tbsCheck;
1991     end else begin
1992     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1993     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1994     GikoForm.PlaySound('Error');
1995     LoginAction.Checked := False;
1996     //LoginToolButton.Down := False;
1997     //LoginToolButton.Style := tbsButton;
1998     end;
1999     end else begin
2000     LoginAction.Checked := False;
2001     //LoginToolButton.Down := False;
2002     //LoginToolButton.Style := tbsButton;
2003     end;
2004     end;
2005     finally
2006     GikoForm.ScreenCursor := TmpCursor;
2007     end;
2008     end;
2009     end;
2010     // *************************************************************************
2011 yoffy 1.9 //! ???若???贋?違???ゃ?≪???違??茵?ず????
2012 h677 1.5 // *************************************************************************
2013     procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
2014     var
2015     Dlg: TNewBoardDialog;
2016     Msg: string;
2017     begin
2018 h677 1.41 if (EditorFormExists) then begin
2019 h677 1.5 Msg := '???鴻?????c?帥???????????????????';
2020 h677 1.38 MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
2021 h677 1.5 Exit;
2022     end;
2023 h677 1.12 Dlg := TNewBoardDialog.Create(GikoForm);
2024 h677 1.5 try
2025     Dlg.ShowModal;
2026     finally
2027     Dlg.Release;
2028     end;
2029     end;
2030     // *************************************************************************
2031 yoffy 1.9 //! ?御?????????????鴻???????????ゃ????
2032 h677 1.5 // *************************************************************************
2033     procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
2034     const
2035     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
2036     DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
2037     DEL_TITLE = '???ょ∈茯?';
2038     var
2039     ThreadItem: TThreadItem;
2040     TmpListItem: TListItem;
2041     List: TList;
2042     i: Integer;
2043     begin
2044     List := TList.Create;
2045     try
2046     TmpListItem := GikoForm.ListView.Selected;
2047     while TmpListItem <> nil do begin
2048     if TObject(TmpListItem.Data) is TThreadItem then begin
2049     ThreadItem := TThreadItem(TmpListItem.Data);
2050     if ThreadItem.IsLogFile then
2051     List.Add(ThreadItem);
2052     end;
2053     TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
2054     end;
2055    
2056     if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
2057     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
2058     if List.Count = 1 then begin
2059     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
2060     Exit;
2061     end else begin
2062     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
2063     Exit;
2064     end;
2065     end;
2066     end;
2067    
2068     for i := 0 to List.Count - 1 do begin
2069     ThreadItem := TThreadItem(List[i]);
2070     GikoForm.DeleteHistory(ThreadItem);
2071     GikoForm.DeleteTab(ThreadItem);
2072     ThreadItem.DeleteLogFile;
2073     end;
2074 h677 1.63 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
2075 h677 1.5 GikoForm.ListView.Refresh;
2076     finally
2077     List.Free;
2078     end;
2079     end;
2080     // *************************************************************************
2081 yoffy 1.9 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
2082 h677 1.5 // *************************************************************************
2083     procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
2084     begin
2085     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
2086     and (GikoForm.ListView.SelCount > 0);
2087     end;
2088     // *************************************************************************
2089 yoffy 1.9 //! 腟?莨若?水吋罩眼??羔??祉????
2090 h677 1.5 // *************************************************************************
2091     procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
2092     const
2093     DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
2094     DEL_TITLE = '???ょ∈茯?';
2095     begin
2096     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2097     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2098     Exit;
2099     GikoSys.Setting.SelectTextList.Clear;
2100     GikoForm.SelectComboBox.Items.Clear;
2101     GikoForm.SelectComboBox.Text := '';
2102     GikoForm.SetListViewType( gvtAll );
2103     end;
2104     // *************************************************************************
2105 yoffy 1.9 //! ???鴻?????c?帥??????絮ユ???羔??祉????
2106 h677 1.5 // *************************************************************************
2107     procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2108     const
2109     DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
2110     DEL_TITLE = '???ょ∈茯?';
2111     begin
2112     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2113     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2114     Exit;
2115     GikoSys.Setting.NameList.Clear;
2116 h677 1.41 ClearNameTextAllEditor
2117 h677 1.5 end;
2118     // *************************************************************************
2119 yoffy 1.9 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2120 h677 1.5 // *************************************************************************
2121     procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2122     const
2123     DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2124     DEL_TITLE = '???ょ∈茯?';
2125     begin
2126     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2127     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2128     Exit;
2129     GikoSys.Setting.MailList.Clear;
2130 h677 1.41 ClearMailAllEditor;
2131 h677 1.5 end;
2132     // *************************************************************************
2133 yoffy 1.9 //! ???潟??????腟?篋?????
2134 h677 1.5 // *************************************************************************
2135     procedure TGikoDM.ExitActionExecute(Sender: TObject);
2136     begin
2137     GikoForm.Close;
2138     end;
2139     // *************************************************************************
2140 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵???????
2141 h677 1.5 // *************************************************************************
2142     procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2143     begin
2144     ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2145     end;
2146     // *************************************************************************
2147 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵?????
2148 h677 1.5 // *************************************************************************
2149     procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2150     begin
2151     if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2152     ShowMessage('???<?ゃ?????阪?????障????');
2153     end else begin
2154     ShowMessage('???<?ゃ?????阪????け?????障????');
2155     end;
2156     end;
2157     // *************************************************************************
2158 h677 1.19 //! ?御???鴻???????????<?ゃ?????絖?????
2159 h677 1.5 // *************************************************************************
2160 h677 1.19 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2161 h677 1.5 var
2162     List: TList;
2163     i: Integer;
2164     html: TStringList;
2165     title: string;
2166     begin
2167     List := TList.Create;
2168     try
2169     GikoForm.ScreenCursor := crHourGlass;
2170     GikoForm.SelectListItem(List);
2171     if ((GikoSys.Setting.ListOrientation = gloVertical) and
2172     (GikoSys.Setting.ListHeightState = glsMax)) or
2173     ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2174     (GikoSys.Setting.ListWidthState = glsMax)) then
2175     ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2176     else if(List.Count = 0) then
2177     ShowMessage('?鴻?????????御?????????????')
2178     else begin
2179 h677 1.19 if dat then begin
2180     SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2181     SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2182     end else begin
2183     SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2184     SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2185     end;
2186 h677 1.5 for i := 0 to List.Count - 1 do begin
2187     if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2188 h677 1.19 if dat then begin
2189     SaveDialog.FileName := TThreadItem(List[i]).FileName;
2190     end else begin
2191     SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2192     end;
2193     if SaveDialog.Execute then begin
2194     if dat then begin
2195     CopyFile(PChar(TThreadItem(List[i]).FilePath),
2196     PChar(SaveDialog.FileName), true);
2197     end else begin
2198     html := TStringList.Create;
2199     title := TThreadItem(List[i]).Title;
2200     try
2201     HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2202     html.SaveToFile(SaveDialog.FileName);
2203     THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2204     finally
2205     html.Free;
2206     end;
2207 h677 1.5 end;
2208     end;
2209     end;
2210     end;
2211     end;
2212     finally
2213     GikoForm.ScreenCursor := crDefault;
2214     List.Free;
2215     end;
2216     end;
2217     // *************************************************************************
2218 h677 1.19 //! ?御???鴻????????HTML???????絖?
2219     // *************************************************************************
2220     procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2221     begin
2222     SelectThreadSaveToFile(false);
2223     end;
2224     // *************************************************************************
2225 yoffy 1.9 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2226 h677 1.5 // *************************************************************************
2227     procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2228     begin
2229 h677 1.19 SelectThreadSaveToFile(true);
2230 h677 1.5 end;
2231     // *************************************************************************
2232 yoffy 1.9 //! ?帥??????????篆?絖?
2233 h677 1.5 // *************************************************************************
2234     procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2235 h677 1.42 const
2236     Filename = 'tab.sav';
2237     bFilename = '~tab.sav';
2238     var
2239     SaveStringList: TStringList;
2240 h677 1.5 begin
2241 h677 1.42 SaveStringList := TStringList.Create;
2242     try
2243     GetTabURLs(SaveStringList);
2244     try
2245     if FileExists( GikoSys.GetAppDir + Filename) then begin
2246     CopyFile(PChar(GikoSys.GetAppDir + Filename),
2247     PChar(GikoSys.GetAppDir + bFilename), False);
2248     end;
2249     except
2250     end;
2251     SaveStringList.SaveToFile(GikoSys.GetAppDir + Filename);
2252     finally
2253     SaveStringList.Free;
2254     end;
2255 h677 1.5 end;
2256     // *************************************************************************
2257 h677 1.42 //! ???????吟?帥????┃絎????????????鴻????????RL??緇?
2258 h677 1.5 // *************************************************************************