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