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.21 - (hide annotations) (download) (as text)
Mon Dec 12 14:12:56 2005 UTC (18 years, 4 months ago) by h677
Branch: MAIN
Changes since 1.20: +4 -4 lines
File MIME type: text/x-pascal
2ちゃん語を独立したクラスにした

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    
614     GikoForm.SetLinkBar;
615     end;
616     // *************************************************************************
617 yoffy 1.9 //! ?違?????羂????ャ??????????????篏???????
618 h677 1.2 // *************************************************************************
619     procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
620     var
621     NewFavFolder: TFavoriteFolder;
622     Node: TTreeNode;
623     begin
624    
625     if GikoForm.ClickNode = nil then
626     Exit;
627    
628     try
629     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
630     GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
631     GikoForm.ClickNode := GikoForm.ClickNode.Parent;
632     end;
633    
634     NewFavFolder := TFavoriteFolder.Create;
635     Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
636     Node.ImageIndex := 14;
637     Node.SelectedIndex := 14;
638     // FClickNode.Selected.Expanded := True;
639     GikoForm.FavoriteTreeView.Selected := Node;
640     GikoForm.ClickNode := Node;
641     FavoriteTreeViewRenameAction.Execute;
642     finally
643     end;
644    
645     end;
646     // *************************************************************************
647 yoffy 1.9 //! ??????羂????ャ???????ゃ????
648 h677 1.2 // *************************************************************************
649     procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
650     const
651     DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
652     DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
653     DEL_TITLE = '???ょ∈茯?';
654     begin
655    
656     if GikoForm.ClickNode = nil then
657     Exit;
658     if GikoForm.ClickNode.IsFirstNode then
659     Exit;
660     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
661     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
662     if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
663     Exit;
664     end else begin
665     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
666     Exit;
667     end;
668     end;
669    
670     GikoForm.ClickNode.Delete;
671    
672     GikoForm.SetLinkBar;
673    
674     end;
675     // *************************************************************************
676 yoffy 1.9 //! ???????????????ャ?c????????羂????ャ????????????span>
677 h677 1.2 // *************************************************************************
678     procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
679     Sender: TObject);
680     begin
681     GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
682     end;
683     // *************************************************************************
684 yoffy 1.9 //! ?御??????????????羂????ャ?????????潟???若??????
685 h677 1.2 // *************************************************************************
686     procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
687     var
688     ThreadItem: TThreadItem;
689     FavThread: TFavoriteThreadItem;
690     Board: TBoard;
691     FavBoard: TFavoriteBoardItem;
692     shiftDown: Boolean;
693     begin
694    
695     if GikoForm.ClickNode = nil then Exit;
696    
697     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
698    
699     if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
700     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
701     ThreadItem := FavThread.Item;
702     if ThreadItem <> nil then
703     GikoForm.DownloadContent(ThreadItem, shiftDown);
704     end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
705     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
706     Board := FavBoard.Item;
707     GikoForm.DownloadList(Board, shiftDown);
708     end;
709    
710     end;
711     // *************************************************************************
712 yoffy 1.9 //! ?御?????????????鴻????????RL???潟???若????
713 h677 1.2 // *************************************************************************
714     procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
715     begin
716    
717     if GikoForm.ClickNode = nil then Exit;
718    
719 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
720     Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
721 h677 1.2 end;
722     end;
723     // *************************************************************************
724 yoffy 1.9 //! ?御?????????????帥?????????潟???若????
725 h677 1.2 // *************************************************************************
726     procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
727     begin
728    
729     if GikoForm.ClickNode = nil then Exit;
730    
731 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
732     Clipboard.AsText :=
733     TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
734 h677 1.2 end;
735     end;
736     // *************************************************************************
737 yoffy 1.9 //! ?御?????????????鴻??????????????RL???潟???若????
738 h677 1.2 // *************************************************************************
739     procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
740     Sender: TObject);
741     var
742 h677 1.16 favItem : TFavoriteItem;
743 h677 1.2 begin
744    
745     if GikoForm.ClickNode = nil then Exit;
746    
747 h677 1.16 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
748     favItem := TFavoriteItem(GikoForm.ClickNode.Data);
749     Clipboard.AsText := favItem.GetItemTitle + #13#10 +
750     favItem.URL + #13#10;
751 h677 1.2 end;
752    
753     end;
754     // *************************************************************************
755 yoffy 1.9 //! ?御?????????????鴻???????????ゃ????
756 h677 1.2 // *************************************************************************
757     procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
758     const
759     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
760     DEL_TITLE = '???ょ∈茯?';
761     var
762     ThreadItem: TThreadItem;
763     FavThread: TFavoriteThreadItem;
764     begin
765    
766     if GikoForm.ClickNode = nil then Exit;
767     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
768    
769     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
770     ThreadItem := FavThread.Item;
771    
772     try
773     if GikoSys.Setting.DeleteMsg then begin
774     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
775     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
776     Exit;
777     end;
778    
779     GikoForm.DeleteHistory(ThreadItem);
780     GikoForm.DeleteTab(ThreadItem);
781     ThreadItem.DeleteLogFile;
782    
783     GikoForm.ListView.Refresh;
784     finally
785     end;
786    
787     end;
788     // *************************************************************************
789 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
790 h677 1.2 // *************************************************************************
791     procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
792     Sender: TObject);
793     var
794     threadItem : TThreadItem;
795     begin
796    
797     if GikoForm.ClickNode = nil then Exit;
798    
799     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
800    
801     threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
802     if threadItem = nil then
803     Exit;
804     GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
805    
806     end;
807     end;
808 h677 1.17 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
809     procedure TGikoDM.ClearResFilter;
810     var
811     FilterList : TStringList;
812     begin
813     // ???c???炊??絖?????腥冴??????
814     FilterList := TStringList.Create;
815     try
816     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
817     GikoSys.FSelectResFilter.Reverse := False;
818     finally
819     FilterList.Free;
820     end;
821     GikoForm.SelectResWord := '';
822     end;
823     // *************************************************************************
824     //! ???鴻??;腓榊??蚊??荐??????
825     // *************************************************************************
826     procedure TGikoDM.SetResRange(range: Integer);
827     begin
828     if GikoSys.ResRange <> range then begin
829     GikoSys.ResRange := range;
830     // ???c???炊??絖?????腥冴??????
831     ClearResFilter;
832     GikoForm.RepaintAllTabsBrowser();
833     end;
834     end;
835 h677 1.3 // *************************************************************************
836 yoffy 1.9 //! ????00???鴻???粋;腓?/span>
837 h677 1.3 // *************************************************************************
838     procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
839     begin
840     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
841     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
842    
843     GikoForm.ResRangeMenuSelect := 100;
844     OnlyAHundredResAction.Checked := True;
845 h677 1.17 //??茵?ず膀??蚊??荐??????
846     SetResRange(100);
847 h677 1.3 end;
848     // *************************************************************************
849 yoffy 1.9 //! ??????鴻???粋;腓?/span>
850 h677 1.3 // *************************************************************************
851     procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
852     begin
853     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
854     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
855    
856     GikoForm.ResRangeMenuSelect := Ord( grrKoko );
857     OnlyKokoResAction.Checked := True;
858    
859 h677 1.17 //??茵?ず膀??蚊??荐??????
860     SetResRange(Ord( grrKoko ));
861 h677 1.3 end;
862     // *************************************************************************
863 yoffy 1.9 //! ?亥?????鴻???粋;腓?/span>
864 h677 1.3 // *************************************************************************
865     procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
866     begin
867     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
868     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
869    
870     GikoForm.ResRangeMenuSelect := Ord( grrNew );
871     OnlyNewResAction.Checked := True;
872    
873 h677 1.17 //??茵?ず膀??蚊??荐??????
874     SetResRange(Ord( grrNew ));
875 h677 1.3 end;
876     // *************************************************************************
877 h677 1.18 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
878     // *************************************************************************
879     procedure TGikoDM.SetThreadAreaHorNormal;
880     begin
881     //??絽梧;腓冴??????
882     if GikoForm.ActiveContent <> nil then
883     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
884     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
885     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
886     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
887     GikoSys.Setting.ListWidthState := glsNormal;
888     if GikoForm.ActiveContent <> nil then
889     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
890     end;
891     // *************************************************************************
892     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
893     // *************************************************************************
894     procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
895     begin
896     if GikoForm.ActiveContent <> nil then
897     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
898     if GikoSys.Setting.ListWidthState = glsNormal then
899     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
900     //??紊ц;腓?/span>
901     if (gls = glsMax) then begin
902     GikoForm.ViewPanel.Width := 1;
903     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
904     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
905     GikoSys.Setting.ListWidthState := glsMax;
906     end else if (gls = glsMin) then begin
907     GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
908     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
909     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
910     GikoSys.Setting.ListWidthState := glsMin;
911     end;
912     if GikoForm.ActiveContent <> nil then
913     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
914     end;
915     // *************************************************************************
916     //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
917     // *************************************************************************
918     procedure TGikoDM.SetThreadAreaVerNormal;
919     begin
920     //??絽梧;腓冴??????
921     if GikoForm.ActiveContent <> nil then
922     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
923     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
924     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
925     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
926     GikoSys.Setting.ListHeightState := glsNormal;
927     if GikoForm.ActiveContent <> nil then
928     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
929     end;
930     // *************************************************************************
931     //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
932     // *************************************************************************
933     procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
934     begin
935     if GikoForm.ActiveContent <> nil then
936     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
937     if GikoSys.Setting.ListHeightState = glsNormal then
938     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
939     if (gls = glsMin) then begin
940     GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
941     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
942     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
943     GikoSys.Setting.ListHeightState := glsMin;
944     end else if (gls = glsMax) then begin
945     GikoForm.ViewPanel.Height := 1;
946     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
947     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
948     GikoSys.Setting.ListHeightState := glsMax;
949     end;
950     if GikoForm.ActiveContent <> nil then
951     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
952     end;
953     // *************************************************************************
954 yoffy 1.9 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
955 h677 1.3 // *************************************************************************
956     procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
957     begin
958     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
959     case GikoSys.Setting.ListWidthState of
960     glsMax: begin
961     //??絽梧;腓冴??????
962 h677 1.18 SetThreadAreaHorNormal;
963 h677 1.3 end;
964     glsMin, glsNormal: begin
965     //??紊ц;腓冴??????
966 h677 1.18 SetThreadAreaHorizontal(glsMax);
967 h677 1.3 end;
968     end;
969     end else begin
970     case GikoSys.Setting.ListHeightState of
971     glsMax: begin
972     //??絽梧;腓冴??????
973 h677 1.18 SetThreadAreaVerNormal;
974 h677 1.3 end;
975     glsMin, glsNormal: begin
976     //??紊ц;腓冴??????
977 h677 1.18 SetThreadAreaVertical(glsMax);
978 h677 1.3 end;
979     end;
980     end;
981     end;
982     // *************************************************************************
983 yoffy 1.9 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
984 h677 1.3 // *************************************************************************
985     procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
986     begin
987     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
988     case GikoSys.Setting.ListWidthState of
989     glsMax, glsNormal: begin
990     //??絨頫?ず??????
991 h677 1.18 SetThreadAreaHorizontal(glsMin);
992 h677 1.3 end;
993     glsMin: begin
994     //??絽梧;腓冴??????
995 h677 1.18 SetThreadAreaHorNormal;
996 h677 1.3 end;
997     end;
998     end else begin
999     case GikoSys.Setting.ListHeightState of
1000     glsMax, glsNormal: begin
1001     //??絨頫?ず??????
1002 h677 1.18 SetThreadAreaVertical(glsMin);
1003 h677 1.3 end;
1004     glsMin: begin
1005     //??絽梧;腓冴??????
1006 h677 1.18 SetThreadAreaVerNormal;
1007 h677 1.3 end;
1008     end;
1009     end;
1010     end;
1011     // *************************************************************************
1012 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1013 h677 1.3 // *************************************************************************
1014     procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1015     begin
1016     GikoForm.BrowserMovement('top');
1017     end;
1018     // *************************************************************************
1019 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1020 h677 1.3 // *************************************************************************
1021     procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1022     begin
1023     GikoForm.BrowserMovement('bottom');
1024     end;
1025     // *************************************************************************
1026 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1027 h677 1.3 // *************************************************************************
1028     procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1029     begin
1030     GikoForm.BrowserMovement('new');
1031     end;
1032     // *************************************************************************
1033 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1034 h677 1.3 // *************************************************************************
1035     procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1036     begin
1037     GikoForm.BrowserMovement('koko');
1038     end;
1039     // *************************************************************************
1040 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1041 h677 1.3 // *************************************************************************
1042     procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1043     begin
1044     ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1045     and (GikoForm.GetActiveContent.IsLogFile)
1046     and (GikoForm.GetActiveContent.Kokomade <> -1);
1047     end;
1048     // *************************************************************************
1049 yoffy 1.9 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1050 h677 1.3 // *************************************************************************
1051     procedure TGikoDM.EditorActionExecute(Sender: TObject);
1052     var
1053     Editor: TEditorForm;
1054     Item: TThreadItem;
1055     begin
1056     Item := GikoForm.GetActiveContent;
1057     if Item = nil then Exit;
1058     Editor := TEditorForm.Create(GikoForm.GetMainForm);
1059     Editor.SetThreadItem(Item);
1060 h677 1.20 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
1061 h677 1.3 Editor.Show;
1062     Editor.BodyEdit.SetFocus;
1063     end;
1064     // *************************************************************************
1065 yoffy 1.9 //! ?鴻???????????吟?ц;腓冴????
1066 h677 1.3 // *************************************************************************
1067     procedure TGikoDM.IEActionExecute(Sender: TObject);
1068     begin
1069     ShowThreadAction.Execute;
1070     end;
1071     // *************************************************************************
1072 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1073 h677 1.3 // *************************************************************************
1074     procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1075     var
1076     ThreadItem: TThreadItem;
1077     begin
1078     ThreadItem := GikoForm.GetActiveContent;
1079     if ThreadItem = nil then Exit;
1080     GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1081     end;
1082     // *************************************************************************
1083 yoffy 1.9 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1084 h677 1.3 // *************************************************************************
1085     procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1086     var
1087     ThreadItem: TThreadItem;
1088     begin
1089     ThreadItem := GikoForm.GetActiveContent;
1090     if ThreadItem = nil then Exit;
1091     GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1092     end;
1093     // *************************************************************************
1094 yoffy 1.9 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1095 h677 1.3 // *************************************************************************
1096     procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1097     var
1098     s: string;
1099     begin
1100     s := '';
1101     if TObject(GikoForm.GetActiveContent) is TBoard then
1102     s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1103     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1104     s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1105     if s <> '' then
1106     Clipboard.AsText := s;
1107     end;
1108     // *************************************************************************
1109 yoffy 1.9 //! ?上??;腓冴?????????鴻???????????潟???若????
1110 h677 1.3 // *************************************************************************
1111     procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1112     var
1113     s: string;
1114     begin
1115     s := '';
1116     if TObject(GikoForm.GetActiveContent) is TBoard then
1117     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1118     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1119     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1120     if s <> '' then
1121     Clipboard.AsText := s;
1122     end;
1123     // *************************************************************************
1124 yoffy 1.9 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1125 h677 1.3 // *************************************************************************
1126     procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1127     var
1128     s: string;
1129     begin
1130     s := '';
1131     if TObject(GikoForm.GetActiveContent) is TBoard then
1132     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1133     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1134     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1135     if s <> '' then
1136     Clipboard.AsText := s;
1137     end;
1138     // *************************************************************************
1139 yoffy 1.9 //! 茵?ず???????????鴻?????????????潟???若??????
1140 h677 1.3 // *************************************************************************
1141     procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1142     var
1143     ThreadItem: TThreadItem;
1144     shiftDown: Boolean;
1145     begin
1146     ThreadItem := GikoForm.GetActiveContent;
1147     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1148     if ThreadItem <> nil then
1149     GikoForm.DownloadContent(ThreadItem, shiftDown);
1150     end;
1151     // *************************************************************************
1152 yoffy 1.9 //! ?上?????????????帥??????????
1153 h677 1.3 // *************************************************************************
1154     procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1155     var
1156     idx: Integer;
1157     begin
1158     idx := GikoForm.BrowserTab.TabIndex;
1159     if idx <> -1 then begin
1160     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1161     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1162     end;
1163     end;
1164     end;
1165     // *************************************************************************
1166 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1167 h677 1.3 // *************************************************************************
1168     procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1169     begin
1170     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1171     end;
1172     // *************************************************************************
1173 yoffy 1.9 //! ?上?????????????帥??篁ュ?????????
1174 h677 1.3 // *************************************************************************
1175     procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1176     var
1177     i: Integer;
1178     idx: Integer;
1179     begin
1180     idx := GikoForm.BrowserTab.TabIndex;
1181     if idx = -1 then Exit;
1182     GikoForm.BrowserTab.Tabs.BeginUpdate;
1183     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1184     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1185     GikoForm.BrowserTab.Tabs.Delete(i);
1186     end;
1187     if idx > 0 then begin
1188     for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1189     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1190     GikoForm.BrowserTab.Tabs.Delete(i);
1191     end;
1192     end;
1193     GikoForm.BrowserTab.Tabs.EndUpdate;
1194     end;
1195     // *************************************************************************
1196 yoffy 1.9 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1197 h677 1.3 // *************************************************************************
1198     procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1199     begin
1200     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1201     end;
1202     // *************************************************************************
1203 yoffy 1.9 //! ???????帥??????????
1204 h677 1.3 // *************************************************************************
1205     procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1206     var
1207     i: Integer;
1208     begin
1209     if GikoSys.Setting.ShowDialogForAllTabClose then
1210     if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1211     Exit;
1212    
1213     GikoForm.ActiveContent := nil;
1214     GikoForm.BrowserNullTab.Thread := nil;
1215     GikoForm.BrowserTab.OnChange := nil;
1216     GikoForm.BrowserTab.Tabs.BeginUpdate;
1217     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1218     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1219     end;
1220     GikoForm.BrowserTab.Tabs.Clear;
1221     GikoForm.BrowserTab.Tabs.EndUpdate;
1222     GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1223     GikoForm.SetContent(GikoForm.BrowserNullTab);
1224     GikoForm.Caption := CAPTION_NAME ;
1225     end;
1226     // *************************************************************************
1227 yoffy 1.9 //! ?上?????????????帥?????鴻???????????ゃ????
1228 h677 1.3 // *************************************************************************
1229     procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1230     const
1231     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1232     DEL_TITLE = '???ょ∈茯?';
1233     var
1234     idx: Integer;
1235     ThreadItem: TThreadItem;
1236     begin
1237     idx := GikoForm.BrowserTab.TabIndex;
1238     if idx <> -1 then begin
1239     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1240     ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1241     if GikoSys.Setting.DeleteMsg then
1242     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1243     if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1244     Exit;
1245     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1246     ThreadItem.DeleteLogFile;
1247     if ThreadItem.ParentBoard = GikoForm.ActiveList then
1248     GikoForm.ListView.Refresh;
1249     end;
1250     end;
1251     end;
1252     // *************************************************************************
1253 yoffy 1.9 //! 筝???窪???帥?????御??????
1254 h677 1.3 // *************************************************************************
1255     procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1256     begin
1257     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1258     GikoForm.BrowserTab.TabIndex := 0;
1259     GikoForm.BrowserTab.OnChange(nil);
1260     end;
1261     end;
1262     // *************************************************************************
1263 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1264 h677 1.3 // *************************************************************************
1265     procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1266     begin
1267     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1268     and (GikoForm.BrowserTab.TabIndex <> 0);
1269     end;
1270     // *************************************************************************
1271 yoffy 1.9 //! 綏????帥?????御??????
1272 h677 1.3 // *************************************************************************
1273     procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1274     begin
1275     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1276     if GikoForm.BrowserTab.TabIndex = -1 then begin
1277     GikoForm.BrowserTab.TabIndex := 0;
1278     GikoForm.BrowserTab.OnChange(nil);
1279     end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1280     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1281     GikoForm.BrowserTab.OnChange(nil);
1282     end;
1283     end;
1284     end;
1285     // *************************************************************************
1286 yoffy 1.9 //! ?潟???帥?????御??????
1287 h677 1.3 // *************************************************************************
1288     procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1289     begin
1290     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1291     if GikoForm.BrowserTab.TabIndex = -1 then begin
1292     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1293     GikoForm.BrowserTab.OnChange(nil);
1294     end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1295     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1296     GikoForm.BrowserTab.OnChange(nil);
1297     end;
1298     end;
1299     end;
1300     // *************************************************************************
1301 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1302 h677 1.3 // *************************************************************************
1303     procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1304     begin
1305     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1306     and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1307     end;
1308     // *************************************************************************
1309 yoffy 1.9 //! 筝???劻???帥?????御??????
1310 h677 1.3 // *************************************************************************
1311     procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1312     begin
1313     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1314     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1315     GikoForm.BrowserTab.OnChange(nil);
1316     end;
1317     end;
1318     // *************************************************************************
1319 yoffy 1.9 //! ?御?????????????鴻??????????羂????ャ????申??
1320 h677 1.3 // *************************************************************************
1321     procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1322     begin
1323     if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1324     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1325     end;
1326     // *************************************************************************
1327 yoffy 1.9 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1328 h677 1.3 // *************************************************************************
1329     procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1330     begin
1331     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1332     and (GikoForm.ListView.SelCount > 0);
1333     end;
1334     // *************************************************************************
1335 yoffy 1.9 //! ???鴻????絎鴻??腟???莨若??
1336 h677 1.3 // *************************************************************************
1337     procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1338     var
1339     Dlg: TListSelectDialog;
1340     FilterList : TStringList;
1341     idx : Integer;
1342     begin
1343 h677 1.12 Dlg := TListSelectDialog.Create(GikoForm);
1344 h677 1.3 try
1345     Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1346     Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1347     Dlg.ShowModal;
1348     if Dlg.ModalResult = mrOK then begin
1349     SelectResAction.Checked := True;
1350     if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1351     // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1352     ResRangeAction.Execute;
1353     end else begin
1354     GikoSys.ResRange := Ord( grrSelect );
1355    
1356     // ??緇???┃絎???????????荀?????????span>
1357     GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1358    
1359     // 罎?膣√吋罩眼???贋??/span>
1360     idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1361     if idx <> -1 then
1362     GikoSys.Setting.SelectTextList.Delete(idx);
1363     GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1364     while Dlg.SelectComboBox.Items.Count > 100 do begin
1365     Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1366     end;
1367    
1368     try
1369     if GikoForm.SelectComboBoxPanel.Visible then
1370     GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1371     except
1372     end;
1373    
1374     // ???c???帥??┃絎?
1375     FilterList := TStringList.Create;
1376     try
1377     GikoSys.FSelectResFilter.Reverse := True;
1378     FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1379     FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1380    
1381     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1382     finally
1383     FilterList.Free;
1384     end;
1385     GikoForm.RepaintAllTabsBrowser();
1386     end;
1387     end else begin
1388     // ???c?潟?祉??/span>
1389     if GikoSys.ResRange <> Ord( grrSelect ) then
1390     ResRangeAction.Execute;
1391     end;
1392     finally
1393     Dlg.Release;
1394     end;
1395    
1396     end;
1397     // *************************************************************************
1398 yoffy 1.9 //! ?????????鴻??茵?ず????
1399 h677 1.3 // *************************************************************************
1400     procedure TGikoDM.AllResActionExecute(Sender: TObject);
1401     begin
1402     if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1403     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1404    
1405     GikoForm.ResRangeMenuSelect := Ord( grrAll );
1406     AllResAction.Checked := True;
1407    
1408 h677 1.17 //??茵?ず膀??蚊??荐??????
1409     SetResRange(Ord( grrAll ));
1410 h677 1.3 end;
1411     // *************************************************************************
1412 yoffy 1.9 //! ???鴻??;腓榊??蚊??荐??
1413 h677 1.3 // *************************************************************************
1414     procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1415     begin
1416     case GikoForm.ResRangeMenuSelect of
1417     Ord( grrAll ): AllResAction.Execute;
1418     Ord( grrKoko ): OnlyKokoResAction.Execute;
1419     Ord( grrNew ): OnlyNewResAction.Execute;
1420     100: OnlyAHundredResAction.Execute;
1421     end;
1422    
1423     end;
1424     // *************************************************************************
1425 yoffy 1.9 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1426 h677 1.3 // *************************************************************************
1427     procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1428     begin
1429     GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1430     end;
1431     // *************************************************************************
1432 yoffy 1.9 //! ??絎???????垩?????鴻?????/span>
1433 h677 1.3 // *************************************************************************
1434     procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1435     var
1436     str: string;
1437     res: integer;
1438     begin
1439     str := '1';
1440     if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1441     str := ZenToHan(str);
1442     res := StrToIntDef(str, -1);
1443     if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1444 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(res));
1445 h677 1.3 SetFocusForBrowserAction.Execute;
1446     end else if res > GikoForm.GetActiveContent.Count then begin
1447 h677 1.15 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1448 h677 1.3 SetFocusForBrowserAction.Execute;
1449     end;
1450     end;
1451     end;
1452     // *************************************************************************
1453 yoffy 1.9 //! ?≪?????c?????帥???????潟????????
1454 h677 1.3 // *************************************************************************
1455     procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1456     var
1457     i: Integer;
1458     idx: Integer;
1459     begin
1460     idx := GikoForm.BrowserTab.TabIndex;
1461     if idx = -1 then Exit;
1462     GikoForm.BrowserTab.Tabs.BeginUpdate;
1463     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1464     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1465     GikoForm.BrowserTab.Tabs.Delete(i);
1466     end;
1467     GikoForm.BrowserTab.Tabs.EndUpdate;
1468     end;
1469     // *************************************************************************
1470 yoffy 1.9 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1471 h677 1.3 // *************************************************************************
1472     procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1473     begin
1474     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1475     end;
1476     // *************************************************************************
1477 yoffy 1.9 //! ?≪?????c?????帥??????綏?????????
1478 h677 1.3 // *************************************************************************
1479     procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1480     var
1481     i: Integer;
1482     idx: Integer;
1483     begin
1484     idx := GikoForm.BrowserTab.TabIndex;
1485     if idx = -1 then Exit;
1486     GikoForm.BrowserTab.Tabs.BeginUpdate;
1487     if idx > 0 then begin
1488     for i := idx - 1 downto 0 do begin
1489     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1490     GikoForm.BrowserTab.Tabs.Delete(i);
1491     end;
1492     end;
1493     GikoForm.BrowserTab.Tabs.EndUpdate;
1494     end;
1495     ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1496 h677 1.4 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1497     begin
1498     end;
1499     // *************************************************************************
1500 yoffy 1.9 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1501 h677 1.4 // *************************************************************************
1502     procedure TGikoDM.SearchActionExecute(Sender: TObject);
1503     var
1504     chk: TObject;
1505     begin
1506    
1507     if GikoForm.SearchDialog = nil then begin
1508     if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1509     chk := GikoForm.GetActiveList
1510     else
1511     chk := nil;
1512    
1513 h677 1.12 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1514 h677 1.4 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1515     end;
1516    
1517     try
1518     GikoForm.SearchDialog.Show;
1519     except
1520     end;
1521     end;
1522     // *************************************************************************
1523 yoffy 1.9 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1524 h677 1.4 // *************************************************************************
1525     procedure TGikoDM.OptionActionExecute(Sender: TObject);
1526     var
1527     Dlg: TOptionDialog;
1528     begin
1529 h677 1.12 Dlg := TOptionDialog.Create(GikoForm);
1530 h677 1.4 try
1531     Dlg.ShowModal;
1532     finally
1533     Dlg.Release;
1534     end;
1535     end;
1536     // *************************************************************************
1537 yoffy 1.9 //! 綏≦?????ゃ?≪???違??茵?ず????
1538 h677 1.4 // *************************************************************************
1539     procedure TGikoDM.RoundActionExecute(Sender: TObject);
1540     var
1541     Dlg: TRoundDialog;
1542     begin
1543 h677 1.12 Dlg := TRoundDialog.Create(GikoForm);
1544 h677 1.4 try
1545     Dlg.ShowModal;
1546     finally
1547     Dlg.Release;
1548     end;
1549     end;
1550     // *************************************************************************
1551 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1552 h677 1.4 // *************************************************************************
1553     procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1554     var
1555     Dlg: TKeySettingForm;
1556     begin
1557 h677 1.12 Dlg := TKeySettingForm.Create(GikoForm);
1558 h677 1.4 try
1559     if Dlg.ShowModal = mrOk then begin
1560 h677 1.20 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1561     GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.KEY_SETTING_FILE_NAME);
1562 h677 1.4 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1563     end;
1564    
1565     finally
1566     Dlg.Release;
1567     MouseGesture.UnHook;
1568     MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1569     MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1570     MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1571     if GikoSys.Setting.GestureEnabled then begin
1572     GikoSys.Setting.Gestures.ClearGesture;
1573     GikoSys.Setting.Gestures.LoadGesture(
1574     GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1575     MouseGesture.SetHook( GikoForm.Handle );
1576     end;
1577     end;
1578     end;
1579     // *************************************************************************
1580 yoffy 1.9 //! ???取┃絎????ゃ?≪???違??????span>
1581 h677 1.4 // *************************************************************************
1582     procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1583     var
1584     Dlg: TKotehanDialog;
1585     begin
1586 h677 1.12 Dlg := TKotehanDialog.Create(GikoForm);
1587 h677 1.4 try
1588     Dlg.ShowModal;
1589     finally
1590     Dlg.Release;
1591     end;
1592     end;
1593     // *************************************************************************
1594 yoffy 1.9 //! ???若?????取┃絎????ゃ?≪???違??????span>
1595 h677 1.4 // *************************************************************************
1596     procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1597     var
1598     Dlg: TToolBarSettingDialog;
1599     i: Integer;
1600     begin
1601     Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1602     try
1603     Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1604     Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1605     Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1606     case GikoForm.ToolBarSettingSender of
1607     tssMain: Dlg.ToolBarIndex := 0;
1608     tssList: Dlg.ToolBarIndex := 1;
1609     tssBrowser: Dlg.ToolBarIndex := 2;
1610     end;
1611     if Dlg.ShowModal = mrOK then begin
1612     GikoForm.SetToolBarPopup;
1613    
1614     //?????????荐??????????????????????????c?????????
1615     for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1616     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1617     GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1618     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1619     GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1620     end;
1621     for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1622     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1623     GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1624     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1625     GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1626     end;
1627     for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1628     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1629     GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1630     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1631     GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1632     end;
1633    
1634     SaveToolBarSetting(GikoForm.StdToolBar);
1635     SaveToolBarSetting(GikoForm.ListToolBar);
1636     //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1637 h677 1.13 GikoForm.SetSelectComboBox;
1638 h677 1.4 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1639     SaveToolBarSetting(GikoForm.BrowserToolBar);
1640     end;
1641     finally
1642     Dlg.Release;
1643     GikoForm.ToolBarSettingSender := tssNone;
1644     end;
1645     end;
1646     // *************************************************************************
1647 yoffy 1.9 //! ???ャ?若??
1648 h677 1.4 // *************************************************************************
1649     procedure TGikoDM.MuteActionExecute(Sender: TObject);
1650     begin
1651     GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1652     end;
1653     ////////////////////////////////???若???障?с?????障??/////////////////////
1654     // *************************************************************************
1655 yoffy 1.9 //! ?鴻??????筝?荀с???????潟???若??????
1656 h677 1.4 // *************************************************************************
1657     procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1658     var
1659     Board: TBoard;
1660     TmpTreeNode: TTreeNode;
1661     begin
1662     TmpTreeNode := GikoForm.ClickNode;
1663     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1664     Board := nil;
1665    
1666     if TObject(TmpTreeNode.Data) is TBoard then
1667     Board := TBoard(TmpTreeNode.Data)
1668     else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1669     Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1670    
1671     if Board <> nil then
1672     GikoForm.DownloadList(Board);
1673     end;
1674     // *************************************************************************
1675 yoffy 1.9 //! ?御?????????鴻?????????????潟???若??????
1676 h677 1.4 // *************************************************************************
1677     procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1678     var
1679     ThreadItem: TThreadItem;
1680     TmpTreeNode: TTreeNode;
1681     begin
1682     TmpTreeNode := GikoForm.ClickNode;
1683     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1684     ThreadItem := nil;
1685    
1686     if TObject(TmpTreeNode.Data) is TThreadItem then
1687     ThreadItem := TThreadItem(TmpTreeNode.Data)
1688     else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1689     ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1690    
1691     if ThreadItem <> nil then
1692     GikoForm.DownloadContent(ThreadItem);
1693     end;
1694     // *************************************************************************
1695 yoffy 1.9 //! ?御?????????帥??RL???潟???若????
1696 h677 1.4 // *************************************************************************
1697     procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1698     var
1699     TmpTreeNode: TTreeNode;
1700     s: string;
1701     begin
1702     TmpTreeNode := GikoForm.ClickNode;
1703     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1704     if TObject(TmpTreeNode.Data) is TBoard then begin
1705     s := TBoard(TmpTreeNode.Data).URL + #13#10;
1706     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1707     s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1708     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1709     s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1710     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1711     s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1712     end;
1713     Clipboard.AsText := s;
1714     end;
1715     // *************************************************************************
1716 yoffy 1.9 //! ?御?????????帥????????RL???潟???若????
1717 h677 1.4 // *************************************************************************
1718     procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1719     var
1720     TmpTreeNode: TTreeNode;
1721     s: string;
1722     begin
1723     TmpTreeNode := GikoForm.ClickNode;
1724     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1725     if TObject(TmpTreeNode.Data) is TBoard then begin
1726     s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1727     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1728     s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1729     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1730     s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1731     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1732     s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1733     end;
1734     Clipboard.AsText := s;
1735     end;
1736     // *************************************************************************
1737 yoffy 1.9 //! ??羂????ャ????申??????
1738 h677 1.4 // *************************************************************************
1739     procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1740     begin
1741     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1742     end;
1743     // *************************************************************************
1744 yoffy 1.9 //! ?水??罎?膣?/span>
1745 h677 1.4 // *************************************************************************
1746     procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1747     var
1748     s : String;
1749     msg : String;
1750     CurItem : TTreeNode;
1751     next : boolean;
1752     begin
1753     if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1754     next := true;
1755     while next do begin
1756     if GikoForm.TreeView.Selected = nil then
1757     CurItem := GikoForm.TreeView.Items.GetFirstNode
1758     else begin
1759     CurItem := GikoForm.TreeView.Selected.GetNext;
1760     if CurItem = nil then
1761     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1762     end;
1763     while CurItem <> nil do begin
1764     if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1765     break;
1766     end;
1767     CurItem := CurItem.GetNext;
1768     end;
1769     try
1770     if CurItem = nil then begin
1771     msg := '???????祉???障????鐚?';
1772     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1773     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1774     end else begin
1775     Exit;
1776     end;
1777     GikoForm.TreeView.Select(CurItem);
1778     GikoForm.TreeView.SetFocus;
1779     end else begin
1780     GikoForm.TreeView.Select(CurItem);
1781     GikoForm.TreeView.SetFocus;
1782     msg := '罨<??????障????鐚?';
1783     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1784     next := true;
1785     end else begin
1786     next := false;
1787     end;
1788     end;
1789    
1790     except
1791     Exit;
1792     end;
1793     end;
1794     end;
1795     end;
1796     // *************************************************************************
1797 yoffy 1.9 //! ?御?????????帥?????????潟???若????
1798 h677 1.4 // *************************************************************************
1799     procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1800     var
1801     s: string;
1802     begin
1803     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1804     s := GikoForm.ClickNode.Text;
1805     Clipboard.AsText := s;
1806     end;
1807     ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1808 h677 1.5 // *************************************************************************
1809 yoffy 1.9 //! ???違?ゃ?鰹????違?≪??????????
1810 h677 1.5 // *************************************************************************
1811     procedure TGikoDM.LoginActionExecute(Sender: TObject);
1812     var
1813     TmpCursor: TCursor;
1814     msg : String;
1815     begin
1816     if GikoSys.Dolib.Connected then begin
1817     //???違?≪????
1818     GikoSys.Dolib.Disconnect;
1819     LoginAction.Checked := False;
1820 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1821 h677 1.5 LoginAction.Caption := '???違?ゃ??&L)';
1822     end else begin
1823     TmpCursor := GikoForm.ScreenCursor;
1824     GikoForm.ScreenCursor := crHourGlass;
1825     try
1826     //??絽吾???違?ゃ??/span>
1827     if not GikoSys.Setting.ForcedLogin then begin
1828     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1829     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1830     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1831     if GikoSys.Setting.ReadProxy then begin
1832     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1833     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1834     end else begin
1835     GikoSys.Dolib.ProxyAddress := '';
1836     GikoSys.Dolib.ProxyPort := 0;
1837     end;
1838     if GikoSys.Dolib.Connect then begin
1839     LoginAction.Checked := True;
1840 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1841 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1842     //LoginToolButton.Style := tbsCheck;
1843     end else begin
1844     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1845     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1846     GikoForm.PlaySound('Error');
1847     LoginAction.Checked := False;
1848     //LoginToolButton.Down := False;
1849     ///LoginToolButton.Style := tbsButton;
1850     end;
1851     end else begin
1852     msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1853     + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1854     + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1855     if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1856     GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1857     GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1858     GikoSys.Dolib.Password := GikoSys.Setting.Password;
1859     if GikoSys.Setting.ReadProxy then begin
1860     GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1861     GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1862     end else begin
1863     GikoSys.Dolib.ProxyAddress := '';
1864     GikoSys.Dolib.ProxyPort := 0;
1865     end;
1866     //SSL??絎括??七?吟???違?ゃ??/span>
1867     GikoSys.Dolib.ForcedConnect;
1868     if GikoSys.Dolib.Connect then begin
1869     LoginAction.Checked := True;
1870 h677 1.21 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1871 h677 1.5 LoginAction.Caption := '???違?≪????(&L)';
1872     //LoginToolButton.Style := tbsCheck;
1873     end else begin
1874     // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1875     GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1876     GikoForm.PlaySound('Error');
1877     LoginAction.Checked := False;
1878     //LoginToolButton.Down := False;
1879     //LoginToolButton.Style := tbsButton;
1880     end;
1881     end else begin
1882     LoginAction.Checked := False;
1883     //LoginToolButton.Down := False;
1884     //LoginToolButton.Style := tbsButton;
1885     end;
1886     end;
1887     finally
1888     GikoForm.ScreenCursor := TmpCursor;
1889     end;
1890     end;
1891     end;
1892     // *************************************************************************
1893 yoffy 1.9 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1894 h677 1.5 // *************************************************************************
1895     procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1896     var
1897     Dlg: TNewBoardDialog;
1898     Msg: string;
1899     begin
1900     if GikoForm.EditorFormExists then begin
1901     Msg := '???鴻?????c?帥???????????????????';
1902     MsgBox(GikoForm.Handle, Msg, '??????#39;, MB_OK or MB_ICONSTOP);
1903     Exit;
1904     end;
1905 h677 1.12 Dlg := TNewBoardDialog.Create(GikoForm);
1906 h677 1.5 try
1907     Dlg.ShowModal;
1908     finally
1909     Dlg.Release;
1910     end;
1911     end;
1912     // *************************************************************************
1913 yoffy 1.9 //! ?御?????????????鴻???????????ゃ????
1914 h677 1.5 // *************************************************************************
1915     procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1916     const
1917     DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1918     DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1919     DEL_TITLE = '???ょ∈茯?';
1920     var
1921     ThreadItem: TThreadItem;
1922     TmpListItem: TListItem;
1923     List: TList;
1924     i: Integer;
1925     begin
1926     List := TList.Create;
1927     try
1928     TmpListItem := GikoForm.ListView.Selected;
1929     while TmpListItem <> nil do begin
1930     if TObject(TmpListItem.Data) is TThreadItem then begin
1931     ThreadItem := TThreadItem(TmpListItem.Data);
1932     if ThreadItem.IsLogFile then
1933     List.Add(ThreadItem);
1934     end;
1935     TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1936     end;
1937    
1938     if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1939     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1940     if List.Count = 1 then begin
1941     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
1942     Exit;
1943     end else begin
1944     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
1945     Exit;
1946     end;
1947     end;
1948     end;
1949    
1950     for i := 0 to List.Count - 1 do begin
1951     ThreadItem := TThreadItem(List[i]);
1952     GikoForm.DeleteHistory(ThreadItem);
1953     GikoForm.DeleteTab(ThreadItem);
1954     ThreadItem.DeleteLogFile;
1955    
1956     GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1957     end;
1958     GikoForm.ListView.Refresh;
1959     finally
1960     List.Free;
1961     end;
1962     end;
1963     // *************************************************************************
1964 yoffy 1.9 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1965 h677 1.5 // *************************************************************************
1966     procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1967     begin
1968     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1969     and (GikoForm.ListView.SelCount > 0);
1970     end;
1971     // *************************************************************************
1972 yoffy 1.9 //! 腟?莨若?水吋罩眼??羔??祉????
1973 h677 1.5 // *************************************************************************
1974     procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1975     const
1976     DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1977     DEL_TITLE = '???ょ∈茯?';
1978     begin
1979     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1980     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1981     Exit;
1982     GikoSys.Setting.SelectTextList.Clear;
1983     GikoForm.SelectComboBox.Items.Clear;
1984     GikoForm.SelectComboBox.Text := '';
1985     GikoForm.SetListViewType( gvtAll );
1986     end;
1987     // *************************************************************************
1988 yoffy 1.9 //! ???鴻?????c?帥??????絮ユ???羔??祉????
1989 h677 1.5 // *************************************************************************
1990     procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1991     const
1992     DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
1993     DEL_TITLE = '???ょ∈茯?';
1994     begin
1995     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1996     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1997     Exit;
1998     GikoSys.Setting.NameList.Clear;
1999     GikoForm.AllEditroFormNameTextClearClear;
2000     end;
2001     // *************************************************************************
2002 yoffy 1.9 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2003 h677 1.5 // *************************************************************************
2004     procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2005     const
2006     DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2007     DEL_TITLE = '???ょ∈茯?';
2008     begin
2009     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2010     if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2011     Exit;
2012     GikoSys.Setting.MailList.Clear;
2013     GikoForm.AllEditroFormMailTextClearClear;
2014     end;
2015     // *************************************************************************
2016 yoffy 1.9 //! ???潟??????腟?篋?????
2017 h677 1.5 // *************************************************************************
2018     procedure TGikoDM.ExitActionExecute(Sender: TObject);
2019     begin
2020     GikoForm.Close;
2021     end;
2022     // *************************************************************************
2023 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵???????
2024 h677 1.5 // *************************************************************************
2025     procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2026     begin
2027     ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2028     end;
2029     // *************************************************************************
2030 yoffy 1.9 //! ??羂????ャ?????????鴻???若????絎?茵?????
2031 h677 1.5 // *************************************************************************
2032     procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2033     begin
2034     if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2035     ShowMessage('???<?ゃ?????阪?????障????');
2036     end else begin
2037     ShowMessage('???<?ゃ?????阪????け?????障????');
2038     end;
2039     end;
2040     // *************************************************************************
2041 h677 1.19 //! ?御???鴻???????????<?ゃ?????絖?????
2042 h677 1.5 // *************************************************************************
2043 h677 1.19 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2044 h677 1.5 var
2045     List: TList;
2046     i: Integer;
2047     html: TStringList;
2048     title: string;
2049     begin
2050     List := TList.Create;
2051     try
2052     GikoForm.ScreenCursor := crHourGlass;
2053     GikoForm.SelectListItem(List);
2054     if ((GikoSys.Setting.ListOrientation = gloVertical) and
2055     (GikoSys.Setting.ListHeightState = glsMax)) or
2056     ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2057     (GikoSys.Setting.ListWidthState = glsMax)) then
2058     ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2059     else if(List.Count = 0) then
2060     ShowMessage('?鴻?????????御?????????????')
2061     else begin
2062 h677 1.19 if dat then begin
2063     SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2064     SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2065     end else begin
2066     SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2067     SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2068     end;
2069 h677 1.5 for i := 0 to List.Count - 1 do begin
2070     if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2071 h677 1.19 if dat then begin
2072     SaveDialog.FileName := TThreadItem(List[i]).FileName;
2073     end else begin
2074     SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2075     end;
2076     if SaveDialog.Execute then begin
2077     if dat then begin
2078     CopyFile(PChar(TThreadItem(List[i]).FilePath),
2079     PChar(SaveDialog.FileName), true);
2080     end else begin
2081     html := TStringList.Create;
2082     title := TThreadItem(List[i]).Title;
2083     try
2084     HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2085     html.SaveToFile(SaveDialog.FileName);
2086     THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2087     finally
2088     html.Free;
2089     end;
2090 h677 1.5 end;
2091     end;
2092     end;
2093     end;
2094     end;
2095     finally
2096     GikoForm.ScreenCursor := crDefault;
2097     List.Free;
2098     end;
2099     end;
2100     // *************************************************************************
2101 h677 1.19 //! ?御???鴻????????HTML???????絖?
2102     // *************************************************************************
2103     procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2104     begin
2105     SelectThreadSaveToFile(false);
2106     end;
2107     // *************************************************************************
2108 yoffy 1.9 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2109 h677 1.5 // *************************************************************************
2110     procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2111     begin
2112 h677 1.19 SelectThreadSaveToFile(true);
2113 h677 1.5 end;
2114     // *************************************************************************
2115 yoffy 1.9 //! ?帥??????????篆?絖?
2116 h677 1.5 // *************************************************************************
2117     procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2118     begin
2119     if not GikoForm.SaveTabURLs then begin
2120     if TabsSaveAction.Tag = 0 then
2121     ShowMessage('篆?絖??????帥?????????障????')
2122     else if TabsSaveAction.Tag = 1 then
2123 h677 1.10 GikoDM.TabsOpenAction.Tag := -1;
2124 h677 1.5 end;
2125     end;
2126     // *************************************************************************
2127 yoffy 1.9 //! ?帥??????????緇???
2128 h677 1.5 // *************************************************************************
2129     procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2130     begin
2131     if TabsOpenAction.Tag <> -1 then begin
2132     if not GikoForm.LoadTabURLs then begin
2133     if TabsOpenAction.Tag = 0 then
2134     ShowMessage('茵?ず?????帥?????????障??????');
2135     end;
2136     end;
2137     end;
2138     // *************************************************************************
2139 yoffy 1.9 //! ?帥??????????????篆?絖?
2140 h677 1.5 // *************************************************************************
2141     procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2142     begin
2143     GikoForm.SaveTabURLs;
2144     end;
2145     // *************************************************************************
2146 yoffy 1.9 //! ?帥??????????????緇???
2147 h677 1.5 // *************************************************************************
2148     procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2149     begin
2150     GikoForm.LoadTabURLs;
2151     end;
2152     // *************************************************************************
2153 yoffy 1.9 //! Be2ch?????違?ゃ?????違?≪????????
2154 h677 1.5 // *************************************************************************
2155     procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2156     begin
2157     GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2158     end;
2159     // *************************************************************************
2160 yoffy 1.9 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2161 h677 1.5 // *************************************************************************
2162     procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2163     begin
2164     if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2165     if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2166     else BeLogInOutAction.Checked := false;
2167     BeLogInOutAction.Enabled := true
2168     end else
2169     BeLogInOutAction.Enabled := false;
2170     end;
2171     ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2172 h677 1.6 // *************************************************************************
2173 yoffy 1.9 //! ?潟?潟?障?ц?????
2174 h677 1.6 // *************************************************************************
2175     procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2176     var
2177     No: Integer;
2178     ThreadItem: TThreadItem;
2179     begin
2180     No := GikoForm.KokoPopupMenu.Tag;
2181     if No = 0 then Exit;
2182     ThreadItem := GikoForm.GetActiveContent;
2183     if ThreadItem = nil then Exit;
2184     ThreadItem.Kokomade := No;
2185     GikoForm.ActiveContent.Thread.ScrollTop :=
2186     OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2187     GikoForm.ActiveContent.Repaint := true;
2188     GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2189     //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2190     //Application.ProcessMessages;
2191     end;
2192     // *************************************************************************
2193 yoffy 1.9 //! ?????????
2194 h677 1.6 // *************************************************************************
2195     procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2196     var
2197     ThreadItem: TThreadItem;
2198     begin
2199     ThreadItem := GikoForm.GetActiveContent;
2200     if ThreadItem = nil then Exit;
2201     ThreadItem.Kokomade := -1;
2202     GikoForm.ActiveContent.Thread.ScrollTop :=
2203     OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2204     GikoForm.ActiveContent.Repaint := true;
2205     GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2206     //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2207     //Application.ProcessMessages;
2208     end;
2209     // *************************************************************************
2210 yoffy 1.9 //! ?潟?潟??????/span>
2211 h677 1.6 // *************************************************************************
2212     procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2213     var
2214     Editor: TEditorForm;
2215     Item: TThreadItem;
2216     Number: Integer;
2217     begin
2218     Number := GikoForm.KokoPopupMenu.Tag;
2219     if Number = 0 then Exit;
2220     Item := GikoForm.GetActiveContent;
2221     if Item = nil then Exit;
2222 h677 1.5
2223 h677 1.12 Editor := TEditorForm.Create(GikoForm);
2224 h677 1.6 Editor.SetThreadItem(Item);
2225 h677 1.20 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
2226 h677 1.6 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2227     Editor.Show;
2228     Editor.BodyEdit.SetFocus;
2229     end;
2230     // *************************************************************************
2231 yoffy 1.9 //! ?御?????????鴻???潟???若????
2232 h677 1.6 // *************************************************************************
2233     procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2234     begin
2235     GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2236     end;
2237     // *************************************************************************
2238 yoffy 1.9 //! ?御?????????鴻???潟???若????
2239 h677 1.6 // *************************************************************************
2240     procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2241     var
2242     ThreadItem : TThreadItem;
2243     No, count, rc : Integer;
2244     body : string;
2245     limited: boolean;
2246     begin
2247     No := GikoForm.KokoPopupMenu.Tag;
2248     if No = 0 then Exit;
2249     ThreadItem := GikoForm.GetActiveContent;
2250     if ThreadItem = nil then Exit;
2251     count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2252     limited := false;
2253     if count > 20 then begin
2254     rc := GikoUtil.MsgBox(GikoForm.Handle,
2255     '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2256     'ID???????≪????茘???',
2257     MB_YESNO or MB_ICONQUESTION);
2258     limited := rc <> ID_YES;
2259     end;
2260     body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2261 h677 1.15 GikoForm.ActiveContent.IDAnchorPopup(body);
2262 h677 1.6 end;
2263     // *************************************************************************
2264 yoffy 1.9 //! ???????鴻???若??????鐚???絽醐?
2265 h677 1.6 // *************************************************************************
2266     procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2267     begin
2268     GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2269     end;
2270     // *************************************************************************
2271 yoffy 1.9 //! ???????鴻???若??????鐚?????
2272 h677 1.6 // *************************************************************************
2273     procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2274     begin
2275     GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);