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.60 - (hide annotations) (download) (as text)
Sun Jul 29 03:40:06 2007 UTC (16 years, 8 months ago) by h677
Branch: MAIN
CVS Tags: v1_57_0_719, v1_57_0_718
Changes since 1.59: +5 -3 lines
File MIME type: text/x-pascal
起動時のタブ復元で左端のスクロール位置がトップに戻る不具合の修正の反映
外からdatファイルをD&Dできる機能を追加

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