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.46 - (hide annotations) (download) (as text)
Mon Aug 7 16:50:15 2006 UTC (17 years, 8 months ago) by h677
Branch: MAIN
CVS Tags: v1_54_0_676, v1_54_0_675
Changes since 1.45: +46 -5 lines
File MIME type: text/x-pascal
ブラウザタブの移動(?)でループを許可するオプション追加

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