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