Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/GikoDataModule.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.29 - (show annotations) (download) (as text)
Tue Dec 27 17:08:58 2005 UTC (18 years, 3 months ago) by h677
Branch: MAIN
CVS Tags: v1_51_1_639, v1_51_0_638, root-of-Bb51
Branch point for: Bb51
Changes since 1.28: +8 -15 lines
File MIME type: text/x-pascal
お気に入りキャビネットで、スペースキーでDLできない。
および、コンテキストポップアップでDLができない不具合の修正。

1 unit GikoDataModule;
2
3 interface
4
5 uses
6 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 {$IF Defined(DELPRO) }
8 SHDocVw,
9 MSHTML,
10 {$ELSE}
11 SHDocVw_TLB,
12 MSHTML_TLB,
13 {$IFEND}
14 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs;
15
16 const
17 CAPTION_NAME: string = '???潟????';
18 USER_SETLINKBAR = WM_USER + 2003;
19
20 ITEM_ICON_SORT1 = 12; //!< ?純?若???≪?ゃ?潟??/span>
21 ITEM_ICON_SORT2 = 13; //!< ?純?若???≪?ゃ?潟??/span>
22
23 //???若?????若?≪?ゃ?潟??/span>
24 TOOL_ICON_HEIGHT_MAX = 16; //!< 蕭?????紊с?≪?ゃ?潟??/span>
25 TOOL_ICON_HEIGHT_MIN = 17; //!< 蕭?????絨?≪?ゃ?潟??/span>
26 TOOL_ICON_HEIGHT_NORMAL = 18; //!< 蕭???罔?羣??≪?ゃ?潟??/span>
27 TOOL_ICON_WIDTH_MAX = 19; //!< 綛???紊с?≪?ゃ?潟??/span>
28 TOOL_ICON_WIDTH_MIN = 20; //!< 綛???絨?≪?ゃ?潟??/span>
29 TOOL_ICON_WIDTH_NORMAL = 21; //!< 綛?罔?羣??≪?ゃ?潟??/span>
30
31 TOOL_ICON_FAV_FOLDER = 30; //!< ??羂????ャ???????????≪?ゃ?潟??/span>
32 TOOL_ICON_FAV_BOARD = 31; //!< ??羂????ャ???帥?≪?ゃ?潟??/span>
33 TOOL_ICON_FAV_THREAD = 32; //!< ??羂????ャ???鴻???≪?ゃ?潟??/span>
34
35 //! ???潟?????泣?ゃ????RL
36 URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
37 //! Monazilla?泣?ゃ????RL
38 URL_MONAZILLA: string = 'http://www.monazilla.org/';
39 //! 2?<??????????RL
40 URL_2ch: string = 'http://www.2ch.net/';
41 //! ???潟????Wiki??RL
42 URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
43
44 SELECTCOMBOBOX_NAME: string = ''; // '?鴻??????腟?莨惹?膣?#39;;
45 SELECTCOMBOBOX_COLOR: TColor = clWindow;
46
47
48 type
49 TGikoDM = class(TDataModule)
50 GikoFormActionList: TActionList;
51 OnlyAHundredResAction: TAction;
52 OnlyKokoResAction: TAction;
53 LoginAction: TAction;
54 NewBoardAction: TAction;
55 LogDeleteAction: TAction;
56 KidokuAction: TAction;
57 StdToolBarVisibleAction: TAction;
58 AddressBarVisibleAction: TAction;
59 LinkBarVisibleAction: TAction;
60 ListToolBarVisibleAction: TAction;
61 SearchAction: TAction;
62 GikoNaviWebPageAction: TAction;
63 MonazillaWebPageAction: TAction;
64 BBS2chWebPageAction: TAction;
65 GikoFolderOpenAction: TAction;
66 AboutAction: TAction;
67 SelectTextClearAction: TAction;
68 NameTextClearAction: TAction;
69 MailTextClearAction: TAction;
70 ExitAction: TAction;
71 ListNameBarVisibleAction: TAction;
72 BrowserToolBarVisibleAction: TAction;
73 BrowserNameBarVisibleAction: TAction;
74 MsgBarVisibleAction: TAction;
75 MsgBarCloseAction: TAction;
76 StatusBarVisibleAction: TAction;
77 CabinetBBSAction: TAction;
78 CabinetHistoryAction: TAction;
79 OnlyNewResAction: TAction;
80 CabinetFavoriteAction: TAction;
81 CabinetVisibleAction: TAction;
82 ListNumberVisibleAction: TAction;
83 UpFolderAction: TAction;
84 CabinetCloseAction: TAction;
85 IconStyle: TAction;
86 LargeIconAction: TAction;
87 SmallIconAction: TAction;
88 ListIconAction: TAction;
89 DetailIconAction: TAction;
90 MidokuAction: TAction;
91 AllSelectAction: TAction;
92 AllItemAction: TAction;
93 LogItemAction: TAction;
94 NewItemAction: TAction;
95 ThreadRangeAction: TAction;
96 SelectItemAction: TAction;
97 StopAction: TAction;
98 OptionAction: TAction;
99 RoundAction: TAction;
100 BrowserMaxAction: TAction;
101 BrowserMinAction: TAction;
102 ScrollTopAction: TAction;
103 ScrollLastAction: TAction;
104 ScrollNewAction: TAction;
105 ScrollKokoAction: TAction;
106 EditorAction: TAction;
107 IEAction: TAction;
108 ShowThreadAction: TAction;
109 ShowBoardAction: TAction;
110 URLCopyAction: TAction;
111 NameCopyAction: TAction;
112 NameURLCopyAction: TAction;
113 ItemReloadAction: TAction;
114 ThreadEditorAction: TAction;
115 BoardIEAction: TAction;
116 SelectItemURLCopyAction: TAction;
117 SelectItemNameCopyAction: TAction;
118 SelectItemNameURLCopyAction: TAction;
119 SelectListReloadAction: TAction;
120 SelectThreadReloadAction: TAction;
121 BrowserTabCloseAction: TAction;
122 NotSelectTabCloseAction: TAction;
123 AllTabCloseAction: TAction;
124 KokomadeAction: TAction;
125 ZenbuAction: TAction;
126 KokoResAction: TAction;
127 TreeSelectBoradReload: TAction;
128 TreeSelectThreadReload: TAction;
129 TreeSelectURLCopy: TAction;
130 SelectReservAction: TAction;
131 SelectNewRoundName: TAction;
132 SelectDeleteRound: TAction;
133 KeySettingAction: TAction;
134 ArrangeAction: TAction;
135 ActiveLogDeleteAction: TAction;
136 TreeSelectNameURLCopy: TAction;
137 PaneInitAction: TAction;
138 LeftmostTabSelectAction: TAction;
139 LeftTabSelectAction: TAction;
140 RightTabSelectAction: TAction;
141 RightmostTabSelectAction: TAction;
142 FavoriteAddAction: TAction;
143 BoardFavoriteAddAction: TAction;
144 ThreadFavoriteAddAction: TAction;
145 TreeSelectFavoriteAddAction: TAction;
146 FavoriteArrangeAction: TAction;
147 MoveToAction: TAction;
148 BrowserTabVisibleAction: TAction;
149 BrowserTabTopAction: TAction;
150 BrowserTabBottomAction: TAction;
151 BrowserTabTabStyleAction: TAction;
152 BrowserTabButtonStyleAction: TAction;
153 BrowserTabFlatStyleAction: TAction;
154 GikoHelpAction: TAction;
155 KotehanAction: TAction;
156 ToolBarSettingAction: TAction;
157 SelectResAction: TAction;
158 AllResAction: TAction;
159 EditNGAction: TAction;
160 ReloadAction: TAction;
161 GoFowardAction: TAction;
162 GoBackAction: TAction;
163 TreeSelectSearchBoardName: TAction;
164 FavoriteTreeViewRenameAction: TAction;
165 FavoriteTreeViewNewFolderAction: TAction;
166 FavoriteTreeViewDeleteAction: TAction;
167 FavoriteTreeViewBrowseFolderAction: TAction;
168 FavoriteTreeViewReloadAction: TAction;
169 FavoriteTreeViewURLCopyAction: TAction;
170 FavoriteTreeViewNameCopyAction: TAction;
171 FavoriteTreeViewNameURLCopyAction: TAction;
172 FavoriteTreeViewLogDeleteAction: TAction;
173 ResRangeAction: TAction;
174 ExportFavoriteFile: TFileSaveAs;
175 FavoriteTreeViewBrowseBoardAction: TAction;
176 FavoriteTreeViewBrowseThreadAction: TAction;
177 UpBoardAction: TAction;
178 KoreCopy: TAction;
179 TreeSelectNameCopy: TAction;
180 SetFocusForBrowserAction: TAction;
181 SetFocusForThreadListAction: TAction;
182 SetFocusForCabinetAction: TAction;
183 FileRun1: TFileRun;
184 ThreadlistMaxAndFocusAction: TAction;
185 BrowserMaxAndFocusAction: TAction;
186 SelectItemSaveForHTML: TAction;
187 SelectItemSaveForDat: TAction;
188 LogFolderOpenAction: TAction;
189 TabsSaveAction: TAction;
190 TabsOpenAction: TAction;
191 BrowsBoradHeadAction: TAction;
192 TabAutoSaveAction: TAction;
193 TabAutoLoadAction: TAction;
194 JumpToNumOfResAction: TAction;
195 FavoriteTreeViewCollapseAction: TAction;
196 RightTabCloseAction: TAction;
197 LeftTabCloseAction: TAction;
198 SameIDResAnchorAction: TAction;
199 IndividualAbon1Action: TAction;
200 IndividualAbon0Action: TAction;
201 AntiIndividualAbonAction: TAction;
202 AntiIndividualAbonDlgAction: TAction;
203 IndividualAbonID1Action: TAction;
204 IndividualAbonID0Action: TAction;
205 MuteAction: TAction;
206 SortActiveColumnAction: TAction;
207 SortNextColumnAction: TAction;
208 SortPrevColumnAction: TAction;
209 BeLogInOutAction: TAction;
210 UnSelectedListViewAction: TAction;
211 WikiFAQWebPageAction: TAction;
212 ToobarImageList: TImageList;
213 SaveDialog: TSaveDialog;
214 ThreadSizeCalcForFileAction: TAction;
215 procedure EditNGActionExecute(Sender: TObject);
216 procedure ReloadActionExecute(Sender: TObject);
217 procedure GoFowardActionExecute(Sender: TObject);
218 procedure GoBackActionExecute(Sender: TObject);
219 procedure MoveToActionExecute(Sender: TObject);
220 procedure FavoriteAddActionExecute(Sender: TObject);
221 procedure FavoriteArrangeActionExecute(Sender: TObject);
222 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
223 procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
224 procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
225 procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
226 procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
227 procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
228 procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
229 procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
230 procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
231 procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
232 procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
233 procedure OnlyAHundredResActionExecute(Sender: TObject);
234 procedure OnlyKokoResActionExecute(Sender: TObject);
235 procedure OnlyNewResActionExecute(Sender: TObject);
236 procedure BrowserMaxActionExecute(Sender: TObject);
237 procedure BrowserMinActionExecute(Sender: TObject);
238 procedure ScrollTopActionExecute(Sender: TObject);
239 procedure ScrollLastActionExecute(Sender: TObject);
240 procedure ScrollNewActionExecute(Sender: TObject);
241 procedure ScrollKokoActionExecute(Sender: TObject);
242 procedure ScrollKokoActionUpdate(Sender: TObject);
243 procedure EditorActionExecute(Sender: TObject);
244 procedure IEActionExecute(Sender: TObject);
245 procedure ShowThreadActionExecute(Sender: TObject);
246 procedure ShowBoardActionExecute(Sender: TObject);
247 procedure URLCopyActionExecute(Sender: TObject);
248 procedure NameCopyActionExecute(Sender: TObject);
249 procedure NameURLCopyActionExecute(Sender: TObject);
250 procedure ItemReloadActionExecute(Sender: TObject);
251 procedure BrowserTabCloseActionExecute(Sender: TObject);
252 procedure BrowserTabCloseActionUpdate(Sender: TObject);
253 procedure NotSelectTabCloseActionExecute(Sender: TObject);
254 procedure NotSelectTabCloseActionUpdate(Sender: TObject);
255 procedure AllTabCloseActionExecute(Sender: TObject);
256 procedure ActiveLogDeleteActionExecute(Sender: TObject);
257 procedure LeftmostTabSelectActionExecute(Sender: TObject);
258 procedure LeftmostTabSelectActionUpdate(Sender: TObject);
259 procedure LeftTabSelectActionExecute(Sender: TObject);
260 procedure RightTabSelectActionExecute(Sender: TObject);
261 procedure RightTabSelectActionUpdate(Sender: TObject);
262 procedure RightmostTabSelectActionExecute(Sender: TObject);
263 procedure ThreadFavoriteAddActionExecute(Sender: TObject);
264 procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
265 procedure SelectResActionExecute(Sender: TObject);
266 procedure AllResActionExecute(Sender: TObject);
267 procedure ResRangeActionExecute(Sender: TObject);
268 procedure UpBoardActionExecute(Sender: TObject);
269 procedure JumpToNumOfResActionExecute(Sender: TObject);
270 procedure RightTabCloseActionExecute(Sender: TObject);
271 procedure RightTabCloseActionUpdate(Sender: TObject);
272 procedure LeftTabCloseActionExecute(Sender: TObject);
273 procedure DataModuleCreate(Sender: TObject);
274 procedure SearchActionExecute(Sender: TObject);
275 procedure OptionActionExecute(Sender: TObject);
276 procedure RoundActionExecute(Sender: TObject);
277 procedure KeySettingActionExecute(Sender: TObject);
278 procedure KotehanActionExecute(Sender: TObject);
279 procedure ToolBarSettingActionExecute(Sender: TObject);
280 procedure MuteActionExecute(Sender: TObject);
281 procedure TreeSelectBoradReloadExecute(Sender: TObject);
282 procedure TreeSelectThreadReloadExecute(Sender: TObject);
283 procedure TreeSelectURLCopyExecute(Sender: TObject);
284 procedure TreeSelectNameURLCopyExecute(Sender: TObject);
285 procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
286 procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
287 procedure TreeSelectNameCopyExecute(Sender: TObject);
288 procedure LoginActionExecute(Sender: TObject);
289 procedure NewBoardActionExecute(Sender: TObject);
290 procedure LogDeleteActionExecute(Sender: TObject);
291 procedure LogDeleteActionUpdate(Sender: TObject);
292 procedure SelectTextClearActionExecute(Sender: TObject);
293 procedure NameTextClearActionExecute(Sender: TObject);
294 procedure MailTextClearActionExecute(Sender: TObject);
295 procedure ExitActionExecute(Sender: TObject);
296 procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
297 procedure ExportFavoriteFileAccept(Sender: TObject);
298 procedure SelectItemSaveForHTMLExecute(Sender: TObject);
299 procedure SelectItemSaveForDatExecute(Sender: TObject);
300 procedure TabsSaveActionExecute(Sender: TObject);
301 procedure TabsOpenActionExecute(Sender: TObject);
302 procedure TabAutoSaveActionExecute(Sender: TObject);
303 procedure TabAutoLoadActionExecute(Sender: TObject);
304 procedure BeLogInOutActionExecute(Sender: TObject);
305 procedure BeLogInOutActionUpdate(Sender: TObject);
306 procedure KokomadeActionExecute(Sender: TObject);
307 procedure ZenbuActionExecute(Sender: TObject);
308 procedure KokoResActionExecute(Sender: TObject);
309 procedure KoreCopyExecute(Sender: TObject);
310 procedure SameIDResAnchorActionExecute(Sender: TObject);
311 procedure IndividualAbon1ActionExecute(Sender: TObject);
312 procedure IndividualAbon0ActionExecute(Sender: TObject);
313 procedure AntiIndividualAbonActionExecute(Sender: TObject);
314 procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
315 procedure IndividualAbonID1ActionExecute(Sender: TObject);
316 procedure IndividualAbonID0ActionExecute(Sender: TObject);
317 procedure GikoNaviWebPageActionExecute(Sender: TObject);
318 procedure MonazillaWebPageActionExecute(Sender: TObject);
319 procedure BBS2chWebPageActionExecute(Sender: TObject);
320 procedure GikoFolderOpenActionExecute(Sender: TObject);
321 procedure AboutActionExecute(Sender: TObject);
322 procedure GikoHelpActionExecute(Sender: TObject);
323 procedure WikiFAQWebPageActionExecute(Sender: TObject);
324 procedure ListNumberVisibleActionExecute(Sender: TObject);
325 procedure UpFolderActionExecute(Sender: TObject);
326 procedure UpFolderActionUpdate(Sender: TObject);
327 procedure IconStyleExecute(Sender: TObject);
328 procedure AllItemActionExecute(Sender: TObject);
329 procedure LogItemActionExecute(Sender: TObject);
330 procedure NewItemActionExecute(Sender: TObject);
331 procedure ThreadRangeActionExecute(Sender: TObject);
332 procedure SelectItemActionExecute(Sender: TObject);
333 procedure ThreadEditorActionExecute(Sender: TObject);
334 procedure BoardIEActionExecute(Sender: TObject);
335 procedure SelectItemURLCopyActionExecute(Sender: TObject);
336 procedure SelectItemURLCopyActionUpdate(Sender: TObject);
337 procedure SelectItemNameCopyActionExecute(Sender: TObject);
338 procedure SelectItemNameCopyActionUpdate(Sender: TObject);
339 procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
340 procedure SelectListReloadActionExecute(Sender: TObject);
341 procedure SelectListReloadActionUpdate(Sender: TObject);
342 procedure SelectThreadReloadActionExecute(Sender: TObject);
343 procedure SelectThreadReloadActionUpdate(Sender: TObject);
344 procedure SelectReservActionExecute(Sender: TObject);
345 procedure SelectReservActionUpdate(Sender: TObject);
346 procedure SelectNewRoundNameExecute(Sender: TObject);
347 procedure SelectDeleteRoundExecute(Sender: TObject);
348 procedure BoardFavoriteAddActionExecute(Sender: TObject);
349 procedure BoardFavoriteAddActionUpdate(Sender: TObject);
350 procedure LogFolderOpenActionExecute(Sender: TObject);
351 procedure LogFolderOpenActionUpdate(Sender: TObject);
352 procedure BrowsBoradHeadActionExecute(Sender: TObject);
353 procedure SortActiveColumnActionExecute(Sender: TObject);
354 procedure SortNextColumnActionExecute(Sender: TObject);
355 procedure SortPrevColumnActionExecute(Sender: TObject);
356 procedure StdToolBarVisibleActionExecute(Sender: TObject);
357 procedure AddressBarVisibleActionExecute(Sender: TObject);
358 procedure LinkBarVisibleActionExecute(Sender: TObject);
359 procedure ListToolBarVisibleActionExecute(Sender: TObject);
360 procedure ListNameBarVisibleActionExecute(Sender: TObject);
361 procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
362 procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
363 procedure MsgBarVisibleActionExecute(Sender: TObject);
364 procedure MsgBarCloseActionExecute(Sender: TObject);
365 procedure StatusBarVisibleActionExecute(Sender: TObject);
366 procedure CabinetBBSActionExecute(Sender: TObject);
367 procedure CabinetHistoryActionExecute(Sender: TObject);
368 procedure CabinetFavoriteActionExecute(Sender: TObject);
369 procedure CabinetVisibleActionExecute(Sender: TObject);
370 procedure CabinetCloseActionExecute(Sender: TObject);
371 procedure LargeIconActionExecute(Sender: TObject);
372 procedure SmallIconActionExecute(Sender: TObject);
373 procedure ListIconActionExecute(Sender: TObject);
374 procedure DetailIconActionExecute(Sender: TObject);
375 procedure StopActionExecute(Sender: TObject);
376 procedure ArrangeActionExecute(Sender: TObject);
377 procedure PaneInitActionExecute(Sender: TObject);
378 procedure BrowserTabVisibleActionExecute(Sender: TObject);
379 procedure BrowserTabTopActionExecute(Sender: TObject);
380 procedure BrowserTabBottomActionExecute(Sender: TObject);
381 procedure BrowserTabTabStyleActionExecute(Sender: TObject);
382 procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
383 procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
384 procedure SetFocusForBrowserActionExecute(Sender: TObject);
385 procedure SetFocusForBrowserActionUpdate(Sender: TObject);
386 procedure SetFocusForThreadListActionExecute(Sender: TObject);
387 procedure SetFocusForCabinetActionExecute(Sender: TObject);
388 procedure SetFocusForCabinetActionUpdate(Sender: TObject);
389 procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
390 procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
391 procedure UnSelectedListViewActionExecute(Sender: TObject);
392 procedure KidokuActionExecute(Sender: TObject);
393 procedure MidokuActionExecute(Sender: TObject);
394 procedure AllSelectActionExecute(Sender: TObject);
395 procedure AllSelectActionUpdate(Sender: TObject);
396 procedure ThreadSizeCalcForFileActionExecute(Sender: TObject);
397 private
398 { Private 絎h? }
399 procedure ClearResFilter;
400 procedure SetResRange(range: Integer);
401 procedure SetThreadAreaHorNormal;
402 procedure SetThreadAreaHorizontal(gls : TGikoListState);
403 procedure SetThreadAreaVerNormal;
404 procedure SetThreadAreaVertical(gls : TGikoListState);
405 procedure SetThreadReadProperty(read: Boolean);
406 procedure SelectThreadSaveToFile(dat: Boolean);
407 function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
408 procedure RecalcThreadSize(limit : Integer);
409 public
410 { Public 絎h? }
411 procedure RepaintStatusBar;
412 published
413 { Published 絎h? }
414 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
415 procedure DependActiveCntentActionUpdate(Sender: TObject);
416 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c???????????鴻??????
417 procedure DependActiveCntentLogActionUpdate(Sender: TObject);
418 //! TAction??ctiveList??TBoard?ф???鴻??????
419 procedure DependActiveListTBoardActionUpdate(Sender: TObject);
420 end;
421
422 var
423 GikoDM: TGikoDM;
424
425
426 implementation
427
428 uses
429 Windows, Math, Clipbrd,
430 Giko, GikoSystem, GikoUtil, BoardGroup,
431 FavoriteArrange, Favorite, MojuUtils,
432 Editor, ListSelect, Search, Option, Round,
433 KeySetting, Gesture, Kotehan, ToolBarSetting,
434 ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
435 GikoBayesian, About, ShellAPI,
436 RoundName, RoundData, Menus, ListViewUtils,
437 ThreadControl, GikoMessage;
438
439
440 {$R *.dfm}
441 // *************************************************************************
442 //! TAction??etActiveContent??nil篁ュ??ф???鴻??????
443 // *************************************************************************
444 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
445 begin
446 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
447 end;
448 // *************************************************************************
449 //! TAction??etActiveContent??nil篁ュ????ゃ???違?????c??????
450 // *************************************************************************
451 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
452 begin
453 TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
454 and (GikoForm.GetActiveContent.IsLogFile);
455 end;
456 // *************************************************************************
457 //! TAction??ctiveList??TBoard?ф???鴻??????
458 // *************************************************************************
459 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
460 begin
461 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
462 end;
463 // *************************************************************************
464 //! NG???若??膩???
465 // *************************************************************************
466 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
467 begin
468 //?????鴻?????∫?d??????????≪??????G???若?????<?ゃ???????若????/span>
469 GikoSys.FAbon.EditNGwords;
470 end;
471 // *************************************************************************
472 //! NG???若??茯??粋昭?随???茯??粋昭?随?
473 // *************************************************************************
474 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
475 begin
476 //?????若????絎?茵???紊掩?????????<???祉?若?後?阪??
477 if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
478 MsgBox(GikoForm.Handle, 'NG???若?????<?ゃ??????茯??粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
479 end else begin
480 //???????帥????????祉??荐??
481 GikoForm.RepaintAllTabsBrowser();
482 end;
483 end;
484 // *************************************************************************
485 //! NG???若??茯??粋昭?随?筝??ゅ???鐚?
486 // *************************************************************************
487 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
488 begin
489 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
490 if GikoSys.FAbon.GoBack =false then begin
491 MsgBox(GikoForm.Handle, '筝??ゅ?????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
492 end else begin
493 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
494 RepaintStatusBar;
495 //???????帥????????祉??荐??
496 GikoForm.RepaintAllTabsBrowser();
497 end;
498 end;
499 // *************************************************************************
500 //! NG???若??茯??粋昭?随?筝??ゅ??鐚?
501 // *************************************************************************
502 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
503 begin
504 //筝??ゅ???????粋昭?帥??紊掩?????????<???祉?若?後?阪??
505 if GikoSys.FAbon.GoForward =false then begin
506 MsgBox(GikoForm.Handle, '筝??ゅ????G???若?????<?ゃ??????粋昭?帥??け?????障????', '??????#39;, MB_OK or MB_ICONEXCLAMATION);
507 end else begin
508 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
509 RepaintStatusBar;
510 //???????帥????????祉??荐??
511 GikoForm.RepaintAllTabsBrowser();
512 end;
513 end;
514 // *************************************************************************
515 //! NG???若????紊??眼????緇????鴻???若?帥?鴻???若???贋?医????
516 // *************************************************************************
517 procedure TGikoDM.RepaintStatusBar;
518 var
519 s : String;
520 begin
521 //?鴻???若?帥?鴻??;腓冴??????NG???若?????<?ゃ???????贋??/span>
522 s := GikoSys.FAbon.NGwordname;
523 GikoForm.StatusBar.Panels.Items[GiKo.NGWORDNAME_PANEL].Text := s;
524 //?鴻???若?帥?鴻??;腓冴?泣?ゃ?冴?????泣?ゃ??/span>
525 GikoForm.StatusBar.Panels[GiKo.NGWORDNAME_PANEL].Width
526 := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
527 GikoForm.StatusBarResize(nil);
528 end;
529 // *************************************************************************
530 //! ?≪?????鴻???若??;腓冴?????????≪?????鴻?悟Щ??????
531 // *************************************************************************
532 procedure TGikoDM.MoveToActionExecute(Sender: TObject);
533 var
534 URL: string;
535 idx: Integer;
536 begin
537 //?≪?????鴻?潟?潟?????????鴻????URL????緇?
538 URL := Trim(GikoForm.AddressComboBox.Text);
539 //URL??Щ??
540 GikoForm.MoveToURL(URL);
541 //篁ヤ???絮ユ???????
542 idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
543 if idx = -1 then begin
544 GikoForm.AddressComboBox.Items.Insert(0, URL);
545 if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
546 GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
547 end else begin
548 GikoForm.AddressComboBox.Items.Delete(idx);
549 GikoForm.AddressComboBox.Items.Insert(0, URL);
550 end;
551 end;
552 // *************************************************************************
553 //! ??羂????ャ????申?????ゃ?≪???違??????span>
554 // *************************************************************************
555 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
556 begin
557 GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
558 end;
559 // *************************************************************************
560 //! ??羂????ャ?????雁?????ゃ?≪???違??????span>
561 // *************************************************************************
562 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
563 var
564 Dlg: TFavoriteArrangeDialog;
565 begin
566 Dlg := TFavoriteArrangeDialog.Create(GikoForm);
567 try
568 Dlg.ShowModal;
569 finally
570 Dlg.Release;
571 end;
572 //???潟?????若???贋?違??篌?????
573 PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
574 end;
575 // *************************************************************************
576 //! ?????若????????????
577 // *************************************************************************
578 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
579 var
580 node : TTreeNode;
581 begin
582 node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
583 try
584 //???若????膓???????????若????膰????????
585 while node <> nil do begin
586 if node.HasChildren then
587 node.Expanded := False;
588 node := node.GetNext;
589 end;
590 except
591 end;
592 end;
593 // *************************************************************************
594 //! ??羂????ャ??????????膩???????
595 // *************************************************************************
596 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
597 var
598 node : TTreeNode;
599 begin
600
601 if GikoForm.ClickNode = nil then
602 Exit;
603 if GikoForm.ClickNode.IsFirstNode then
604 Exit;
605 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
606 Exit;
607 GikoForm.FavoriteTreeView.ReadOnly := False;
608 if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
609 node := GikoForm.ClickNode.Parent;
610 while node <> nil do begin
611 node.Expanded := True;
612 node := node.Parent;
613 end;
614 GikoForm.ClickNode.EditText;
615 end else begin
616 GikoForm.ClickNode.Text := InputBox( '?????????#39;, '??羂????ャ?????違???????????ュ?????????????', GikoForm.ClickNode.Text );
617 end;
618 //?贋?違????????????????
619 FavoriteDM.Modified := true;
620 GikoForm.SetLinkBar;
621 end;
622 // *************************************************************************
623 //! ?違?????羂????ャ??????????????篏???????
624 // *************************************************************************
625 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
626 var
627 NewFavFolder: TFavoriteFolder;
628 Node: TTreeNode;
629 begin
630
631 if GikoForm.ClickNode = nil then
632 Exit;
633
634 try
635 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
636 GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
637 GikoForm.ClickNode := GikoForm.ClickNode.Parent;
638 end;
639
640 NewFavFolder := TFavoriteFolder.Create;
641 Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?違????????????', NewFavFolder);
642 Node.ImageIndex := 14;
643 Node.SelectedIndex := 14;
644 // FClickNode.Selected.Expanded := True;
645 GikoForm.FavoriteTreeView.Selected := Node;
646 GikoForm.ClickNode := Node;
647 //?贋?違????????????????
648 FavoriteDM.Modified := true;
649 FavoriteTreeViewRenameAction.Execute;
650 finally
651 end;
652
653 end;
654 // *************************************************************************
655 //! ??????羂????ャ???????ゃ????
656 // *************************************************************************
657 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
658 const
659 DEL_LINK_MSG = '?????潟?????????潟?????主???????????с???????ゃ?????????????с????鐚?';
660 DEL_MSG = '??^0???????ゃ???障?????????????с????鐚?';
661 DEL_TITLE = '???ょ∈茯?';
662 begin
663
664 if GikoForm.ClickNode = nil then
665 Exit;
666 if GikoForm.ClickNode.IsFirstNode then
667 Exit;
668 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
669 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
670 if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
671 Exit;
672 end else begin
673 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
674 Exit;
675 end;
676 end;
677
678 GikoForm.ClickNode.Delete;
679 //?贋?違????????????????
680 FavoriteDM.Modified := true;
681
682 GikoForm.SetLinkBar;
683
684 end;
685 // *************************************************************************
686 //! ???????????????ャ?c????????羂????ャ????????????span>
687 // *************************************************************************
688 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
689 Sender: TObject);
690 begin
691 GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
692 end;
693 // *************************************************************************
694 //! ?御??????????????羂????ャ?????????潟???若??????
695 // *************************************************************************
696 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
697 var
698 FavThread: TFavoriteThreadItem;
699 FavBoard: TFavoriteBoardItem;
700 shiftDown: Boolean;
701 begin
702 if (GikoForm.ClickNode = nil) then Exit;
703
704 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
705
706 if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
707 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
708 if FavThread.Item <> nil then
709 GikoForm.DownloadContent(FavThread.Item, shiftDown);
710 end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
711 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
712 GikoForm.DownloadList(FavBoard.Item, shiftDown);
713 end;
714
715 end;
716 // *************************************************************************
717 //! ?御?????????????鴻????????RL???潟???若????
718 // *************************************************************************
719 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
720 begin
721
722 if GikoForm.ClickNode = nil then Exit;
723
724 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
725 Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
726 end;
727 end;
728 // *************************************************************************
729 //! ?御?????????????帥?????????潟???若????
730 // *************************************************************************
731 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
732 begin
733
734 if GikoForm.ClickNode = nil then Exit;
735
736 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
737 Clipboard.AsText :=
738 TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
739 end;
740 end;
741 // *************************************************************************
742 //! ?御?????????????鴻??????????????RL???潟???若????
743 // *************************************************************************
744 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
745 Sender: TObject);
746 var
747 favItem : TFavoriteItem;
748 begin
749
750 if GikoForm.ClickNode = nil then Exit;
751
752 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
753 favItem := TFavoriteItem(GikoForm.ClickNode.Data);
754 Clipboard.AsText := favItem.GetItemTitle + #13#10 +
755 favItem.URL + #13#10;
756 end;
757
758 end;
759 // *************************************************************************
760 //! ?御?????????????鴻???????????ゃ????
761 // *************************************************************************
762 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
763 const
764 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
765 DEL_TITLE = '???ょ∈茯?';
766 var
767 ThreadItem: TThreadItem;
768 FavThread: TFavoriteThreadItem;
769 begin
770
771 if GikoForm.ClickNode = nil then Exit;
772 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
773
774 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
775 ThreadItem := FavThread.Item;
776
777 try
778 if GikoSys.Setting.DeleteMsg then begin
779 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
780 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
781 Exit;
782 end;
783
784 GikoForm.DeleteHistory(ThreadItem);
785 GikoForm.DeleteTab(ThreadItem);
786 ThreadItem.DeleteLogFile;
787
788 GikoForm.ListView.Refresh;
789 finally
790 end;
791
792 end;
793 // *************************************************************************
794 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
795 // *************************************************************************
796 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
797 Sender: TObject);
798 var
799 threadItem : TThreadItem;
800 begin
801
802 if GikoForm.ClickNode = nil then Exit;
803
804 if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
805
806 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
807 if threadItem = nil then
808 Exit;
809 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
810
811 end;
812 end;
813 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
814 procedure TGikoDM.ClearResFilter;
815 var
816 FilterList : TStringList;
817 begin
818 // ???c???炊??絖?????腥冴??????
819 FilterList := TStringList.Create;
820 try
821 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
822 GikoSys.FSelectResFilter.Reverse := False;
823 finally
824 FilterList.Free;
825 end;
826 GikoForm.SelectResWord := '';
827 end;
828 // *************************************************************************
829 //! ???鴻??;腓榊??蚊??荐??????
830 // *************************************************************************
831 procedure TGikoDM.SetResRange(range: Integer);
832 begin
833 if GikoSys.ResRange <> range then begin
834 GikoSys.ResRange := range;
835 // ???c???炊??絖?????腥冴??????
836 ClearResFilter;
837 GikoForm.RepaintAllTabsBrowser();
838 end;
839 end;
840 // *************************************************************************
841 //! ????00???鴻???粋;腓?/span>
842 // *************************************************************************
843 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
844 begin
845 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
846 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
847
848 GikoForm.ResRangeMenuSelect := 100;
849 OnlyAHundredResAction.Checked := True;
850 //??茵?ず膀??蚊??荐??????
851 SetResRange(100);
852 end;
853 // *************************************************************************
854 //! ??????鴻???粋;腓?/span>
855 // *************************************************************************
856 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
857 begin
858 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
859 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
860
861 GikoForm.ResRangeMenuSelect := Ord( grrKoko );
862 OnlyKokoResAction.Checked := True;
863
864 //??茵?ず膀??蚊??荐??????
865 SetResRange(Ord( grrKoko ));
866 end;
867 // *************************************************************************
868 //! ?亥?????鴻???粋;腓?/span>
869 // *************************************************************************
870 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
871 begin
872 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
873 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
874
875 GikoForm.ResRangeMenuSelect := Ord( grrNew );
876 OnlyNewResAction.Checked := True;
877
878 //??茵?ず膀??蚊??荐??????
879 SetResRange(Ord( grrNew ));
880 end;
881 // *************************************************************************
882 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
883 // *************************************************************************
884 procedure TGikoDM.SetThreadAreaHorNormal;
885 begin
886 //??絽梧;腓冴??????
887 if GikoForm.ActiveContent <> nil then
888 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
889 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
890 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
891 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
892 GikoSys.Setting.ListWidthState := glsNormal;
893 if GikoForm.ActiveContent <> nil then
894 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
895 end;
896 // *************************************************************************
897 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
898 // *************************************************************************
899 procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
900 begin
901 if GikoForm.ActiveContent <> nil then
902 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
903 if GikoSys.Setting.ListWidthState = glsNormal then
904 GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
905 //??紊ц;腓?/span>
906 if (gls = glsMax) then begin
907 GikoForm.ViewPanel.Width := 1;
908 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
909 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
910 GikoSys.Setting.ListWidthState := glsMax;
911 end else if (gls = glsMin) then begin
912 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
913 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
914 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
915 GikoSys.Setting.ListWidthState := glsMin;
916 end;
917 if GikoForm.ActiveContent <> nil then
918 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
919 end;
920 // *************************************************************************
921 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
922 // *************************************************************************
923 procedure TGikoDM.SetThreadAreaVerNormal;
924 begin
925 //??絽梧;腓冴??????
926 if GikoForm.ActiveContent <> nil then
927 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
928 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
929 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
930 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
931 GikoSys.Setting.ListHeightState := glsNormal;
932 if GikoForm.ActiveContent <> nil then
933 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
934 end;
935 // *************************************************************************
936 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
937 // *************************************************************************
938 procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
939 begin
940 if GikoForm.ActiveContent <> nil then
941 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
942 if GikoSys.Setting.ListHeightState = glsNormal then
943 GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
944 if (gls = glsMin) then begin
945 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
946 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
947 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
948 GikoSys.Setting.ListHeightState := glsMin;
949 end else if (gls = glsMax) then begin
950 GikoForm.ViewPanel.Height := 1;
951 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
952 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
953 GikoSys.Setting.ListHeightState := glsMax;
954 end;
955 if GikoForm.ActiveContent <> nil then
956 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
957 end;
958 // *************************************************************************
959 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
960 // *************************************************************************
961 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
962 begin
963 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
964 case GikoSys.Setting.ListWidthState of
965 glsMax: begin
966 //??絽梧;腓冴??????
967 SetThreadAreaHorNormal;
968 end;
969 glsMin, glsNormal: begin
970 //??紊ц;腓冴??????
971 SetThreadAreaHorizontal(glsMax);
972 end;
973 end;
974 end else begin
975 case GikoSys.Setting.ListHeightState of
976 glsMax: begin
977 //??絽梧;腓冴??????
978 SetThreadAreaVerNormal;
979 end;
980 glsMin, glsNormal: begin
981 //??紊ц;腓冴??????
982 SetThreadAreaVertical(glsMax);
983 end;
984 end;
985 end;
986 end;
987 // *************************************************************************
988 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
989 // *************************************************************************
990 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
991 begin
992 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
993 case GikoSys.Setting.ListWidthState of
994 glsMax, glsNormal: begin
995 //??絨頫?ず??????
996 SetThreadAreaHorizontal(glsMin);
997 end;
998 glsMin: begin
999 //??絽梧;腓冴??????
1000 SetThreadAreaHorNormal;
1001 end;
1002 end;
1003 end else begin
1004 case GikoSys.Setting.ListHeightState of
1005 glsMax, glsNormal: begin
1006 //??絨頫?ず??????
1007 SetThreadAreaVertical(glsMin);
1008 end;
1009 glsMin: begin
1010 //??絽梧;腓冴??????
1011 SetThreadAreaVerNormal;
1012 end;
1013 end;
1014 end;
1015 end;
1016 // *************************************************************************
1017 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1018 // *************************************************************************
1019 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1020 begin
1021 GikoForm.BrowserMovement('top');
1022 end;
1023 // *************************************************************************
1024 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1025 // *************************************************************************
1026 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1027 begin
1028 GikoForm.BrowserMovement('bottom');
1029 end;
1030 // *************************************************************************
1031 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1032 // *************************************************************************
1033 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1034 begin
1035 GikoForm.BrowserMovement('new');
1036 end;
1037 // *************************************************************************
1038 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1039 // *************************************************************************
1040 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1041 begin
1042 GikoForm.BrowserMovement('koko');
1043 end;
1044 // *************************************************************************
1045 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1046 // *************************************************************************
1047 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1048 begin
1049 ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1050 and (GikoForm.GetActiveContent.IsLogFile)
1051 and (GikoForm.GetActiveContent.Kokomade <> -1);
1052 end;
1053 // *************************************************************************
1054 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1055 // *************************************************************************
1056 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1057 var
1058 Editor: TEditorForm;
1059 Item: TThreadItem;
1060 begin
1061 Item := GikoForm.GetActiveContent;
1062 if Item = nil then Exit;
1063 Editor := TEditorForm.Create(GikoForm.GetMainForm);
1064 Editor.SetThreadItem(Item);
1065 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
1066 Editor.Show;
1067 Editor.BodyEdit.SetFocus;
1068 end;
1069 // *************************************************************************
1070 //! ?鴻???????????吟?ц;腓冴????
1071 // *************************************************************************
1072 procedure TGikoDM.IEActionExecute(Sender: TObject);
1073 begin
1074 ShowThreadAction.Execute;
1075 end;
1076 // *************************************************************************
1077 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1078 // *************************************************************************
1079 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1080 var
1081 ThreadItem: TThreadItem;
1082 begin
1083 ThreadItem := GikoForm.GetActiveContent;
1084 if ThreadItem = nil then Exit;
1085 GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1086 end;
1087 // *************************************************************************
1088 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1089 // *************************************************************************
1090 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1091 var
1092 ThreadItem: TThreadItem;
1093 begin
1094 ThreadItem := GikoForm.GetActiveContent;
1095 if ThreadItem = nil then Exit;
1096 GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1097 end;
1098 // *************************************************************************
1099 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1100 // *************************************************************************
1101 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1102 var
1103 s: string;
1104 begin
1105 s := '';
1106 if TObject(GikoForm.GetActiveContent) is TBoard then
1107 s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1108 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1109 s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1110 if s <> '' then
1111 Clipboard.AsText := s;
1112 end;
1113 // *************************************************************************
1114 //! ?上??;腓冴?????????鴻???????????潟???若????
1115 // *************************************************************************
1116 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1117 var
1118 s: string;
1119 begin
1120 s := '';
1121 if TObject(GikoForm.GetActiveContent) is TBoard then
1122 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1123 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1124 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1125 if s <> '' then
1126 Clipboard.AsText := s;
1127 end;
1128 // *************************************************************************
1129 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1130 // *************************************************************************
1131 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1132 var
1133 s: string;
1134 begin
1135 s := '';
1136 if TObject(GikoForm.GetActiveContent) is TBoard then
1137 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1138 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1139 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1140 if s <> '' then
1141 Clipboard.AsText := s;
1142 end;
1143 // *************************************************************************
1144 //! 茵?ず???????????鴻?????????????潟???若??????
1145 // *************************************************************************
1146 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1147 var
1148 ThreadItem: TThreadItem;
1149 shiftDown: Boolean;
1150 begin
1151 ThreadItem := GikoForm.GetActiveContent;
1152 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1153 if ThreadItem <> nil then
1154 GikoForm.DownloadContent(ThreadItem, shiftDown);
1155 end;
1156 // *************************************************************************
1157 //! ?上?????????????帥??????????
1158 // *************************************************************************
1159 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1160 var
1161 idx: Integer;
1162 begin
1163 idx := GikoForm.BrowserTab.TabIndex;
1164 if idx <> -1 then begin
1165 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1166 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1167 end;
1168 end;
1169 end;
1170 // *************************************************************************
1171 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1172 // *************************************************************************
1173 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1174 begin
1175 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1176 end;
1177 // *************************************************************************
1178 //! ?上?????????????帥??篁ュ?????????
1179 // *************************************************************************
1180 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1181 var
1182 i: Integer;
1183 idx: Integer;
1184 begin
1185 idx := GikoForm.BrowserTab.TabIndex;
1186 if idx = -1 then Exit;
1187 GikoForm.BrowserTab.Tabs.BeginUpdate;
1188 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1189 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1190 GikoForm.BrowserTab.Tabs.Delete(i);
1191 end;
1192 if idx > 0 then begin
1193 for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1194 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1195 GikoForm.BrowserTab.Tabs.Delete(i);
1196 end;
1197 end;
1198 GikoForm.BrowserTab.Tabs.EndUpdate;
1199 end;
1200 // *************************************************************************
1201 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1202 // *************************************************************************
1203 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1204 begin
1205 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1206 end;
1207 // *************************************************************************
1208 //! ???????帥??????????
1209 // *************************************************************************
1210 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1211 var
1212 i: Integer;
1213 begin
1214 if GikoSys.Setting.ShowDialogForAllTabClose then
1215 if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1216 Exit;
1217
1218 GikoForm.ActiveContent := nil;
1219 GikoForm.BrowserNullTab.Thread := nil;
1220 GikoForm.BrowserTab.OnChange := nil;
1221 GikoForm.BrowserTab.Tabs.BeginUpdate;
1222 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1223 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1224 end;
1225 GikoForm.BrowserTab.Tabs.Clear;
1226 GikoForm.BrowserTab.Tabs.EndUpdate;
1227 GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1228 GikoForm.SetContent(GikoForm.BrowserNullTab);
1229 GikoForm.Caption := CAPTION_NAME ;
1230 end;
1231 // *************************************************************************
1232 //! ?上?????????????帥?????鴻???????????ゃ????
1233 // *************************************************************************
1234 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1235 const
1236 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1237 DEL_TITLE = '???ょ∈茯?';
1238 var
1239 idx: Integer;
1240 ThreadItem: TThreadItem;
1241 begin
1242 idx := GikoForm.BrowserTab.TabIndex;
1243 if idx <> -1 then begin
1244 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1245 ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1246 if GikoSys.Setting.DeleteMsg then
1247 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1248 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1249 Exit;
1250 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1251 ThreadItem.DeleteLogFile;
1252 if ThreadItem.ParentBoard = GikoForm.ActiveList then
1253 GikoForm.ListView.Refresh;
1254 end;
1255 end;
1256 end;
1257 // *************************************************************************
1258 //! 筝???窪???帥?????御??????
1259 // *************************************************************************
1260 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1261 begin
1262 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1263 GikoForm.BrowserTab.TabIndex := 0;
1264 GikoForm.BrowserTab.OnChange(nil);
1265 end;
1266 end;
1267 // *************************************************************************
1268 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1269 // *************************************************************************
1270 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1271 begin
1272 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1273 and (GikoForm.BrowserTab.TabIndex <> 0);
1274 end;
1275 // *************************************************************************
1276 //! 綏????帥?????御??????
1277 // *************************************************************************
1278 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1279 begin
1280 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1281 if GikoForm.BrowserTab.TabIndex = -1 then begin
1282 GikoForm.BrowserTab.TabIndex := 0;
1283 GikoForm.BrowserTab.OnChange(nil);
1284 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1285 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1286 GikoForm.BrowserTab.OnChange(nil);
1287 end;
1288 end;
1289 end;
1290 // *************************************************************************
1291 //! ?潟???帥?????御??????
1292 // *************************************************************************
1293 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1294 begin
1295 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1296 if GikoForm.BrowserTab.TabIndex = -1 then begin
1297 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1298 GikoForm.BrowserTab.OnChange(nil);
1299 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1300 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1301 GikoForm.BrowserTab.OnChange(nil);
1302 end;
1303 end;
1304 end;
1305 // *************************************************************************
1306 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1307 // *************************************************************************
1308 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1309 begin
1310 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1311 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1312 end;
1313 // *************************************************************************
1314 //! 筝???劻???帥?????御??????
1315 // *************************************************************************
1316 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1317 begin
1318 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1319 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1320 GikoForm.BrowserTab.OnChange(nil);
1321 end;
1322 end;
1323 // *************************************************************************
1324 //! ?御?????????????鴻??????????羂????ャ????申??
1325 // *************************************************************************
1326 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1327 begin
1328 if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1329 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1330 end;
1331 // *************************************************************************
1332 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1333 // *************************************************************************
1334 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1335 begin
1336 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1337 and (GikoForm.ListView.SelCount > 0);
1338 end;
1339 // *************************************************************************
1340 //! ???鴻????絎鴻??腟???莨若??
1341 // *************************************************************************
1342 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1343 var
1344 Dlg: TListSelectDialog;
1345 FilterList : TStringList;
1346 idx : Integer;
1347 begin
1348 Dlg := TListSelectDialog.Create(GikoForm);
1349 try
1350 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1351 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1352 Dlg.ShowModal;
1353 if Dlg.ModalResult = mrOK then begin
1354 SelectResAction.Checked := True;
1355 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1356 // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1357 ResRangeAction.Execute;
1358 end else begin
1359 GikoSys.ResRange := Ord( grrSelect );
1360
1361 // ??緇???┃絎???????????荀?????????span>
1362 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1363
1364 // 罎?膣√吋罩眼???贋??/span>
1365 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1366 if idx <> -1 then
1367 GikoSys.Setting.SelectTextList.Delete(idx);
1368 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1369 while Dlg.SelectComboBox.Items.Count > 100 do begin
1370 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1371 end;
1372
1373 try
1374 if GikoForm.SelectComboBoxPanel.Visible then
1375 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1376 except
1377 end;
1378
1379 // ???c???帥??┃絎?
1380 FilterList := TStringList.Create;
1381 try
1382 GikoSys.FSelectResFilter.Reverse := True;
1383 FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1384 FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1385
1386 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1387 finally
1388 FilterList.Free;
1389 end;
1390 GikoForm.RepaintAllTabsBrowser();
1391 end;
1392 end else begin
1393 // ???c?潟?祉??/span>
1394 if GikoSys.ResRange <> Ord( grrSelect ) then
1395 ResRangeAction.Execute;
1396 end;
1397 finally
1398 Dlg.Release;
1399 end;
1400
1401 end;
1402 // *************************************************************************
1403 //! ?????????鴻??茵?ず????
1404 // *************************************************************************
1405 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1406 begin
1407 if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1408 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1409
1410 GikoForm.ResRangeMenuSelect := Ord( grrAll );
1411 AllResAction.Checked := True;
1412
1413 //??茵?ず膀??蚊??荐??????
1414 SetResRange(Ord( grrAll ));
1415 end;
1416 // *************************************************************************
1417 //! ???鴻??;腓榊??蚊??荐??
1418 // *************************************************************************
1419 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1420 begin
1421 case GikoForm.ResRangeMenuSelect of
1422 Ord( grrAll ): AllResAction.Execute;
1423 Ord( grrKoko ): OnlyKokoResAction.Execute;
1424 Ord( grrNew ): OnlyNewResAction.Execute;
1425 100: OnlyAHundredResAction.Execute;
1426 end;
1427
1428 end;
1429 // *************************************************************************
1430 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1431 // *************************************************************************
1432 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1433 begin
1434 GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1435 end;
1436 // *************************************************************************
1437 //! ??絎???????垩?????鴻?????/span>
1438 // *************************************************************************
1439 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1440 var
1441 str: string;
1442 res: integer;
1443 begin
1444 str := '1';
1445 if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1446 str := ZenToHan(str);
1447 res := StrToIntDef(str, -1);
1448 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1449 GikoForm.ActiveContent.Move(IntToStr(res));
1450 SetFocusForBrowserAction.Execute;
1451 end else if res > GikoForm.GetActiveContent.Count then begin
1452 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1453 SetFocusForBrowserAction.Execute;
1454 end;
1455 end;
1456 end;
1457 // *************************************************************************
1458 //! ?≪?????c?????帥???????潟????????
1459 // *************************************************************************
1460 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1461 var
1462 i: Integer;
1463 idx: Integer;
1464 begin
1465 idx := GikoForm.BrowserTab.TabIndex;
1466 if idx = -1 then Exit;
1467 GikoForm.BrowserTab.Tabs.BeginUpdate;
1468 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1469 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1470 GikoForm.BrowserTab.Tabs.Delete(i);
1471 end;
1472 GikoForm.BrowserTab.Tabs.EndUpdate;
1473 end;
1474 // *************************************************************************
1475 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1476 // *************************************************************************
1477 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1478 begin
1479 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1480 end;
1481 // *************************************************************************
1482 //! ?≪?????c?????帥??????綏?????????
1483 // *************************************************************************
1484 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1485 var
1486 i: Integer;
1487 idx: Integer;
1488 begin
1489 idx := GikoForm.BrowserTab.TabIndex;
1490 if idx = -1 then Exit;
1491 GikoForm.BrowserTab.Tabs.BeginUpdate;
1492 if idx > 0 then begin
1493 for i := idx - 1 downto 0 do begin
1494 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1495 GikoForm.BrowserTab.Tabs.Delete(i);
1496 end;
1497 end;
1498 GikoForm.BrowserTab.Tabs.EndUpdate;
1499 end;
1500 ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1501 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1502 begin
1503 end;
1504 // *************************************************************************
1505 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1506 // *************************************************************************
1507 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1508 var
1509 chk: TObject;
1510 begin
1511
1512 if GikoForm.SearchDialog = nil then begin
1513 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1514 chk := GikoForm.GetActiveList
1515 else
1516 chk := nil;
1517
1518 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1519 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1520 end;
1521
1522 try
1523 GikoForm.SearchDialog.Show;
1524 except
1525 end;
1526 end;
1527 // *************************************************************************
1528 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1529 // *************************************************************************
1530 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1531 var
1532 Dlg: TOptionDialog;
1533 begin
1534 Dlg := TOptionDialog.Create(GikoForm);
1535 try
1536 Dlg.ShowModal;
1537 finally
1538 Dlg.Release;
1539 end;
1540 end;
1541 // *************************************************************************
1542 //! 綏≦?????ゃ?≪???違??茵?ず????
1543 // *************************************************************************
1544 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1545 var
1546 Dlg: TRoundDialog;
1547 begin
1548 Dlg := TRoundDialog.Create(GikoForm);
1549 try
1550 Dlg.ShowModal;
1551 finally
1552 Dlg.Release;
1553 end;
1554 end;
1555 // *************************************************************************
1556 //! ???取┃絎????ゃ?≪???違??????span>
1557 // *************************************************************************
1558 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1559 var
1560 Dlg: TKeySettingForm;
1561 begin
1562 Dlg := TKeySettingForm.Create(GikoForm);
1563 try
1564 if Dlg.ShowModal = mrOk then begin
1565 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1566 GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.KEY_SETTING_FILE_NAME);
1567 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1568 end;
1569
1570 finally
1571 Dlg.Release;
1572 MouseGesture.UnHook;
1573 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1574 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1575 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1576 if GikoSys.Setting.GestureEnabled then begin
1577 GikoSys.Setting.Gestures.ClearGesture;
1578 GikoSys.Setting.Gestures.LoadGesture(
1579 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1580 MouseGesture.SetHook( GikoForm.Handle );
1581 end;
1582 end;
1583 end;
1584 // *************************************************************************
1585 //! ???取┃絎????ゃ?≪???違??????span>
1586 // *************************************************************************
1587 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1588 var
1589 Dlg: TKotehanDialog;
1590 begin
1591 Dlg := TKotehanDialog.Create(GikoForm);
1592 try
1593 Dlg.ShowModal;
1594 finally
1595 Dlg.Release;
1596 end;
1597 end;
1598 // *************************************************************************
1599 //! ???若?????取┃絎????ゃ?≪???違??????span>
1600 // *************************************************************************
1601 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1602 var
1603 Dlg: TToolBarSettingDialog;
1604 i: Integer;
1605 begin
1606 Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1607 try
1608 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1609 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1610 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1611 case GikoForm.ToolBarSettingSender of
1612 tssMain: Dlg.ToolBarIndex := 0;
1613 tssList: Dlg.ToolBarIndex := 1;
1614 tssBrowser: Dlg.ToolBarIndex := 2;
1615 end;
1616 if Dlg.ShowModal = mrOK then begin
1617 GikoForm.SetToolBarPopup;
1618
1619 //?????????荐??????????????????????????c?????????
1620 for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1621 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1622 GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1623 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1624 GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1625 end;
1626 for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1627 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1628 GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1629 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1630 GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1631 end;
1632 for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1633 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1634 GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1635 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1636 GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1637 end;
1638
1639 SaveToolBarSetting(GikoForm.StdToolBar);
1640 SaveToolBarSetting(GikoForm.ListToolBar);
1641 //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1642 GikoForm.SetSelectComboBox;
1643 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1644 SaveToolBarSetting(GikoForm.BrowserToolBar);
1645 end;
1646 finally
1647 Dlg.Release;
1648 GikoForm.ToolBarSettingSender := tssNone;
1649 end;
1650 end;
1651 // *************************************************************************
1652 //! ???ャ?若??
1653 // *************************************************************************
1654 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1655 begin
1656 GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1657 end;
1658 ////////////////////////////////???若???障?с?????障??/////////////////////
1659 // *************************************************************************
1660 //! ?鴻??????筝?荀с???????潟???若??????
1661 // *************************************************************************
1662 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1663 var
1664 Board: TBoard;
1665 TmpTreeNode: TTreeNode;
1666 begin
1667 TmpTreeNode := GikoForm.ClickNode;
1668 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1669 Board := nil;
1670
1671 if TObject(TmpTreeNode.Data) is TBoard then
1672 Board := TBoard(TmpTreeNode.Data)
1673 else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1674 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1675
1676 if Board <> nil then
1677 GikoForm.DownloadList(Board);
1678 end;
1679 // *************************************************************************
1680 //! ?御?????????鴻?????????????潟???若??????
1681 // *************************************************************************
1682 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1683 var
1684 ThreadItem: TThreadItem;
1685 TmpTreeNode: TTreeNode;
1686 begin
1687 TmpTreeNode := GikoForm.ClickNode;
1688 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1689 ThreadItem := nil;
1690
1691 if TObject(TmpTreeNode.Data) is TThreadItem then
1692 ThreadItem := TThreadItem(TmpTreeNode.Data)
1693 else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1694 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1695
1696 if ThreadItem <> nil then
1697 GikoForm.DownloadContent(ThreadItem);
1698 end;
1699 // *************************************************************************
1700 //! ?御?????????帥??RL???潟???若????
1701 // *************************************************************************
1702 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1703 var
1704 TmpTreeNode: TTreeNode;
1705 s: string;
1706 begin
1707 TmpTreeNode := GikoForm.ClickNode;
1708 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1709 if TObject(TmpTreeNode.Data) is TBoard then begin
1710 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1711 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1712 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1713 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1714 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1715 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1716 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1717 end;
1718 Clipboard.AsText := s;
1719 end;
1720 // *************************************************************************
1721 //! ?御?????????帥????????RL???潟???若????
1722 // *************************************************************************
1723 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1724 var
1725 TmpTreeNode: TTreeNode;
1726 s: string;
1727 begin
1728 TmpTreeNode := GikoForm.ClickNode;
1729 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1730 if TObject(TmpTreeNode.Data) is TBoard then begin
1731 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1732 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1733 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1734 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1735 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1736 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1737 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1738 end;
1739 Clipboard.AsText := s;
1740 end;
1741 // *************************************************************************
1742 //! ??羂????ャ????申??????
1743 // *************************************************************************
1744 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1745 begin
1746 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1747 end;
1748 // *************************************************************************
1749 //! ?水??罎?膣?/span>
1750 // *************************************************************************
1751 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1752 var
1753 s : String;
1754 msg : String;
1755 CurItem : TTreeNode;
1756 next : boolean;
1757 begin
1758 if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1759 next := true;
1760 while next do begin
1761 if GikoForm.TreeView.Selected = nil then
1762 CurItem := GikoForm.TreeView.Items.GetFirstNode
1763 else begin
1764 CurItem := GikoForm.TreeView.Selected.GetNext;
1765 if CurItem = nil then
1766 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1767 end;
1768 while CurItem <> nil do begin
1769 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1770 break;
1771 end;
1772 CurItem := CurItem.GetNext;
1773 end;
1774 try
1775 if CurItem = nil then begin
1776 msg := '???????祉???障????鐚?';
1777 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1778 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1779 end else begin
1780 Exit;
1781 end;
1782 GikoForm.TreeView.Select(CurItem);
1783 GikoForm.TreeView.SetFocus;
1784 end else begin
1785 GikoForm.TreeView.Select(CurItem);
1786 GikoForm.TreeView.SetFocus;
1787 msg := '罨<??????障????鐚?';
1788 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1789 next := true;
1790 end else begin
1791 next := false;
1792 end;
1793 end;
1794
1795 except
1796 Exit;
1797 end;
1798 end;
1799 end;
1800 end;
1801 // *************************************************************************
1802 //! ?御?????????帥?????????潟???若????
1803 // *************************************************************************
1804 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1805 var
1806 s: string;
1807 begin
1808 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1809 s := GikoForm.ClickNode.Text;
1810 Clipboard.AsText := s;
1811 end;
1812 ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1813 // *************************************************************************
1814 //! ???違?ゃ?鰹????違?≪??????????
1815 // *************************************************************************
1816 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1817 var
1818 TmpCursor: TCursor;
1819 msg : String;
1820 begin
1821 if GikoSys.Dolib.Connected then begin
1822 //???違?≪????
1823 GikoSys.Dolib.Disconnect;
1824 LoginAction.Checked := False;
1825 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1826 LoginAction.Caption := '???違?ゃ??&L)';
1827 end else begin
1828 TmpCursor := GikoForm.ScreenCursor;
1829 GikoForm.ScreenCursor := crHourGlass;
1830 try
1831 //??絽吾???違?ゃ??/span>
1832 if not GikoSys.Setting.ForcedLogin then begin
1833 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1834 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1835 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1836 if GikoSys.Setting.ReadProxy then begin
1837 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1838 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1839 end else begin
1840 GikoSys.Dolib.ProxyAddress := '';
1841 GikoSys.Dolib.ProxyPort := 0;
1842 end;
1843 if GikoSys.Dolib.Connect then begin
1844 LoginAction.Checked := True;
1845 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1846 LoginAction.Caption := '???違?≪????(&L)';
1847 //LoginToolButton.Style := tbsCheck;
1848 end else begin
1849 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1850 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1851 GikoForm.PlaySound('Error');
1852 LoginAction.Checked := False;
1853 //LoginToolButton.Down := False;
1854 ///LoginToolButton.Style := tbsButton;
1855 end;
1856 end else begin
1857 msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1858 + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1859 + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1860 if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1861 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1862 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1863 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1864 if GikoSys.Setting.ReadProxy then begin
1865 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1866 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1867 end else begin
1868 GikoSys.Dolib.ProxyAddress := '';
1869 GikoSys.Dolib.ProxyPort := 0;
1870 end;
1871 //SSL??絎括??七?吟???違?ゃ??/span>
1872 GikoSys.Dolib.ForcedConnect;
1873 if GikoSys.Dolib.Connect then begin
1874 LoginAction.Checked := True;
1875 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1876 LoginAction.Caption := '???違?≪????(&L)';
1877 //LoginToolButton.Style := tbsCheck;
1878 end else begin
1879 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1880 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1881 GikoForm.PlaySound('Error');
1882 LoginAction.Checked := False;
1883 //LoginToolButton.Down := False;
1884 //LoginToolButton.Style := tbsButton;
1885 end;
1886 end else begin
1887 LoginAction.Checked := False;
1888 //LoginToolButton.Down := False;
1889 //LoginToolButton.Style := tbsButton;
1890 end;
1891 end;
1892 finally
1893 GikoForm.ScreenCursor := TmpCursor;
1894 end;
1895 end;
1896 end;
1897 // *************************************************************************
1898 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1899 // *************************************************************************
1900 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1901 var
1902 Dlg: TNewBoardDialog;
1903 Msg: string;
1904 begin
1905 if GikoForm.EditorFormExists then begin
1906 Msg := '???鴻?????c?帥???????????????????';
1907 MsgBox(GikoForm.Handle, Msg, '??????#39;, MB_OK or MB_ICONSTOP);
1908 Exit;
1909 end;
1910 Dlg := TNewBoardDialog.Create(GikoForm);
1911 try
1912 Dlg.ShowModal;
1913 finally
1914 Dlg.Release;
1915 end;
1916 end;
1917 // *************************************************************************
1918 //! ?御?????????????鴻???????????ゃ????
1919 // *************************************************************************
1920 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1921 const
1922 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1923 DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1924 DEL_TITLE = '???ょ∈茯?';
1925 var
1926 ThreadItem: TThreadItem;
1927 TmpListItem: TListItem;
1928 List: TList;
1929 i: Integer;
1930 begin
1931 List := TList.Create;
1932 try
1933 TmpListItem := GikoForm.ListView.Selected;
1934 while TmpListItem <> nil do begin
1935 if TObject(TmpListItem.Data) is TThreadItem then begin
1936 ThreadItem := TThreadItem(TmpListItem.Data);
1937 if ThreadItem.IsLogFile then
1938 List.Add(ThreadItem);
1939 end;
1940 TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1941 end;
1942
1943 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1944 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1945 if List.Count = 1 then begin
1946 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1947 Exit;
1948 end else begin
1949 if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
1950 Exit;
1951 end;
1952 end;
1953 end;
1954
1955 for i := 0 to List.Count - 1 do begin
1956 ThreadItem := TThreadItem(List[i]);
1957 GikoForm.DeleteHistory(ThreadItem);
1958 GikoForm.DeleteTab(ThreadItem);
1959 ThreadItem.DeleteLogFile;
1960
1961 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1962 end;
1963 GikoForm.ListView.Refresh;
1964 finally
1965 List.Free;
1966 end;
1967 end;
1968 // *************************************************************************
1969 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1970 // *************************************************************************
1971 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1972 begin
1973 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1974 and (GikoForm.ListView.SelCount > 0);
1975 end;
1976 // *************************************************************************
1977 //! 腟?莨若?水吋罩眼??羔??祉????
1978 // *************************************************************************
1979 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1980 const
1981 DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1982 DEL_TITLE = '???ょ∈茯?';
1983 begin
1984 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1985 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1986 Exit;
1987 GikoSys.Setting.SelectTextList.Clear;
1988 GikoForm.SelectComboBox.Items.Clear;
1989 GikoForm.SelectComboBox.Text := '';
1990 GikoForm.SetListViewType( gvtAll );
1991 end;
1992 // *************************************************************************
1993 //! ???鴻?????c?帥??????絮ユ???羔??祉????
1994 // *************************************************************************
1995 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1996 const
1997 DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
1998 DEL_TITLE = '???ょ∈茯?';
1999 begin
2000 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2001 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2002 Exit;
2003 GikoSys.Setting.NameList.Clear;
2004 GikoForm.AllEditroFormNameTextClearClear;
2005 end;
2006 // *************************************************************************
2007 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2008 // *************************************************************************
2009 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2010 const
2011 DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2012 DEL_TITLE = '???ょ∈茯?';
2013 begin
2014 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2015 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2016 Exit;
2017 GikoSys.Setting.MailList.Clear;
2018 GikoForm.AllEditroFormMailTextClearClear;
2019 end;
2020 // *************************************************************************
2021 //! ???潟??????腟?篋?????
2022 // *************************************************************************
2023 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2024 begin
2025 GikoForm.Close;
2026 end;
2027 // *************************************************************************
2028 //! ??羂????ャ?????????鴻???若????絎?茵???????
2029 // *************************************************************************
2030 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2031 begin
2032 ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2033 end;
2034 // *************************************************************************
2035 //! ??羂????ャ?????????鴻???若????絎?茵?????
2036 // *************************************************************************
2037 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2038 begin
2039 if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2040 ShowMessage('???<?ゃ?????阪?????障????');
2041 end else begin
2042 ShowMessage('???<?ゃ?????阪????け?????障????');
2043 end;
2044 end;
2045 // *************************************************************************
2046 //! ?御???鴻???????????<?ゃ?????絖?????
2047 // *************************************************************************
2048 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2049 var
2050 List: TList;
2051 i: Integer;
2052 html: TStringList;
2053 title: string;
2054 begin
2055 List := TList.Create;
2056 try
2057 GikoForm.ScreenCursor := crHourGlass;
2058 GikoForm.SelectListItem(List);
2059 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2060 (GikoSys.Setting.ListHeightState = glsMax)) or
2061 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2062 (GikoSys.Setting.ListWidthState = glsMax)) then
2063 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2064 else if(List.Count = 0) then
2065 ShowMessage('?鴻?????????御?????????????')
2066 else begin
2067 if dat then begin
2068 SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2069 SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2070 end else begin
2071 SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2072 SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2073 end;
2074 for i := 0 to List.Count - 1 do begin
2075 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2076 if dat then begin
2077 SaveDialog.FileName := TThreadItem(List[i]).FileName;
2078 end else begin
2079 SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2080 end;
2081 if SaveDialog.Execute then begin
2082 if dat then begin
2083 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2084 PChar(SaveDialog.FileName), true);
2085 end else begin
2086 html := TStringList.Create;
2087 title := TThreadItem(List[i]).Title;
2088 try
2089 HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2090 html.SaveToFile(SaveDialog.FileName);
2091 THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2092 finally
2093 html.Free;
2094 end;
2095 end;
2096 end;
2097 end;
2098 end;
2099 end;
2100 finally
2101 GikoForm.ScreenCursor := crDefault;
2102 List.Free;
2103 end;
2104 end;
2105 // *************************************************************************
2106 //! ?御???鴻????????HTML???????絖?
2107 // *************************************************************************
2108 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2109 begin
2110 SelectThreadSaveToFile(false);
2111 end;
2112 // *************************************************************************
2113 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2114 // *************************************************************************
2115 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2116 begin
2117 SelectThreadSaveToFile(true);
2118 end;
2119 // *************************************************************************
2120 //! ?帥??????????篆?絖?
2121 // *************************************************************************
2122 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2123 begin
2124 if not GikoForm.SaveTabURLs then begin
2125 if TabsSaveAction.Tag = 0 then
2126 ShowMessage('篆?絖??????帥?????????障????')
2127 else if TabsSaveAction.Tag = 1 then
2128 GikoDM.TabsOpenAction.Tag := -1;
2129 end;
2130 end;
2131 // *************************************************************************
2132 //! ?帥??????????緇???
2133 // *************************************************************************
2134 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2135 begin
2136 if TabsOpenAction.Tag <> -1 then begin
2137 if not GikoForm.LoadTabURLs then begin
2138 if TabsOpenAction.Tag = 0 then
2139 ShowMessage('茵?ず?????帥?????????障??????');
2140 end;
2141 end;
2142 end;
2143 // *************************************************************************
2144 //! ?帥??????????????篆?絖?
2145 // *************************************************************************
2146 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2147 begin
2148 GikoForm.SaveTabURLs;
2149 end;
2150 // *************************************************************************
2151 //! ?帥??????????????緇???
2152 // *************************************************************************
2153 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2154 begin
2155 GikoForm.LoadTabURLs;
2156 end;
2157 // *************************************************************************
2158 //! Be2ch?????違?ゃ?????違?≪????????
2159 // *************************************************************************
2160 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2161 begin
2162 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2163 end;
2164 // *************************************************************************
2165 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2166 // *************************************************************************
2167 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2168 begin
2169 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2170 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2171 else BeLogInOutAction.Checked := false;
2172 BeLogInOutAction.Enabled := true
2173 end else
2174 BeLogInOutAction.Enabled := false;
2175 end;
2176 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2177 // *************************************************************************
2178 //! ?潟?潟?障?ц?????
2179 // *************************************************************************
2180 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2181 var
2182 No: Integer;
2183 ThreadItem: TThreadItem;
2184 begin
2185 No := GikoForm.KokoPopupMenu.Tag;
2186 if No = 0 then Exit;
2187 ThreadItem := GikoForm.GetActiveContent;
2188 if ThreadItem = nil then Exit;
2189 ThreadItem.Kokomade := No;
2190 GikoForm.ActiveContent.Thread.ScrollTop :=
2191 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2192 GikoForm.ActiveContent.Repaint := true;
2193 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2194 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2195 //Application.ProcessMessages;
2196 end;
2197 // *************************************************************************
2198 //! ?????????
2199 // *************************************************************************
2200 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2201 var
2202 ThreadItem: TThreadItem;
2203 begin
2204 ThreadItem := GikoForm.GetActiveContent;
2205 if ThreadItem = nil then Exit;
2206 ThreadItem.Kokomade := -1;
2207 GikoForm.ActiveContent.Thread.ScrollTop :=
2208 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2209 GikoForm.ActiveContent.Repaint := true;
2210 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2211 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2212 //Application.ProcessMessages;
2213 end;
2214 // *************************************************************************
2215 //! ?潟?潟??????/span>
2216 // *************************************************************************
2217 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2218 var
2219 Editor: TEditorForm;
2220 Item: TThreadItem;
2221 Number: Integer;
2222 begin
2223 Number := GikoForm.KokoPopupMenu.Tag;
2224 if Number = 0 then Exit;
2225 Item := GikoForm.GetActiveContent;
2226 if Item = nil then Exit;
2227
2228 Editor := TEditorForm.Create(GikoForm);
2229 Editor.SetThreadItem(Item);
2230 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
2231 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2232 Editor.Show;
2233 Editor.BodyEdit.SetFocus;
2234 end;
2235 // *************************************************************************
2236 //! ?御?????????鴻???潟???若????
2237 // *************************************************************************
2238 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2239 begin
2240 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2241 end;
2242 // *************************************************************************
2243 //! ?御?????????鴻???潟???若????
2244 // *************************************************************************
2245 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2246 var
2247 ThreadItem : TThreadItem;
2248 No, count, rc : Integer;
2249 body : string;
2250 limited: boolean;
2251 begin
2252 No := GikoForm.KokoPopupMenu.Tag;
2253 if No = 0 then Exit;
2254 ThreadItem := GikoForm.GetActiveContent;
2255 if ThreadItem = nil then Exit;
2256 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2257 limited := false;
2258 if count > 20 then begin
2259 rc := GikoUtil.MsgBox(GikoForm.Handle,
2260 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2261 'ID???????≪????茘???',
2262 MB_YESNO or MB_ICONQUESTION);
2263 limited := rc <> ID_YES;
2264 end;
2265 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2266 GikoForm.ActiveContent.IDAnchorPopup(body);
2267 end;
2268 // *************************************************************************
2269 //! ???????鴻???若??????鐚???絽醐?
2270 // *************************************************************************
2271 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2272 begin
2273 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2274 end;
2275 // *************************************************************************
2276 //! ???????鴻???若??????鐚?????
2277 // *************************************************************************
2278 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2279 begin
2280 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2281 end;
2282 // *************************************************************************
2283 //! ???????鴻???若????茹i??/span>
2284 // *************************************************************************
2285 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2286 var
2287 IndividualForm :TIndividualAbonForm;
2288 ThreadItem : TThreadItem;
2289 msg : String;
2290 ReadList : TStringList;
2291 wordCount : TWordCount;
2292 begin
2293 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2294 try
2295 ThreadItem := GikoForm.GetActiveContent;
2296 ThreadItem.ScrollTop :=
2297 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2298 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2299 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2300 ReadList := TStringList.Create;
2301 wordCount := TWordCount.Create;
2302 try
2303 {$IFDEF SPAM_FILTER_ENABLED}
2304 // ?鴻??????茹i??/span>
2305 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2306 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2307 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2308 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2309 {$ENDIF}
2310 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2311 GikoForm.ActiveContent.Repaint := true;
2312 GikoForm.InsertBrowserTab( ThreadItem, True );
2313 end;
2314 finally
2315 wordCount.Free;
2316 ReadList.Free;
2317 end;
2318 end else begin
2319 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2320 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2321 end;
2322 end;
2323 finally
2324 IndividualForm.Release;
2325 end;
2326 end;
2327 // *************************************************************************
2328 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2329 // *************************************************************************
2330 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2331 var
2332 IndividualForm :TIndividualAbonForm;
2333 ThreadItem : TThreadItem;
2334 msg : String;
2335 ReadList : TStringList;
2336 wordCount : TWordCount;
2337 {$IFDEF SPAM_FILTER_ENABLED}
2338 i : Integer;
2339 {$ENDIF}
2340 begin
2341 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2342 try
2343 ThreadItem := GikoForm.GetActiveContent;
2344 ThreadItem.ScrollTop :=
2345 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2346 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2347 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2348 if (IndividualForm.ShowModal = mrOK) then begin
2349 ReadList := TStringList.Create;
2350 wordCount := TWordCount.Create;
2351 try
2352 {$IFDEF SPAM_FILTER_ENABLED}
2353 // ?鴻??????茹i??/span>
2354 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2355 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2356 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2357 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2358 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2359 end;
2360 {$ENDIF}
2361 if IndividualForm.FRepaint then begin
2362 GikoForm.ActiveContent.Repaint := true;
2363 GikoForm.InsertBrowserTab( ThreadItem, True );
2364 end;
2365 finally
2366 wordCount.Free;
2367 ReadList.Free;
2368 end;
2369 end;
2370 end else begin
2371 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2372 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2373 end;
2374 end;
2375 finally
2376 IndividualForm.Release;
2377 end;
2378 end;
2379 // *************************************************************************
2380 //! ????D???若????????絽?/span>
2381 // *************************************************************************
2382 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2383 begin
2384 GikoForm.IndividualAbonID(1);
2385 end;
2386 // *************************************************************************
2387 //! ????D???若?????????/span>
2388 // *************************************************************************
2389 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2390 begin
2391 GikoForm.IndividualAbonID(0);
2392 end;
2393 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2394 // *************************************************************************
2395 //! ???潟?????????с???泣?ゃ????茵?ず????
2396 // *************************************************************************
2397 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2398 begin
2399 GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2400 end;
2401 // *************************************************************************
2402 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2403 // *************************************************************************
2404 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2405 begin
2406 GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2407 end;
2408 // *************************************************************************
2409 //! 鐚??<?????????????????若?吾??茵?ず????
2410 // *************************************************************************
2411 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2412 begin
2413 GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2414 end;
2415 // *************************************************************************
2416 //! ???潟????????????????????span>
2417 // *************************************************************************
2418 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2419 begin
2420 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2421 end;
2422 // *************************************************************************
2423 //! ???若?吾?с?恰???宴??茵?ず????
2424 // *************************************************************************
2425 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2426 var
2427 Dlg: TAboutDialog;
2428 begin
2429 Dlg := TAboutDialog.Create(GikoForm);
2430 try
2431 Dlg.ShowModal;
2432 finally
2433 Dlg.Release;
2434 end;
2435 end;
2436 // *************************************************************************
2437 //! ???潟??????????????茵?ず????
2438 // *************************************************************************
2439 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2440 var
2441 FileName: string;
2442 begin
2443 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2444 if not FileExists(FileName) then begin
2445 MsgBox(
2446 GikoForm.Handle,
2447 '????????荀??ゃ?????障?????с????' + #13#10 +
2448 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2449 '???????????潟???????泣?ゃ????舟?????????障??',
2450 '??????#39;,
2451 MB_ICONSTOP);
2452 Exit;
2453 end;
2454 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2455 end;
2456 // *************************************************************************
2457 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2458 // *************************************************************************
2459 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2460 begin
2461 GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2462 end;
2463 ////////////////////////////////???????障?с?????障??/////////////////////
2464 // *************************************************************************
2465 //! ???鴻????埈;腓冴??紊??眼????
2466 // *************************************************************************
2467 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2468 begin
2469 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2470 GikoForm.ListView.Refresh;
2471 end;
2472 // *************************************************************************
2473 //! 筝?篏???????????Щ??????
2474 // *************************************************************************
2475 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2476 begin
2477 if GikoForm.GetActiveList is TBoard then begin
2478 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2479 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2480 end else if GikoForm.GetActiveList is TCategory then begin
2481 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2482 end;
2483 end;
2484 // *************************************************************************
2485 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2486 // *************************************************************************
2487 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2488 begin
2489 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2490 end;
2491 // *************************************************************************
2492 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2493 // *************************************************************************
2494 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2495 begin
2496 case GikoForm.ListView.ViewStyle of
2497 vsIcon: SmallIconAction.Execute;
2498 vsSmallIcon: ListIconAction.Execute;
2499 vsList: DetailIconAction.Execute;
2500 vsReport: LargeIconAction.Execute;
2501 end;
2502 end;
2503 // *************************************************************************
2504 //! ?鴻???????????鴻??;腓冴????
2505 // *************************************************************************
2506 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2507 begin
2508 try
2509 if GikoForm.ViewType <> gvtAll then
2510 GikoForm.SetListViewType(gvtAll);
2511 GikoSys.Setting.ThreadRange := gtrAll;
2512 AllItemAction.Checked := True;
2513 // SelectComboBox ??吋罩眼???贋?違????????span>
2514 GikoForm.ModifySelectList;
2515 // SelectComboBox ???ゃ????????/span>
2516 if GikoForm.SelectComboBoxPanel.Visible then begin
2517 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2518 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2519 GikoForm.ListView.SetFocus;
2520 end;
2521 except
2522 end;
2523 end;
2524 // *************************************************************************
2525 //! ???井?????鴻?????????帥??茵?ず????
2526 // *************************************************************************
2527 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2528 begin
2529 try
2530 if GikoForm.ViewType <> gvtLog then
2531 GikoForm.SetListViewType(gvtLog);
2532 GikoSys.Setting.ThreadRange := gtrLog;
2533 LogItemAction.Checked := True;
2534 // SelectComboBox ??吋罩眼???贋?違????????span>
2535 GikoForm.ModifySelectList;
2536 // SelectComboBox ???ゃ????????/span>
2537 if GikoForm.SelectComboBoxPanel.Visible then begin
2538 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2539 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2540 GikoForm.ListView.SetFocus;
2541 end;
2542 except
2543 end;
2544 end;
2545 // *************************************************************************
2546 //! ?亥???鴻?????????粋;腓冴????
2547 // *************************************************************************
2548 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2549 begin
2550 try
2551
2552 if GikoForm.ViewType <> gvtNew then
2553 GikoForm.SetListViewType(gvtNew);
2554 GikoSys.Setting.ThreadRange := gtrNew;
2555 NewItemAction.Checked := True;
2556 // SelectComboBox ??吋罩眼???贋?違????????span>
2557 GikoForm.ModifySelectList;
2558 // SelectComboBox ???ゃ????????/span>
2559 if GikoForm.SelectComboBoxPanel.Visible then begin
2560 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2561 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2562 GikoForm.ListView.SetFocus;
2563 end;
2564 except
2565 end;
2566 end;
2567 // *************************************************************************
2568 //! ?鴻????????;腓榊??蚊??荐??
2569 // *************************************************************************
2570 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2571 begin
2572 case GikoSys.Setting.ThreadRange of
2573 gtrAll: AllItemAction.Execute;
2574 gtrLog: LogItemAction.Execute;
2575 gtrNew: NewItemAction.Execute;
2576 end;
2577 end;
2578 // *************************************************************************
2579 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2580 // *************************************************************************
2581 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2582 var
2583 idx: Integer;
2584 Dlg: TListSelectDialog;
2585 begin
2586 try
2587 if GikoForm.SelectComboBoxPanel.Visible then begin
2588 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2589 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2590 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2591 if GikoSys.Setting.ListWidthState = glsMax then
2592 BrowserMinAction.Execute;
2593 end else begin
2594 if GikoSys.Setting.ListHeightState = glsMax then
2595 BrowserMinAction.Execute;
2596 end;
2597 GikoForm.SelectComboBox.SetFocus;
2598 exit;
2599 end;
2600 end;
2601 except
2602 end;
2603
2604 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2605 GikoForm.SelectComboBox.Text := '';
2606 GikoForm.SelectComboBox.Color := clWindow;
2607 end;
2608
2609 AllItemAction.Checked := False;
2610 LogItemAction.Checked := False;
2611 NewItemAction.Checked := False;
2612 //SelectItemAction.Checked := True;
2613 GikoForm.ModifySelectList;
2614 Dlg := TListSelectDialog.Create(GikoForm);
2615 try
2616 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2617 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2618 Dlg.ShowModal;
2619 if Dlg.ModalResult = mrCancel then begin
2620 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2621 AllItemAction.Checked := True;
2622 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2623 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2624 end;
2625
2626 if GikoForm.GetActiveList is TBoard then
2627 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2628 end else begin
2629 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2630 if idx <> -1 then
2631 GikoSys.Setting.SelectTextList.Delete(idx);
2632 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2633 while Dlg.SelectComboBox.Items.Count > 100 do begin
2634 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2635 end;
2636
2637 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2638 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2639 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2640 end else begin
2641 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2642 GikoForm.SelectComboBox.Color := clWindow;
2643 end;
2644 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2645 end;
2646 finally
2647 Dlg.Release;
2648 end;
2649 end;
2650 // *************************************************************************
2651 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2652 // *************************************************************************
2653 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2654 var
2655 Editor: TEditorForm;
2656 begin
2657 if not (GikoForm.GetActiveList is TBoard) then
2658 Exit;
2659 Editor := TEditorForm.Create(GikoForm);
2660 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2661 Editor.Show;
2662 Editor.BodyEdit.SetFocus;
2663 end;
2664 // *************************************************************************
2665 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2666 // *************************************************************************
2667 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2668 var
2669 URL: string;
2670 begin
2671 if GikoForm.GetActiveList is TBoard then begin
2672 URL := TBoard(GikoForm.GetActiveList).URL;
2673 GikoSys.OpenBrowser(URL, gbtAuto);
2674 end;
2675 end;
2676 // *************************************************************************
2677 //! ?御?????????????鴻????????RL???潟???若????
2678 // *************************************************************************
2679 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2680 var
2681 List: TList;
2682 i: Integer;
2683 s: string;
2684 begin
2685 s := '';
2686 List := TList.Create;
2687 try
2688 GikoForm.SelectListItem(List);
2689 for i := 0 to List.Count - 1 do begin
2690 if TObject(List[i]) is TBoard then
2691 s := s + TBoard(List[i]).URL + #13#10
2692 else if TObject(List[i]) is TThreadItem then
2693 s := s + TThreadItem(List[i]).URL + #13#10;
2694 end;
2695 if s <> '' then
2696 Clipboard.AsText := s;
2697 finally
2698 List.Free;
2699 end;
2700 end;
2701 // *************************************************************************
2702 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2703 // *************************************************************************
2704 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2705 begin
2706 if ((GikoForm.GetActiveList is TBoard) or
2707 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2708 TAction(Sender).Enabled := True
2709 else
2710 TAction(Sender).Enabled := False;
2711 end;
2712 // *************************************************************************
2713 //! ?御?????????????帥?????????潟???若????
2714 // *************************************************************************
2715 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2716 var
2717 List: TList;
2718 i: Integer;
2719 s: string;
2720 begin
2721 s := '';
2722 List := TList.Create;
2723 try
2724 GikoForm.SelectListItem(List);
2725 for i := 0 to List.Count - 1 do begin
2726 if TObject(List[i]) is TBoard then
2727 s := s + TBoard(List[i]).Title + #13#10
2728 else if TObject(List[i]) is TThreadItem then
2729 s := s + TThreadItem(List[i]).Title + #13#10;
2730 end;
2731 if s <> '' then
2732 Clipboard.AsText := s;
2733 finally
2734 List.Free;
2735 end;
2736 end;
2737 // *************************************************************************
2738 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2739 // *************************************************************************
2740 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2741 begin
2742 if ((GikoForm.GetActiveList is TBoard) or
2743 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2744 TAction(Sender).Enabled := True
2745 else
2746 TAction(Sender).Enabled := False;
2747 end;
2748 // *************************************************************************
2749 //! ?御?????????????鴻??????????????RL???潟???若????
2750 // *************************************************************************
2751 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2752 var
2753 List: TList;
2754 i: Integer;
2755 s: string;
2756 begin
2757 s := '';
2758 List := TList.Create;
2759 try
2760 GikoForm.SelectListItem(List);
2761 for i := 0 to List.Count - 1 do begin
2762 if TObject(List[i]) is TBoard then
2763 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2764 else if TObject(List[i]) is TThreadItem then
2765 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2766 end;
2767 if s <> '' then
2768 Clipboard.AsText := s;
2769 finally
2770 List.Free;
2771 end;
2772 end;
2773 // *************************************************************************
2774 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2775 // *************************************************************************
2776 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2777 var
2778 i: Integer;
2779 List: TList;
2780 msg: string;
2781 shiftDown: Boolean;
2782 begin
2783 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2784 if GikoForm.GetActiveList is TCategory then begin
2785 List := TList.Create;
2786 try
2787 GikoForm.SelectListItem(List);
2788 if List.Count > 5 then begin
2789 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2790 + '鐚??<????????莢??決蚕羝????????????????';
2791 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2792 Exit;
2793 end;
2794 for i := 0 to List.Count - 1 do begin
2795 if TObject(List[i]) is TBoard then
2796 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2797 end;
2798 finally
2799 List.Free;
2800 end;
2801 end else if GikoForm.GetActiveList is TBoard then begin
2802 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2803 end;
2804 end;
2805 // *************************************************************************
2806 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2807 // *************************************************************************
2808 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2809 begin
2810 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2811 TAction(Sender).Enabled := True
2812 else if GikoForm.GetActiveList is TBoard then
2813 TAction(Sender).Enabled := True
2814 else
2815 TAction(Sender).Enabled := False;
2816 end;
2817 // *************************************************************************
2818 //! ?御?????????????鴻?????????????潟???若??????
2819 // *************************************************************************
2820 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2821 var
2822 List: TList;
2823 i: Integer;
2824 msg: string;
2825 shiftDown: Boolean;
2826 begin
2827 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2828 List := TList.Create;
2829 try
2830 GikoForm.SelectListItem(List);
2831 if List.Count > 10 then begin
2832 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2833 + '鐚??<????????莢??決蚕羝????????????????';
2834 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2835 Exit;
2836 end;
2837 for i := 0 to List.Count - 1 do begin
2838 if TObject(List[i]) is TThreadItem then
2839 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2840 end;
2841 finally
2842 List.Free;
2843 end;
2844 end;
2845 // *************************************************************************
2846 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2847 // *************************************************************************
2848 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2849 begin
2850 TAction(Sender).Enabled :=
2851 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2852 end;
2853 // *************************************************************************
2854 //! ?鴻??????綏≦??篋?膣?
2855 // *************************************************************************
2856 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2857 begin
2858 //INFO 2005/11/19 ?????種???by ??????
2859 // ?????潟?<?潟?????ゃ?????????/span>
2860 end;
2861 // *************************************************************************
2862 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2863 // *************************************************************************
2864 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2865 var
2866 i: Integer;
2867 List: TList;
2868 begin
2869 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2870 List := TList.Create;
2871 try
2872 GikoForm.SelectListItem(List);
2873 for i := 0 to List.Count - 1 do begin
2874 if TObject(List[i]) is TThreadItem then begin
2875 if TThreadItem(List[i]).IsLogFile then begin
2876 SelectReservAction.Enabled := True;
2877 Exit;
2878 end;
2879 end;
2880 end;
2881 SelectReservAction.Enabled := False;
2882 finally
2883 List.Free;
2884 end;
2885 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2886 SelectReservAction.Enabled := True
2887 else
2888 SelectReservAction.Enabled := False;
2889 end;
2890 // *************************************************************************
2891 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2892 // *************************************************************************
2893 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2894 var
2895 s: string;
2896 Dlg: TRoundNameDialog;
2897 cnt: Integer;
2898
2899 begin
2900 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2901 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2902 Exit;
2903
2904 //?脂?俄??????с????/span>
2905 cnt := RoundList.Count[grtBoard];
2906 cnt := cnt + RoundList.Count[grtItem];
2907 if cnt > 500 then begin
2908 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', '??????#39;, MB_OK or MB_ICONSTOP);
2909 Exit;
2910 end;
2911
2912 Dlg := TRoundNameDialog.Create(GikoForm);
2913 try
2914 Dlg.ShowModal;
2915 if Dlg.ModalResult <> mrCancel then begin
2916 s := Trim(Dlg.RoundNameEdit.Text);
2917 if (Sender is TMenuItem) then begin
2918 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2919 end else if (Sender is TAction) then begin
2920 if (GikoForm.ListView.Selected <> nil) then begin
2921 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
2922 GikoForm.SetSelectItemRound(True, s,
2923 TThreadItem(GikoForm.ListView.Selected.Data).Title);
2924 end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
2925 GikoForm.SetSelectItemRound(