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.36 - (hide annotations) (download) (as text)
Mon May 29 14:55:21 2006 UTC (17 years, 10 months ago) by h677
Branch: MAIN
CVS Tags: v1_52_1_658, v1_52_0_654, v1_52_1_657, v1_52_0_655, v1_52_0_656
Branch point for: Bb52
Changes since 1.35: +21 -4 lines
File MIME type: text/x-pascal
お気に入りキャビネットでの、コンテキストメニューの調整

1 h677 1.1 unit GikoDataModule;
2    
3     interface
4    
5     uses
6 h677 1.2 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 h677 1.6 {$IF Defined(DELPRO) }
8     SHDocVw,
9     MSHTML,
10     {$ELSE}
11     SHDocVw_TLB,
12     MSHTML_TLB,
13     {$IFEND}
14 h677 1.32 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs,
15     ActiveX;
16 h677 1.17
17     const
18     CAPTION_NAME: string = '???潟????';
19     USER_SETLINKBAR = WM_USER + 2003;
20    
21     ITEM_ICON_SORT1 = 12; //!< ?純?若???≪?ゃ?潟??/span>
22     ITEM_ICON_SORT2 = 13; //!< ?純?若???≪?ゃ?潟??/span>
23    
24     //???若?????若?≪?ゃ?潟??/span>
25     TOOL_ICON_HEIGHT_MAX = 16; //!< 蕭?????紊с?≪?ゃ?潟??/span>
26     TOOL_ICON_HEIGHT_MIN = 17; //!< 蕭?????絨?≪?ゃ?潟??/span>
27     TOOL_ICON_HEIGHT_NORMAL = 18; //!< 蕭???罔?羣??≪?ゃ?潟??/span>
28     TOOL_ICON_WIDTH_MAX = 19; //!< 綛???紊с?≪?ゃ?潟??/span>
29     TOOL_ICON_WIDTH_MIN = 20; //!< 綛???絨?≪?ゃ?潟??/span>
30     TOOL_ICON_WIDTH_NORMAL = 21; //!< 綛?罔?羣??≪?ゃ?潟??/span>
31    
32     TOOL_ICON_FAV_FOLDER = 30; //!< ??羂????ャ???????????≪?ゃ?潟??/span>
33     TOOL_ICON_FAV_BOARD = 31; //!< ??羂????ャ???帥?≪?ゃ?潟??/span>
34     TOOL_ICON_FAV_THREAD = 32; //!< ??羂????ャ???鴻???≪?ゃ?潟??/span>
35    
36     //! ???潟?????泣?ゃ????RL
37     URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
38     //! Monazilla?泣?ゃ????RL
39     URL_MONAZILLA: string = 'http://www.monazilla.org/';
40     //! 2?<??????????RL
41     URL_2ch: string = 'http://www.2ch.net/';
42     //! ???潟????Wiki??RL
43     URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
44    
45     SELECTCOMBOBOX_NAME: string = ''; // '?鴻??????腟?莨惹?膣?#39;;
46     SELECTCOMBOBOX_COLOR: TColor = clWindow;
47 h677 1.1
48 h677 1.11
49 h677 1.1 type
50     TGikoDM = class(TDataModule)
51 h677 1.6 GikoFormActionList: TActionList;
52     OnlyAHundredResAction: TAction;
53     OnlyKokoResAction: TAction;
54     LoginAction: TAction;
55     NewBoardAction: TAction;
56     LogDeleteAction: TAction;
57     KidokuAction: TAction;
58     StdToolBarVisibleAction: TAction;
59     AddressBarVisibleAction: TAction;
60     LinkBarVisibleAction: TAction;
61 h677 1.4 ListToolBarVisibleAction: TAction;
62 h677 1.6 SearchAction: TAction;
63     GikoNaviWebPageAction: TAction;
64     MonazillaWebPageAction: TAction;
65     BBS2chWebPageAction: TAction;
66     GikoFolderOpenAction: TAction;
67     AboutAction: TAction;
68     SelectTextClearAction: TAction;
69     NameTextClearAction: TAction;
70     MailTextClearAction: TAction;
71     ExitAction: TAction;
72     ListNameBarVisibleAction: TAction;
73     BrowserToolBarVisibleAction: TAction;
74     BrowserNameBarVisibleAction: TAction;
75     MsgBarVisibleAction: TAction;
76     MsgBarCloseAction: TAction;
77     StatusBarVisibleAction: TAction;
78     CabinetBBSAction: TAction;
79     CabinetHistoryAction: TAction;
80     OnlyNewResAction: TAction;
81 h677 1.4 CabinetFavoriteAction: TAction;
82 h677 1.6 CabinetVisibleAction: TAction;
83     ListNumberVisibleAction: TAction;
84     UpFolderAction: TAction;
85     CabinetCloseAction: TAction;
86     IconStyle: TAction;
87     LargeIconAction: TAction;
88     SmallIconAction: TAction;
89     ListIconAction: TAction;
90     DetailIconAction: TAction;
91     MidokuAction: TAction;
92     AllSelectAction: TAction;
93     AllItemAction: TAction;
94     LogItemAction: TAction;
95     NewItemAction: TAction;
96     ThreadRangeAction: TAction;
97     SelectItemAction: TAction;
98     StopAction: TAction;
99     OptionAction: TAction;
100     RoundAction: TAction;
101 h677 1.4 BrowserMaxAction: TAction;
102 h677 1.6 BrowserMinAction: TAction;
103     ScrollTopAction: TAction;
104     ScrollLastAction: TAction;
105     ScrollNewAction: TAction;
106     ScrollKokoAction: TAction;
107     EditorAction: TAction;
108     IEAction: TAction;
109     ShowThreadAction: TAction;
110     ShowBoardAction: TAction;
111     URLCopyAction: TAction;
112     NameCopyAction: TAction;
113     NameURLCopyAction: TAction;
114     ItemReloadAction: TAction;
115     ThreadEditorAction: TAction;
116     BoardIEAction: TAction;
117     SelectItemURLCopyAction: TAction;
118     SelectItemNameCopyAction: TAction;
119     SelectItemNameURLCopyAction: TAction;
120     SelectListReloadAction: TAction;
121 h677 1.4 SelectThreadReloadAction: TAction;
122 h677 1.6 BrowserTabCloseAction: TAction;
123     NotSelectTabCloseAction: TAction;
124     AllTabCloseAction: TAction;
125     KokomadeAction: TAction;
126     ZenbuAction: TAction;
127     KokoResAction: TAction;
128     TreeSelectBoradReload: TAction;
129     TreeSelectThreadReload: TAction;
130     TreeSelectURLCopy: TAction;
131     SelectReservAction: TAction;
132     SelectNewRoundName: TAction;
133     SelectDeleteRound: TAction;
134     KeySettingAction: TAction;
135     ArrangeAction: TAction;
136     ActiveLogDeleteAction: TAction;
137     TreeSelectNameURLCopy: TAction;
138     PaneInitAction: TAction;
139     LeftmostTabSelectAction: TAction;
140     LeftTabSelectAction: TAction;
141 h677 1.4 RightTabSelectAction: TAction;
142 h677 1.6 RightmostTabSelectAction: TAction;
143     FavoriteAddAction: TAction;
144     BoardFavoriteAddAction: TAction;
145     ThreadFavoriteAddAction: TAction;
146     TreeSelectFavoriteAddAction: TAction;
147     FavoriteArrangeAction: TAction;
148     MoveToAction: TAction;
149     BrowserTabVisibleAction: TAction;
150     BrowserTabTopAction: TAction;
151     BrowserTabBottomAction: TAction;
152     BrowserTabTabStyleAction: TAction;
153     BrowserTabButtonStyleAction: TAction;
154     BrowserTabFlatStyleAction: TAction;
155     GikoHelpAction: TAction;
156     KotehanAction: TAction;
157     ToolBarSettingAction: TAction;
158     SelectResAction: TAction;
159     AllResAction: TAction;
160     EditNGAction: TAction;
161 h677 1.4 ReloadAction: TAction;
162 h677 1.6 GoFowardAction: TAction;
163     GoBackAction: TAction;
164     TreeSelectSearchBoardName: TAction;
165     FavoriteTreeViewRenameAction: TAction;
166     FavoriteTreeViewNewFolderAction: TAction;
167     FavoriteTreeViewDeleteAction: TAction;
168     FavoriteTreeViewBrowseFolderAction: TAction;
169     FavoriteTreeViewReloadAction: TAction;
170     FavoriteTreeViewURLCopyAction: TAction;
171     FavoriteTreeViewNameCopyAction: TAction;
172     FavoriteTreeViewNameURLCopyAction: TAction;
173     FavoriteTreeViewLogDeleteAction: TAction;
174     ResRangeAction: TAction;
175     ExportFavoriteFile: TFileSaveAs;
176     FavoriteTreeViewBrowseBoardAction: TAction;
177     FavoriteTreeViewBrowseThreadAction: TAction;
178     UpBoardAction: TAction;
179     KoreCopy: TAction;
180     TreeSelectNameCopy: TAction;
181 h677 1.4 SetFocusForBrowserAction: TAction;
182 h677 1.6 SetFocusForThreadListAction: TAction;
183     SetFocusForCabinetAction: TAction;
184     FileRun1: TFileRun;
185     ThreadlistMaxAndFocusAction: TAction;
186     BrowserMaxAndFocusAction: TAction;
187     SelectItemSaveForHTML: TAction;
188     SelectItemSaveForDat: TAction;
189     LogFolderOpenAction: TAction;
190     TabsSaveAction: TAction;
191     TabsOpenAction: TAction;
192     BrowsBoradHeadAction: TAction;
193     TabAutoSaveAction: TAction;
194     TabAutoLoadAction: TAction;
195     JumpToNumOfResAction: TAction;
196     FavoriteTreeViewCollapseAction: TAction;
197     RightTabCloseAction: TAction;
198     LeftTabCloseAction: TAction;
199     SameIDResAnchorAction: TAction;
200 h677 1.4 IndividualAbon1Action: TAction;
201 h677 1.6 IndividualAbon0Action: TAction;
202     AntiIndividualAbonAction: TAction;
203     AntiIndividualAbonDlgAction: TAction;
204     IndividualAbonID1Action: TAction;
205     IndividualAbonID0Action: TAction;
206     MuteAction: TAction;
207     SortActiveColumnAction: TAction;
208     SortNextColumnAction: TAction;
209     SortPrevColumnAction: TAction;
210     BeLogInOutAction: TAction;
211     UnSelectedListViewAction: TAction;
212     WikiFAQWebPageAction: TAction;
213     ToobarImageList: TImageList;
214 h677 1.19 SaveDialog: TSaveDialog;
215 h677 1.25 ThreadSizeCalcForFileAction: TAction;
216 h677 1.31 SetInputAssistAction: TAction;
217 h677 1.32 OpenFindDialogAction: TAction;
218 h677 1.35 ArchiveItemAction: TAction;
219     LiveItemAction: TAction;
220 h677 1.36 FavoriteTreeViewItemNameCopyAction: TAction;
221 h677 1.6 procedure EditNGActionExecute(Sender: TObject);
222     procedure ReloadActionExecute(Sender: TObject);
223     procedure GoFowardActionExecute(Sender: TObject);
224     procedure GoBackActionExecute(Sender: TObject);
225     procedure MoveToActionExecute(Sender: TObject);
226     procedure FavoriteAddActionExecute(Sender: TObject);
227 h677 1.4 procedure FavoriteArrangeActionExecute(Sender: TObject);
228 h677 1.6 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
229     procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
230     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
231     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
232     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
233     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
234     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
235     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
236     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
237     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
238     procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
239     procedure OnlyAHundredResActionExecute(Sender: TObject);
240     procedure OnlyKokoResActionExecute(Sender: TObject);
241     procedure OnlyNewResActionExecute(Sender: TObject);
242     procedure BrowserMaxActionExecute(Sender: TObject);
243     procedure BrowserMinActionExecute(Sender: TObject);
244     procedure ScrollTopActionExecute(Sender: TObject);
245     procedure ScrollLastActionExecute(Sender: TObject);
246     procedure ScrollNewActionExecute(Sender: TObject);
247 h677 1.4 procedure ScrollKokoActionExecute(Sender: TObject);
248 h677 1.6 procedure ScrollKokoActionUpdate(Sender: TObject);
249     procedure EditorActionExecute(Sender: TObject);
250     procedure IEActionExecute(Sender: TObject);
251     procedure ShowThreadActionExecute(Sender: TObject);
252     procedure ShowBoardActionExecute(Sender: TObject);
253     procedure URLCopyActionExecute(Sender: TObject);
254     procedure NameCopyActionExecute(Sender: TObject);
255     procedure NameURLCopyActionExecute(Sender: TObject);
256     procedure ItemReloadActionExecute(Sender: TObject);
257     procedure BrowserTabCloseActionExecute(Sender: TObject);
258     procedure BrowserTabCloseActionUpdate(Sender: TObject);
259     procedure NotSelectTabCloseActionExecute(Sender: TObject);
260     procedure NotSelectTabCloseActionUpdate(Sender: TObject);
261     procedure AllTabCloseActionExecute(Sender: TObject);
262     procedure ActiveLogDeleteActionExecute(Sender: TObject);
263     procedure LeftmostTabSelectActionExecute(Sender: TObject);
264     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
265     procedure LeftTabSelectActionExecute(Sender: TObject);
266     procedure RightTabSelectActionExecute(Sender: TObject);
267 h677 1.4 procedure RightTabSelectActionUpdate(Sender: TObject);
268 h677 1.6 procedure RightmostTabSelectActionExecute(Sender: TObject);
269     procedure ThreadFavoriteAddActionExecute(Sender: TObject);
270     procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
271     procedure SelectResActionExecute(Sender: TObject);
272     procedure AllResActionExecute(Sender: TObject);
273     procedure ResRangeActionExecute(Sender: TObject);
274     procedure UpBoardActionExecute(Sender: TObject);
275     procedure JumpToNumOfResActionExecute(Sender: TObject);
276     procedure RightTabCloseActionExecute(Sender: TObject);
277     procedure RightTabCloseActionUpdate(Sender: TObject);
278     procedure LeftTabCloseActionExecute(Sender: TObject);
279     procedure DataModuleCreate(Sender: TObject);
280     procedure SearchActionExecute(Sender: TObject);
281     procedure OptionActionExecute(Sender: TObject);
282     procedure RoundActionExecute(Sender: TObject);
283     procedure KeySettingActionExecute(Sender: TObject);
284     procedure KotehanActionExecute(Sender: TObject);
285     procedure ToolBarSettingActionExecute(Sender: TObject);
286     procedure MuteActionExecute(Sender: TObject);
287     procedure TreeSelectBoradReloadExecute(Sender: TObject);
288     procedure TreeSelectThreadReloadExecute(Sender: TObject);
289     procedure TreeSelectURLCopyExecute(Sender: TObject);
290     procedure TreeSelectNameURLCopyExecute(Sender: TObject);
291     procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
292     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
293     procedure TreeSelectNameCopyExecute(Sender: TObject);
294     procedure LoginActionExecute(Sender: TObject);
295     procedure NewBoardActionExecute(Sender: TObject);
296     procedure LogDeleteActionExecute(Sender: TObject);
297     procedure LogDeleteActionUpdate(Sender: TObject);
298     procedure SelectTextClearActionExecute(Sender: TObject);
299     procedure NameTextClearActionExecute(Sender: TObject);
300     procedure MailTextClearActionExecute(Sender: TObject);
301     procedure ExitActionExecute(Sender: TObject);
302     procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
303     procedure ExportFavoriteFileAccept(Sender: TObject);
304     procedure SelectItemSaveForHTMLExecute(Sender: TObject);
305     procedure SelectItemSaveForDatExecute(Sender: TObject);
306     procedure TabsSaveActionExecute(Sender: TObject);
307     procedure TabsOpenActionExecute(Sender: TObject);
308     procedure TabAutoSaveActionExecute(Sender: TObject);
309     procedure TabAutoLoadActionExecute(Sender: TObject);
310     procedure BeLogInOutActionExecute(Sender: TObject);
311     procedure BeLogInOutActionUpdate(Sender: TObject);
312     procedure KokomadeActionExecute(Sender: TObject);
313     procedure ZenbuActionExecute(Sender: TObject);
314     procedure KokoResActionExecute(Sender: TObject);
315     procedure KoreCopyExecute(Sender: TObject);
316     procedure SameIDResAnchorActionExecute(Sender: TObject);
317     procedure IndividualAbon1ActionExecute(Sender: TObject);
318     procedure IndividualAbon0ActionExecute(Sender: TObject);
319     procedure AntiIndividualAbonActionExecute(Sender: TObject);
320     procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
321     procedure IndividualAbonID1ActionExecute(Sender: TObject);
322     procedure IndividualAbonID0ActionExecute(Sender: TObject);
323     procedure GikoNaviWebPageActionExecute(Sender: TObject);
324 h677 1.7 procedure MonazillaWebPageActionExecute(Sender: TObject);
325     procedure BBS2chWebPageActionExecute(Sender: TObject);
326     procedure GikoFolderOpenActionExecute(Sender: TObject);
327     procedure AboutActionExecute(Sender: TObject);
328     procedure GikoHelpActionExecute(Sender: TObject);
329     procedure WikiFAQWebPageActionExecute(Sender: TObject);
330     procedure ListNumberVisibleActionExecute(Sender: TObject);
331     procedure UpFolderActionExecute(Sender: TObject);
332     procedure UpFolderActionUpdate(Sender: TObject);
333     procedure IconStyleExecute(Sender: TObject);
334     procedure AllItemActionExecute(Sender: TObject);
335     procedure LogItemActionExecute(Sender: TObject);
336     procedure NewItemActionExecute(Sender: TObject);
337     procedure ThreadRangeActionExecute(Sender: TObject);
338     procedure SelectItemActionExecute(Sender: TObject);
339     procedure ThreadEditorActionExecute(Sender: TObject);
340     procedure BoardIEActionExecute(Sender: TObject);
341     procedure SelectItemURLCopyActionExecute(Sender: TObject);
342     procedure SelectItemURLCopyActionUpdate(Sender: TObject);
343     procedure SelectItemNameCopyActionExecute(Sender: TObject);
344     procedure SelectItemNameCopyActionUpdate(Sender: TObject);
345     procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
346     procedure SelectListReloadActionExecute(Sender: TObject);
347     procedure SelectListReloadActionUpdate(Sender: TObject);
348     procedure SelectThreadReloadActionExecute(Sender: TObject);
349     procedure SelectThreadReloadActionUpdate(Sender: TObject);
350     procedure SelectReservActionExecute(Sender: TObject);
351     procedure SelectReservActionUpdate(Sender: TObject);
352     procedure SelectNewRoundNameExecute(Sender: TObject);
353     procedure SelectDeleteRoundExecute(Sender: TObject);
354     procedure BoardFavoriteAddActionExecute(Sender: TObject);
355     procedure BoardFavoriteAddActionUpdate(Sender: TObject);
356     procedure LogFolderOpenActionExecute(Sender: TObject);
357     procedure LogFolderOpenActionUpdate(Sender: TObject);
358     procedure BrowsBoradHeadActionExecute(Sender: TObject);
359     procedure SortActiveColumnActionExecute(Sender: TObject);
360 h677 1.11 procedure SortNextColumnActionExecute(Sender: TObject);
361     procedure SortPrevColumnActionExecute(Sender: TObject);
362     procedure StdToolBarVisibleActionExecute(Sender: TObject);
363     procedure AddressBarVisibleActionExecute(Sender: TObject);
364     procedure LinkBarVisibleActionExecute(Sender: TObject);
365     procedure ListToolBarVisibleActionExecute(Sender: TObject);
366     procedure ListNameBarVisibleActionExecute(Sender: TObject);
367     procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
368     procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
369     procedure MsgBarVisibleActionExecute(Sender: TObject);
370     procedure MsgBarCloseActionExecute(Sender: TObject);
371     procedure StatusBarVisibleActionExecute(Sender: TObject);
372     procedure CabinetBBSActionExecute(Sender: TObject);
373     procedure CabinetHistoryActionExecute(Sender: TObject);
374     procedure CabinetFavoriteActionExecute(Sender: TObject);
375     procedure CabinetVisibleActionExecute(Sender: TObject);
376     procedure CabinetCloseActionExecute(Sender: TObject);
377     procedure LargeIconActionExecute(Sender: TObject);
378     procedure SmallIconActionExecute(Sender: TObject);
379     procedure ListIconActionExecute(Sender: TObject);
380     procedure DetailIconActionExecute(Sender: TObject);
381     procedure StopActionExecute(Sender: TObject);
382     procedure ArrangeActionExecute(Sender: TObject);
383     procedure PaneInitActionExecute(Sender: TObject);
384     procedure BrowserTabVisibleActionExecute(Sender: TObject);
385     procedure BrowserTabTopActionExecute(Sender: TObject);
386     procedure BrowserTabBottomActionExecute(Sender: TObject);
387     procedure BrowserTabTabStyleActionExecute(Sender: TObject);
388     procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
389     procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
390     procedure SetFocusForBrowserActionExecute(Sender: TObject);
391     procedure SetFocusForBrowserActionUpdate(Sender: TObject);
392     procedure SetFocusForThreadListActionExecute(Sender: TObject);
393     procedure SetFocusForCabinetActionExecute(Sender: TObject);
394     procedure SetFocusForCabinetActionUpdate(Sender: TObject);
395     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
396     procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
397     procedure UnSelectedListViewActionExecute(Sender: TObject);
398     procedure KidokuActionExecute(Sender: TObject);
399     procedure MidokuActionExecute(Sender: TObject);
400     procedure AllSelectActionExecute(Sender: TObject);
401     procedure AllSelectActionUpdate(Sender: TObject);
402 h677 1.25 procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
403 h677 1.31 procedure SetInputAssistActionExecute(Sender: TObject);
404 h677 1.32 procedure OpenFindDialogActionExecute(Sender: TObject);
405 h677 1.35 procedure ArchiveItemActionExecute(Sender: TObject);
406     procedure LiveItemActionExecute(Sender: TObject);
407 h677 1.36 procedure FavoriteTreeViewItemNameCopyActionExecute(Sender: TObject);
408 h677 1.1 private
409     { Private 絎h? }
410 h677 1.17 procedure ClearResFilter;
411     procedure SetResRange(range: Integer);
412 h677 1.18 procedure SetThreadAreaHorNormal;
413     procedure SetThreadAreaHorizontal(gls : TGikoListState);
414     procedure SetThreadAreaVerNormal;
415     procedure SetThreadAreaVertical(gls : TGikoListState);
416     procedure SetThreadReadProperty(read: Boolean);
417 h677 1.19 procedure SelectThreadSaveToFile(dat: Boolean);
418 h677 1.24 function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
419 h677 1.25 procedure RecalcThreadSize(limit : Integer);
420 h677 1.35 procedure ClearSelectComboBox;
421 h677 1.1 public
422     { Public 絎h? }
423 h677 1.23 procedure RepaintStatusBar;
424 h677 1.1 published
425     { Published 絎h? }
426 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
427 h677 1.1 procedure DependActiveCntentActionUpdate(Sender: TObject);
428 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
429 h677 1.2 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
430 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
431 h677 1.2 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
432 h677 1.1 end;
433    
434     var
435     GikoDM: TGikoDM;
436    
437 h677 1.11
438 h677 1.1 implementation
439    
440     uses
441 h677 1.19 Windows, Math, Clipbrd,
442 h677 1.3 Giko, GikoSystem, GikoUtil, BoardGroup,
443 h677 1.18 FavoriteArrange, Favorite, MojuUtils,
444 h677 1.4 Editor, ListSelect, Search, Option, Round,
445     KeySetting, Gesture, Kotehan, ToolBarSetting,
446 h677 1.6 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
447 h677 1.17 GikoBayesian, About, ShellAPI,
448 h677 1.8 RoundName, RoundData, Menus, ListViewUtils,
449 h677 1.31 ThreadControl, GikoMessage, InputAssist;
450 h677 1.1
451 h677 1.7
452 h677 1.1 {$R *.dfm}
453     // *************************************************************************
454 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
455 h677 1.2 // *************************************************************************
456     procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
457     begin
458     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
459     end;
460     // *************************************************************************
461 yoffy 1.9 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
462 h677 1.2 // *************************************************************************
463     procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
464     begin
465     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
466     and (GikoForm.GetActiveContent.IsLogFile);
467     end;
468     // *************************************************************************
469 yoffy 1.9 //! TAction??ctiveList??TBoard?ф???鴻??????
470 h677 1.2 // *************************************************************************
471     procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
472     begin
473     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
474     end;
475     // *************************************************************************
476 yoffy 1.9 //! NG???若??膩???
477 h677 1.1 // *************************************************************************
478     procedure TGikoDM.EditNGActionExecute(Sender: TObject);
479     begin
480     //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
481     GikoSys.FAbon.EditNGwords;
482     end;
483     // *************************************************************************
484 yoffy 1.9 //! NG???若??茯??粋昭?随???茯??粋昭?随?
485 h677 1.1 // *************************************************************************
486     procedure TGikoDM.ReloadActionExecute(Sender: TObject);
487     begin
488     //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
489     if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
490     MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
491     end else begin
492     //???????帥????????祉??荐??
493     GikoForm.RepaintAllTabsBrowser();
494     end;
495     end;
496     // *************************************************************************
497 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
498 h677 1.1 // *************************************************************************
499     procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
500     begin
501     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
502     if GikoSys.FAbon.GoBack =false then begin
503     MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
504     end else begin
505     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
506 h677 1.16 RepaintStatusBar;
507 h677 1.1 //???????帥????????祉??荐??
508     GikoForm.RepaintAllTabsBrowser();
509     end;
510     end;
511     // *************************************************************************
512 yoffy 1.9 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
513 h677 1.1 // *************************************************************************
514     procedure TGikoDM.GoBackActionExecute(Sender: TObject);
515     begin
516     //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
517     if GikoSys.FAbon.GoForward =false then begin
518     MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
519     end else begin
520 h677 1.16 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
521     RepaintStatusBar;
522     //???????帥????????祉??荐??
523 h677 1.1 GikoForm.RepaintAllTabsBrowser();
524     end;
525     end;
526     // *************************************************************************
527 h677 1.16 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
528     // *************************************************************************
529     procedure TGikoDM.RepaintStatusBar;
530     var
531     s : String;
532     begin
533     //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
534     s := GikoSys.FAbon.NGwordname;
535 h677 1.23 GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
536 h677 1.16 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
537 h677 1.23 GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
538     := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
539 h677 1.16 GikoForm.StatusBarResize(nil);
540     end;
541     // *************************************************************************
542 yoffy 1.9 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
543 h677 1.1 // *************************************************************************
544     procedure TGikoDM.MoveToActionExecute(Sender: TObject);
545     var
546     URL: string;
547     idx: Integer;
548     begin
549     //?≪?????鴻?潟?潟?????????鴻????URL????緇?
550     URL := Trim(GikoForm.AddressComboBox.Text);
551     //URL??Щ??
552     GikoForm.MoveToURL(URL);
553     //篁ヤ???絮ユ???????
554     idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
555     if idx = -1 then begin
556     GikoForm.AddressComboBox.Items.Insert(0, URL);
557     if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
558     GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
559     end else begin
560     GikoForm.AddressComboBox.Items.Delete(idx);
561     GikoForm.AddressComboBox.Items.Insert(0, URL);
562     end;
563     end;
564     // *************************************************************************
565 yoffy 1.9 //! ??羂????ャ????申?????ゃ?≪???違??????span>
566 h677 1.1 // *************************************************************************
567     procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
568     begin
569     GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
570     end;
571     // *************************************************************************
572 yoffy 1.9 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
573 h677 1.1 // *************************************************************************
574     procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
575     var
576     Dlg: TFavoriteArrangeDialog;
577     begin
578 h677 1.12 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
579 h677 1.1 try
580     Dlg.ShowModal;
581     finally
582     Dlg.Release;
583     end;
584     //???潟?????若???贋?違??篌?????
585     PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
586     end;
587     // *************************************************************************
588 yoffy 1.9 //! ?????若????????????
589 h677 1.1 // *************************************************************************
590     procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
591     var
592     node : TTreeNode;
593     begin
594     node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
595     try
596     //???若????膓???????????若????膰????????
597     while node <> nil do begin
598     if node.HasChildren then
599     node.Expanded := False;
600     node := node.GetNext;
601     end;
602     except
603     end;
604     end;
605 h677 1.2 // *************************************************************************
606 yoffy 1.9 //! ??羂????ャ??????????膩???????
607 h677 1.2 // *************************************************************************
608     procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
609     var
610     node : TTreeNode;
611     begin
612    
613     if GikoForm.ClickNode = nil then
614     Exit;
615     if GikoForm.ClickNode.IsFirstNode then
616     Exit;
617     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
618     Exit;
619     GikoForm.FavoriteTreeView.ReadOnly := False;
620     if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
621     node := GikoForm.ClickNode.Parent;
622     while node <> nil do begin
623     node.Expanded := True;
624     node := node.Parent;
625     end;
626     GikoForm.ClickNode.EditText;
627     end else begin
628     GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
629     end;
630 h677 1.22 //?贋?違????????????????
631     FavoriteDM.Modified := true;
632 h677 1.2 GikoForm.SetLinkBar;
633     end;
634     // *************************************************************************
635 yoffy 1.9 //! ?違?????羂????ャ??????????????篏???????
636 h677 1.2 // *************************************************************************
637     procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
638     var
639     NewFavFolder: TFavoriteFolder;
640     Node: TTreeNode;
641     begin
642    
643     if GikoForm.ClickNode = nil then
644     Exit;
645    
646     try
647     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
648     GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
649     GikoForm.ClickNode := GikoForm.ClickNode.Parent;
650     end;
651    
652     NewFavFolder := TFavoriteFolder.Create;
653     Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
654     Node.ImageIndex := 14;
655     Node.SelectedIndex := 14;
656     // FClickNode.Selected.Expanded := True;
657     GikoForm.FavoriteTreeView.Selected := Node;
658     GikoForm.ClickNode := Node;
659 h677 1.22 //?贋?違????????????????
660     FavoriteDM.Modified := true;
661 h677 1.2 FavoriteTreeViewRenameAction.Execute;
662     finally
663     end;
664    
665     end;
666     // *************************************************************************
667 yoffy 1.9 //! ??????羂????ャ???????ゃ????
668 h677 1.2 // *************************************************************************
669     procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
670     const
671     DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
672     DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
673     DEL_TITLE = '???ょ∈茯?';
674     begin
675    
676     if GikoForm.ClickNode = nil then
677     Exit;
678     if GikoForm.ClickNode.IsFirstNode then
679     Exit;
680     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
681     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
682     if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
683     Exit;
684     end else begin
685     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
686     Exit;
687     end;
688     end;
689    
690     GikoForm.ClickNode.Delete;
691 h677 1.22 //?贋?違????????????????
692     FavoriteDM.Modified := true;
693 h677 1.2
694     GikoForm.SetLinkBar;
695    
696     end;
697     // *************************************************************************
698 yoffy 1.9 //! ???????????????ャ?c????????羂????ャ????????????span>
699 h677 1.2 // *************************************************************************
700     procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
701     Sender: TObject);
702     begin
703     GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
704     end;
705     // *************************************************************************
706 yoffy 1.9 //! ?御??????????????羂????ャ?????????潟???若??????
707 h677 1.2 // *************************************************************************
708     procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
709     var
710     FavThread: TFavoriteThreadItem;
711     FavBoard: TFavoriteBoardItem;
712     shiftDown: Boolean;
713     begin
714 h677 1.29 if (GikoForm.ClickNode = nil) then Exit;
715 h677 1.2
716     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
717    
718 h677 1.29 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
719     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
720     if FavThread.Item <> nil then
721     GikoForm.DownloadContent(FavThread.Item, shiftDown);
722     end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
723     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
724     GikoForm.DownloadList(FavBoard.Item, shiftDown);
725 h677 1.2 end;
726    
727     end;
728     // *************************************************************************
729 h677 1.36 //! ?御??????????????羂????ャ????RL???潟???若????
730 h677 1.2 // *************************************************************************
731     procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(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 := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
738 h677 1.2 end;
739     end;
740     // *************************************************************************
741 h677 1.36 //! ?御??????????????羂????ャ???????????潟???若????
742 h677 1.2 // *************************************************************************
743     procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
744     begin
745    
746     if GikoForm.ClickNode = nil then Exit;
747    
748 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
749     Clipboard.AsText :=
750     TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
751 h677 1.36 end else begin
752     Clipboard.AsText :=
753     GikoForm.ClickNode.Text + #13#10;
754    
755 h677 1.2 end;
756     end;
757     // *************************************************************************
758 h677 1.36 //! ?御??????????????羂????ャ??????????RL???潟???若????
759 h677 1.2 // *************************************************************************
760     procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
761     Sender: TObject);
762     var
763 h677 1.16 favItem : TFavoriteItem;
764 h677 1.2 begin
765    
766     if GikoForm.ClickNode = nil then Exit;
767    
768 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
769     favItem := TFavoriteItem(GikoForm.ClickNode.Data);
770     Clipboard.AsText := favItem.GetItemTitle + #13#10 +
771     favItem.URL + #13#10;
772 h677 1.2 end;
773    
774     end;
775     // *************************************************************************
776 h677 1.36 //! ?御??????????????羂????ャ???鴻???????????ゃ????
777 h677 1.2 // *************************************************************************
778     procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
779     const
780     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
781     DEL_TITLE = '???ょ∈茯?';
782     var
783     ThreadItem: TThreadItem;
784     FavThread: TFavoriteThreadItem;
785     begin
786    
787     if GikoForm.ClickNode = nil then Exit;
788     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
789    
790     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
791     ThreadItem := FavThread.Item;
792    
793     try
794     if GikoSys.Setting.DeleteMsg then begin
795     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
796     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
797     Exit;
798     end;
799    
800     GikoForm.DeleteHistory(ThreadItem);
801     GikoForm.DeleteTab(ThreadItem);
802     ThreadItem.DeleteLogFile;
803    
804     GikoForm.ListView.Refresh;
805     finally
806     end;
807    
808     end;
809     // *************************************************************************
810 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
811 h677 1.2 // *************************************************************************
812     procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
813     Sender: TObject);
814     var
815     threadItem : TThreadItem;
816     begin
817    
818     if GikoForm.ClickNode = nil then Exit;
819    
820     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
821    
822     threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
823     if threadItem = nil then
824     Exit;
825     GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
826    
827     end;
828     end;
829 h677 1.17 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
830     procedure TGikoDM.ClearResFilter;
831     var
832     FilterList : TStringList;
833     begin
834     // ???c???炊??絖?????腥冴??????
835     FilterList := TStringList.Create;
836     try
837     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
838     GikoSys.FSelectResFilter.Reverse := False;
839     finally
840     FilterList.Free;
841     end;
842     GikoForm.SelectResWord := '';
843     end;
844     // *************************************************************************
845     //! ???鴻??;腓榊??蚊??荐??????
846     // *************************************************************************
847     procedure TGikoDM.SetResRange(range: Integer);
848     begin
849     if GikoSys.ResRange <> range then begin
850     GikoSys.ResRange := range;
851     // ???c???炊??絖?????腥冴??????
852     ClearResFilter;
853     GikoForm.RepaintAllTabsBrowser();
854     end;
855     end;
856 h677 1.3 // *************************************************************************
857 yoffy 1.9 //! ????00???鴻???粋;腓?/span>
858 h677 1.3 // *************************************************************************
859     procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
860     begin
861     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
862     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
863    
864     GikoForm.ResRangeMenuSelect := 100;
865     OnlyAHundredResAction.Checked := True;
866 h677 1.17 //??茵?ず膀??蚊??荐??????
867     SetResRange(100);
868 h677 1.3 end;
869     // *************************************************************************
870 yoffy 1.9 //! ??????鴻???粋;腓?/span>
871 h677 1.3 // *************************************************************************
872     procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
873     begin
874     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
875     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
876    
877     GikoForm.ResRangeMenuSelect := Ord( grrKoko );
878     OnlyKokoResAction.Checked := True;
879    
880 h677 1.17 //??茵?ず膀??蚊??荐??????
881     SetResRange(Ord( grrKoko ));
882 h677 1.3 end;
883     // *************************************************************************
884 yoffy 1.9 //! ?亥?????鴻???粋;腓?/span>
885 h677 1.3 // *************************************************************************
886     procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
887     begin
888     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
889     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
890    
891     GikoForm.ResRangeMenuSelect := Ord( grrNew );
892     OnlyNewResAction.Checked := True;
893    
894 h677 1.17 //??茵?ず膀??蚊??荐??????
895     SetResRange(Ord( grrNew ));
896 h677 1.3 end;
897     // *************************************************************************
898 h677 1.18 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
899     // *************************************************************************
900     procedure TGikoDM.SetThreadAreaHorNormal;
901     begin
902     //??絽梧;腓冴??????
903     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
904     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
905     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
906     GikoSys.Setting.ListWidthState := glsNormal;
907     end;
908     // *************************************************************************
909     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
910     // *************************************************************************
911     procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
912     begin
913     if GikoSys.Setting.ListWidthState = glsNormal then
914     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
915     //??紊ц;腓?/span>
916     if (gls = glsMax) then begin
917     GikoForm.ViewPanel.Width := 1;
918     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
919     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
920     GikoSys.Setting.ListWidthState := glsMax;
921     end else if (gls = glsMin) then begin
922     GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
923     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
924     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
925     GikoSys.Setting.ListWidthState := glsMin;
926     end;
927     end;
928     // *************************************************************************
929     //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
930     // *************************************************************************
931     procedure TGikoDM.SetThreadAreaVerNormal;
932     begin
933     //??絽梧;腓冴??????
934     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
935     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
936     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
937     GikoSys.Setting.ListHeightState := glsNormal;
938     end;
939     // *************************************************************************
940     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
941     // *************************************************************************
942     procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
943     begin
944     if GikoSys.Setting.ListHeightState = glsNormal then
945     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
946     if (gls = glsMin) then begin
947     GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
948     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
949     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
950     GikoSys.Setting.ListHeightState := glsMin;
951     end else if (gls = glsMax) then begin
952     GikoForm.ViewPanel.Height := 1;
953     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
954     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
955     GikoSys.Setting.ListHeightState := glsMax;
956     end;
957     end;
958     // *************************************************************************
959 yoffy 1.9 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
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     //??絽梧;腓冴??????
967 h677 1.18 SetThreadAreaHorNormal;
968 h677 1.3 end;
969     glsMin, glsNormal: begin
970     //??紊ц;腓冴??????
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     //??絽梧;腓冴??????
978 h677 1.18 SetThreadAreaVerNormal;
979 h677 1.3 end;
980     glsMin, glsNormal: begin
981     //??紊ц;腓冴??????
982 h677 1.18 SetThreadAreaVertical(glsMax);
983 h677 1.3 end;
984     end;
985     end;
986     end;
987     // *************************************************************************
988 yoffy 1.9 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
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     //??絨頫?ず??????
996 h677 1.18 SetThreadAreaHorizontal(glsMin);
997 h677 1.3 end;
998     glsMin: begin
999     //??絽梧;腓冴??????
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     //??絨頫?ず??????
1007 h677 1.18 SetThreadAreaVertical(glsMin);
1008 h677 1.3 end;
1009     glsMin: begin
1010     //??絽梧;腓冴??????
1011 h677 1.18 SetThreadAreaVerNormal;
1012 h677 1.3 end;
1013     end;
1014     end;
1015     end;
1016     // *************************************************************************
1017 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1018 h677 1.3 // *************************************************************************
1019     procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1020     begin
1021     GikoForm.BrowserMovement('top');
1022     end;
1023     // *************************************************************************
1024 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1025 h677 1.3 // *************************************************************************
1026     procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1027     begin
1028     GikoForm.BrowserMovement('bottom');
1029     end;
1030     // *************************************************************************
1031 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1032 h677 1.3 // *************************************************************************
1033     procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1034     begin
1035     GikoForm.BrowserMovement('new');
1036     end;
1037     // *************************************************************************
1038 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1039 h677 1.3 // *************************************************************************
1040     procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1041     begin
1042     GikoForm.BrowserMovement('koko');
1043     end;
1044     // *************************************************************************
1045 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
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 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
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 //! ?鴻???????????吟?ц;腓冴????
1070 h677 1.3 // *************************************************************************
1071     procedure TGikoDM.IEActionExecute(Sender: TObject);
1072     begin
1073     ShowThreadAction.Execute;
1074     end;
1075     // *************************************************************************
1076 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
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 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
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 //! ?上??;腓冴?????????鴻????????RL???潟???若????
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 //! ?上??;腓冴?????????鴻???????????潟???若????
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 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
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 //! 茵?ず???????????鴻?????????????潟???若??????
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 //! ?上?????????????帥??????????
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 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
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 //! ?上?????????????帥??篁ュ?????????
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 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
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 //! ???????帥??????????
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('???????帥???????????????????с????鐚?', 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 //! ?上?????????????帥?????鴻???????????ゃ????
1232 h677 1.3 // *************************************************************************
1233     procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1234     const
1235     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1236     DEL_TITLE = '???ょ∈茯?';
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 //! 筝???窪???帥?????御??????
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 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
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 //! 綏????帥?????御??????
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 //! ?潟???帥?????御??????
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 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
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 //! 筝???劻???帥?????御??????
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 //! ?御?????????????鴻??????????羂????ャ????申??
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 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
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 //! ???鴻????絎鴻??腟???莨若??
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 ?????莨若?粋В?ゃ?????靸?/span>
1356     ResRangeAction.Execute;
1357     end else begin
1358     GikoSys.ResRange := Ord( grrSelect );
1359    
1360     // ??緇???┃絎???????????荀?????????span>
1361     GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1362    
1363     // 罎?膣√吋罩眼???贋??/span>
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     // ???c???帥??┃絎?
1379     FilterList := TStringList.Create;
1380     try
1381     GikoSys.FSelectResFilter.Reverse := True;
1382     FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
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     // ???c?潟?祉??/span>
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 //! ?????????鴻??茵?ず????
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 //??茵?ず膀??蚊??荐??????
1413     SetResRange(Ord( grrAll ));
1414 h677 1.3 end;
1415     // *************************************************************************
1416 yoffy 1.9 //! ???鴻??;腓榊??蚊??荐??
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 //! ??絎???????垩?????鴻?????/span>
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('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', 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 //! ?≪?????c?????帥???????潟????????
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 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
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 //! ?≪?????c?????帥??????綏?????????
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 //! ???井?膣≪???ゃ?≪???違??茵?ず????
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 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
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 //! 綏≦?????ゃ?≪???違??茵?ず????
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     //?????????荐??????????????????????????c?????????
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??????????????????腟?莨若??omboBox????臀?/span>
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 //! ???ャ?若??
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 //! ?鴻??????筝?荀с???????潟???若??????
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 //! ?御?????????鴻?????????????潟???若??????
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 //! ?御?????????帥??RL???潟???若????
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 //! ?御?????????帥????????RL???潟???若????
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 //! ??羂????ャ????申??????
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 //! ?水??罎?膣?/span>
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 := '???????祉???障????鐚?';
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 := '罨<??????障????鐚?';
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 //! ?御?????????帥?????????潟???若????
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 //! ???違?ゃ?鰹????違?≪??????????
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     //???違?≪????
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     //??絽吾???違?ゃ??/span>
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, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, 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 := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1857     + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1858     + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1859     if MsgBox(GikoForm.Handle, msg, '茘???', 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??絎括??七?吟???違?ゃ??/span>
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, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, 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 //! ???若???贋?違???ゃ?≪???違??茵?ず????
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 := '???鴻?????c?帥???????????????????';
1906     MsgBox(GikoForm.Handle, Msg, '??????#39;, 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 //! ?御?????????????鴻???????????ゃ????
1918 h677 1.5 // *************************************************************************
1919     procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1920     const
1921     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1922     DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1923     DEL_TITLE = '???ょ∈茯?';
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 ??;腓冴???贋??/span>
1961     end;
1962     GikoForm.ListView.Refresh;
1963     finally
1964     List.Free;
1965     end;
1966     end;
1967     // *************************************************************************
1968 yoffy 1.9 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
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 //! 腟?莨若?水吋罩眼??羔??祉????
1977 h677 1.5 // *************************************************************************
1978     procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1979     const
1980     DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1981     DEL_TITLE = '???ょ∈茯?';
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 //! ???鴻?????c?帥??????絮ユ???羔??祉????
1993 h677 1.5 // *************************************************************************
1994     procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1995     const
1996     DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
1997     DEL_TITLE = '???ょ∈茯?';
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 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2007 h677 1.5 // *************************************************************************
2008     procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2009     const
2010     DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2011     DEL_TITLE = '???ょ∈茯?';
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 //! ???潟??????腟?篋?????
2021 h677 1.5 // *************************************************************************
2022     procedure TGikoDM.ExitActionExecute(Sender: TObject);
2023     begin
2024     GikoForm.Close;
2025     end;
2026     // *************************************************************************
2027 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵???????
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 //! ??羂????ャ?????????鴻???若????絎?茵?????
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 //! ?御???鴻???????????<?ゃ?????絖?????
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 := '?御???鴻????????dat???障?鞘?絖?';
2068     SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2069     end else begin
2070     SaveDialog.Title := '?御???鴻????????HTML???????絖?';
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 //! ?御???鴻????????HTML???????絖?
2106     // *************************************************************************
2107     procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2108     begin
2109     SelectThreadSaveToFile(false);
2110     end;
2111     // *************************************************************************
2112 yoffy 1.9 //! ?御???鴻????????DAT綵√????障?鞘?絖?
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 //! ?帥??????????篆?絖?
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('篆?絖??????帥?????????障????')
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 //! ?帥??????????緇???
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('茵?ず?????帥?????????障??????');
2139     end;
2140     end;
2141     end;
2142     // *************************************************************************
2143 yoffy 1.9 //! ?帥??????????????篆?絖?
2144 h677 1.5 // *************************************************************************
2145     procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2146     begin
2147     GikoForm.SaveTabURLs;
2148     end;
2149     // *************************************************************************
2150 yoffy 1.9 //! ?帥??????????????緇???
2151 h677 1.5 // *************************************************************************
2152     procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2153     begin
2154     GikoForm.LoadTabURLs;
2155     end;
2156     // *************************************************************************
2157 yoffy 1.9 //! Be2ch?????違?ゃ?????違?≪????????
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?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
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 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
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 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2211     //Application.ProcessMessages;
2212     end;
2213     // *************************************************************************
2214 yoffy 1.9 //! ?潟?潟??????/span>
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 //! ?御?????????鴻???潟???若????
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 //! ?御?????????鴻???潟???若????
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??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2259     'ID???????≪????茘???',
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 //! ???????鴻???若??????鐚???絽醐?
2268 h677 1.6 // *************************************************************************
2269     procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2270     begin
2271     GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2272     end;
2273     // *************************************************************************
2274 yoffy 1.9 //! ???????鴻???若??????鐚?????
2275 h677 1.6 // *************************************************************************