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.77 - (hide annotations) (download) (as text)
Sun May 17 04:28:00 2009 UTC (14 years, 11 months ago) by h677
Branch: MAIN
CVS Tags: v1_61_0_796, v1_61_0_797, v1_61_0_795, v1_61_0_798, v1_60_1_793, v1_60_0_793, v1_60_0_792, v1_60_0_791, v1_60_2_794
Branch point for: Bb60
Changes since 1.76: +4 -4 lines
File MIME type: text/x-pascal
close #16779
リンク履歴の戻る/進むで、キー設定でshift/ctrlを設定するとうまく動作しない不具合の修正。
MoveToURLを利用しているが、もともとの使い方として、shift/ctrlが押されているときはブラウザで開く機能があり、
アクションのショートカットキーとかぶるため動作しないので、アクションから呼び出すときは、shift/ctrlを
無視するように修正した。

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