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.79 - (hide annotations) (download) (as text)
Tue Feb 22 13:37:51 2011 UTC (13 years, 1 month ago) by h677
Branch: MAIN
CVS Tags: v1_62_0_812, v1_63_0_818, v1_63_0_817, v1_63_0_816, v1_63_0_815, v1_62_0_809, v1_62_0_810, v1_62_0_811, v1_62_1_813
Branch point for: Bb62
Changes since 1.78: +34 -14 lines
File MIME type: text/x-pascal
Beのログインに対応
Folder.iniに冒険の書が記録されている場合削除する処理を追加

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