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