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