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.57 - (hide annotations) (download) (as text)
Sat Apr 14 16:52:57 2007 UTC (17 years ago) by h677
Branch: MAIN
CVS Tags: v1_56_0_705, v1_56_0_704, v1_56_0_703, v1_56_0_702, v1_56_0_701, v1_56_0_700, v1_56_0_699, v1_56_0_698
Branch point for: bRESPOPUP
Changes since 1.56: +105 -14 lines
File MIME type: text/x-pascal
ブラウザのページUp/Downアクションの追加
イメージ以外のリンクURLを取得するアクションを追加

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