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.23 - (hide annotations) (download) (as text)
Thu Dec 15 16:12:55 2005 UTC (18 years, 4 months ago) by h677
Branch: MAIN
CVS Tags: v1_51_0_632, v1_51_0_630, v1_51_0_631
Changes since 1.22: +4 -3 lines
File MIME type: text/x-pascal
ステータスバーに現在表示中のスレの容量を表示するようにした。

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