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.54 - (hide annotations) (download) (as text)
Wed Feb 14 15:12:06 2007 UTC (17 years, 2 months ago) by h677
Branch: MAIN
CVS Tags: v1_55_0_696, v1_55_0_694, v1_55_0_695
Changes since 1.53: +1 -14 lines
File MIME type: text/x-pascal
新NGワードの試みを終了。

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