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.30 - (hide annotations) (download) (as text)
Wed Jan 4 04:41:39 2006 UTC (18 years, 3 months ago) by h677
Branch: MAIN
Changes since 1.29: +1 -3 lines
File MIME type: text/x-pascal
Bb51、ォ、鬢ホ・゙。シ・ク

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