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.28 - (show annotations) (download) (as text)
Fri Dec 23 16:39:22 2005 UTC (18 years, 3 months ago) by h677
Branch: MAIN
CVS Tags: v1_51_0_635, v1_51_0_636, v1_51_0_637
Changes since 1.27: +7 -5 lines
File MIME type: text/x-pascal
キャビネットのお気に入りでのD&Dでのスレが開く不具合の修正

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 ThreadItem: TThreadItem;
699 FavThread: TFavoriteThreadItem;
700 Board: TBoard;
701 FavBoard: TFavoriteBoardItem;
702 shiftDown: Boolean;
703 Node : TTreeNode;
704 begin
705 if (Sender = nil) or not (Sender is TTreeNode) then Exit;
706
707 Node := TTreeNode(Sender);
708
709 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
710
711 if TObject( Node.Data ) is TFavoriteThreadItem then begin
712 FavThread := TFavoriteThreadItem( Node.Data );
713 ThreadItem := FavThread.Item;
714 if ThreadItem <> nil then
715 GikoForm.DownloadContent(ThreadItem, shiftDown);
716 end else if TObject( Node.Data ) is TFavoriteBoardItem then begin
717 FavBoard := TFavoriteBoardItem( Node.Data );
718 Board := FavBoard.Item;
719 GikoForm.DownloadList(Board, shiftDown);
720 end;
721
722 end;
723 // *************************************************************************
724 //! ?御?????????????鴻????????RL???潟???若????
725 // *************************************************************************
726 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
727 begin
728
729 if GikoForm.ClickNode = nil then Exit;
730
731 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
732 Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
733 end;
734 end;
735 // *************************************************************************
736 //! ?御?????????????帥?????????潟???若????
737 // *************************************************************************
738 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
739 begin
740
741 if GikoForm.ClickNode = nil then Exit;
742
743 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
744 Clipboard.AsText :=
745 TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
746 end;
747 end;
748 // *************************************************************************
749 //! ?御?????????????鴻??????????????RL???潟???若????
750 // *************************************************************************
751 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
752 Sender: TObject);
753 var
754 favItem : TFavoriteItem;
755 begin
756
757 if GikoForm.ClickNode = nil then Exit;
758
759 if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
760 favItem := TFavoriteItem(GikoForm.ClickNode.Data);
761 Clipboard.AsText := favItem.GetItemTitle + #13#10 +
762 favItem.URL + #13#10;
763 end;
764
765 end;
766 // *************************************************************************
767 //! ?御?????????????鴻???????????ゃ????
768 // *************************************************************************
769 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
770 const
771 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
772 DEL_TITLE = '???ょ∈茯?';
773 var
774 ThreadItem: TThreadItem;
775 FavThread: TFavoriteThreadItem;
776 begin
777
778 if GikoForm.ClickNode = nil then Exit;
779 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
780
781 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
782 ThreadItem := FavThread.Item;
783
784 try
785 if GikoSys.Setting.DeleteMsg then begin
786 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
787 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
788 Exit;
789 end;
790
791 GikoForm.DeleteHistory(ThreadItem);
792 GikoForm.DeleteTab(ThreadItem);
793 ThreadItem.DeleteLogFile;
794
795 GikoForm.ListView.Refresh;
796 finally
797 end;
798
799 end;
800 // *************************************************************************
801 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
802 // *************************************************************************
803 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
804 Sender: TObject);
805 var
806 threadItem : TThreadItem;
807 begin
808
809 if GikoForm.ClickNode = nil then Exit;
810
811 if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
812
813 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
814 if threadItem = nil then
815 Exit;
816 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
817
818 end;
819 end;
820 //! ???鴻???莨若?帥???c???帥?若??腥冴??????
821 procedure TGikoDM.ClearResFilter;
822 var
823 FilterList : TStringList;
824 begin
825 // ???c???炊??絖?????腥冴??????
826 FilterList := TStringList.Create;
827 try
828 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
829 GikoSys.FSelectResFilter.Reverse := False;
830 finally
831 FilterList.Free;
832 end;
833 GikoForm.SelectResWord := '';
834 end;
835 // *************************************************************************
836 //! ???鴻??;腓榊??蚊??荐??????
837 // *************************************************************************
838 procedure TGikoDM.SetResRange(range: Integer);
839 begin
840 if GikoSys.ResRange <> range then begin
841 GikoSys.ResRange := range;
842 // ???c???炊??絖?????腥冴??????
843 ClearResFilter;
844 GikoForm.RepaintAllTabsBrowser();
845 end;
846 end;
847 // *************************************************************************
848 //! ????00???鴻???粋;腓?/span>
849 // *************************************************************************
850 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
851 begin
852 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
853 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
854
855 GikoForm.ResRangeMenuSelect := 100;
856 OnlyAHundredResAction.Checked := True;
857 //??茵?ず膀??蚊??荐??????
858 SetResRange(100);
859 end;
860 // *************************************************************************
861 //! ??????鴻???粋;腓?/span>
862 // *************************************************************************
863 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
864 begin
865 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
866 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
867
868 GikoForm.ResRangeMenuSelect := Ord( grrKoko );
869 OnlyKokoResAction.Checked := True;
870
871 //??茵?ず膀??蚊??荐??????
872 SetResRange(Ord( grrKoko ));
873 end;
874 // *************************************************************************
875 //! ?亥?????鴻???粋;腓?/span>
876 // *************************************************************************
877 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
878 begin
879 if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
880 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
881
882 GikoForm.ResRangeMenuSelect := Ord( grrNew );
883 OnlyNewResAction.Checked := True;
884
885 //??茵?ず膀??蚊??荐??????
886 SetResRange(Ord( grrNew ));
887 end;
888 // *************************************************************************
889 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloHorizontal??
890 // *************************************************************************
891 procedure TGikoDM.SetThreadAreaHorNormal;
892 begin
893 //??絽梧;腓冴??????
894 if GikoForm.ActiveContent <> nil then
895 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
896 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
897 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
898 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
899 GikoSys.Setting.ListWidthState := glsNormal;
900 if GikoForm.ActiveContent <> nil then
901 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
902 end;
903 // *************************************************************************
904 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloHorizontal??
905 // *************************************************************************
906 procedure TGikoDM.SetThreadAreaHorizontal(gls : TGikoListState);
907 begin
908 if GikoForm.ActiveContent <> nil then
909 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
910 if GikoSys.Setting.ListWidthState = glsNormal then
911 GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
912 //??紊ц;腓?/span>
913 if (gls = glsMax) then begin
914 GikoForm.ViewPanel.Width := 1;
915 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
916 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
917 GikoSys.Setting.ListWidthState := glsMax;
918 end else if (gls = glsMin) then begin
919 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
920 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
921 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
922 GikoSys.Setting.ListWidthState := glsMin;
923 end;
924 if GikoForm.ActiveContent <> nil then
925 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
926 end;
927 // *************************************************************************
928 //! ?鴻??????茵?ず?????∫??絽梧;腓冴?????? 羈?ListOrientation = gloVertical
929 // *************************************************************************
930 procedure TGikoDM.SetThreadAreaVerNormal;
931 begin
932 //??絽梧;腓冴??????
933 if GikoForm.ActiveContent <> nil then
934 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
935 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
936 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
937 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
938 GikoSys.Setting.ListHeightState := glsNormal;
939 if GikoForm.ActiveContent <> nil then
940 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
941 end;
942 // *************************************************************************
943 //! ?鴻??????茵?ず?????∽??紊???絨頫?ず?????? 羈?ListOrientation = gloVertical
944 // *************************************************************************
945 procedure TGikoDM.SetThreadAreaVertical(gls : TGikoListState);
946 begin
947 if GikoForm.ActiveContent <> nil then
948 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //??糸??罩?/span>
949 if GikoSys.Setting.ListHeightState = glsNormal then
950 GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
951 if (gls = glsMin) then begin
952 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
953 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
954 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
955 GikoSys.Setting.ListHeightState := glsMin;
956 end else if (gls = glsMax) then begin
957 GikoForm.ViewPanel.Height := 1;
958 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
959 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
960 GikoSys.Setting.ListHeightState := glsMax;
961 end;
962 if GikoForm.ActiveContent <> nil then
963 SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //???/span>
964 end;
965 // *************************************************************************
966 //! ?鴻??????茵?ず?????≪??紊с???頫?ず????
967 // *************************************************************************
968 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
969 begin
970 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
971 case GikoSys.Setting.ListWidthState of
972 glsMax: begin
973 //??絽梧;腓冴??????
974 SetThreadAreaHorNormal;
975 end;
976 glsMin, glsNormal: begin
977 //??紊ц;腓冴??????
978 SetThreadAreaHorizontal(glsMax);
979 end;
980 end;
981 end else begin
982 case GikoSys.Setting.ListHeightState of
983 glsMax: begin
984 //??絽梧;腓冴??????
985 SetThreadAreaVerNormal;
986 end;
987 glsMin, glsNormal: begin
988 //??紊ц;腓冴??????
989 SetThreadAreaVertical(glsMax);
990 end;
991 end;
992 end;
993 end;
994 // *************************************************************************
995 //! ?鴻??????茵?ず?????≪??絨???頫?ず????
996 // *************************************************************************
997 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
998 begin
999 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1000 case GikoSys.Setting.ListWidthState of
1001 glsMax, glsNormal: begin
1002 //??絨頫?ず??????
1003 SetThreadAreaHorizontal(glsMin);
1004 end;
1005 glsMin: begin
1006 //??絽梧;腓冴??????
1007 SetThreadAreaHorNormal;
1008 end;
1009 end;
1010 end else begin
1011 case GikoSys.Setting.ListHeightState of
1012 glsMax, glsNormal: begin
1013 //??絨頫?ず??????
1014 SetThreadAreaVertical(glsMin);
1015 end;
1016 glsMin: begin
1017 //??絽梧;腓冴??????
1018 SetThreadAreaVerNormal;
1019 end;
1020 end;
1021 end;
1022 end;
1023 // *************************************************************************
1024 //! ?上??;腓冴?????????鴻?????????????悟Щ??????
1025 // *************************************************************************
1026 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
1027 begin
1028 GikoForm.BrowserMovement('top');
1029 end;
1030 // *************************************************************************
1031 //! ?上??;腓冴?????????鴻??????????緇??悟Щ??????
1032 // *************************************************************************
1033 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1034 begin
1035 GikoForm.BrowserMovement('bottom');
1036 end;
1037 // *************************************************************************
1038 //! ?上??;腓冴?????????鴻?????????亥???悟Щ??????
1039 // *************************************************************************
1040 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1041 begin
1042 GikoForm.BrowserMovement('new');
1043 end;
1044 // *************************************************************************
1045 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ??????
1046 // *************************************************************************
1047 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1048 begin
1049 GikoForm.BrowserMovement('koko');
1050 end;
1051 // *************************************************************************
1052 //! ?上??;腓冴?????????鴻?????????潟?潟?障?ц??????悟Щ????????pdate?ゃ???潟??
1053 // *************************************************************************
1054 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1055 begin
1056 ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1057 and (GikoForm.GetActiveContent.IsLogFile)
1058 and (GikoForm.GetActiveContent.Kokomade <> -1);
1059 end;
1060 // *************************************************************************
1061 //! ???号?吾??莨若?帥???c?潟??????茵?ず????
1062 // *************************************************************************
1063 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1064 var
1065 Editor: TEditorForm;
1066 Item: TThreadItem;
1067 begin
1068 Item := GikoForm.GetActiveContent;
1069 if Item = nil then Exit;
1070 Editor := TEditorForm.Create(GikoForm.GetMainForm);
1071 Editor.SetThreadItem(Item);
1072 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
1073 Editor.Show;
1074 Editor.BodyEdit.SetFocus;
1075 end;
1076 // *************************************************************************
1077 //! ?鴻???????????吟?ц;腓冴????
1078 // *************************************************************************
1079 procedure TGikoDM.IEActionExecute(Sender: TObject);
1080 begin
1081 ShowThreadAction.Execute;
1082 end;
1083 // *************************************************************************
1084 //! ?上??;腓冴?????????鴻???????????????吟?ц;腓冴????
1085 // *************************************************************************
1086 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1087 var
1088 ThreadItem: TThreadItem;
1089 begin
1090 ThreadItem := GikoForm.GetActiveContent;
1091 if ThreadItem = nil then Exit;
1092 GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1093 end;
1094 // *************************************************************************
1095 //! ?上??;腓冴?????????鴻?????????帥?????????吟?ц;腓冴????
1096 // *************************************************************************
1097 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1098 var
1099 ThreadItem: TThreadItem;
1100 begin
1101 ThreadItem := GikoForm.GetActiveContent;
1102 if ThreadItem = nil then Exit;
1103 GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1104 end;
1105 // *************************************************************************
1106 //! ?上??;腓冴?????????鴻????????RL???潟???若????
1107 // *************************************************************************
1108 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1109 var
1110 s: string;
1111 begin
1112 s := '';
1113 if TObject(GikoForm.GetActiveContent) is TBoard then
1114 s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1115 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1116 s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1117 if s <> '' then
1118 Clipboard.AsText := s;
1119 end;
1120 // *************************************************************************
1121 //! ?上??;腓冴?????????鴻???????????潟???若????
1122 // *************************************************************************
1123 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1124 var
1125 s: string;
1126 begin
1127 s := '';
1128 if TObject(GikoForm.GetActiveContent) is TBoard then
1129 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1130 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1131 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1132 if s <> '' then
1133 Clipboard.AsText := s;
1134 end;
1135 // *************************************************************************
1136 //! ?上??;腓冴?????????鴻??????????RL???潟???若????
1137 // *************************************************************************
1138 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1139 var
1140 s: string;
1141 begin
1142 s := '';
1143 if TObject(GikoForm.GetActiveContent) is TBoard then
1144 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1145 else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1146 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1147 if s <> '' then
1148 Clipboard.AsText := s;
1149 end;
1150 // *************************************************************************
1151 //! 茵?ず???????????鴻?????????????潟???若??????
1152 // *************************************************************************
1153 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1154 var
1155 ThreadItem: TThreadItem;
1156 shiftDown: Boolean;
1157 begin
1158 ThreadItem := GikoForm.GetActiveContent;
1159 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1160 if ThreadItem <> nil then
1161 GikoForm.DownloadContent(ThreadItem, shiftDown);
1162 end;
1163 // *************************************************************************
1164 //! ?上?????????????帥??????????
1165 // *************************************************************************
1166 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1167 var
1168 idx: Integer;
1169 begin
1170 idx := GikoForm.BrowserTab.TabIndex;
1171 if idx <> -1 then begin
1172 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1173 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1174 end;
1175 end;
1176 end;
1177 // *************************************************************************
1178 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1179 // *************************************************************************
1180 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1181 begin
1182 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1183 end;
1184 // *************************************************************************
1185 //! ?上?????????????帥??篁ュ?????????
1186 // *************************************************************************
1187 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1188 var
1189 i: Integer;
1190 idx: Integer;
1191 begin
1192 idx := GikoForm.BrowserTab.TabIndex;
1193 if idx = -1 then Exit;
1194 GikoForm.BrowserTab.Tabs.BeginUpdate;
1195 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1196 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1197 GikoForm.BrowserTab.Tabs.Delete(i);
1198 end;
1199 if idx > 0 then begin
1200 for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1201 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1202 GikoForm.BrowserTab.Tabs.Delete(i);
1203 end;
1204 end;
1205 GikoForm.BrowserTab.Tabs.EndUpdate;
1206 end;
1207 // *************************************************************************
1208 //! ?帥????鐚??や札筝??????????鴻??????Update?ゃ???潟??
1209 // *************************************************************************
1210 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1211 begin
1212 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1213 end;
1214 // *************************************************************************
1215 //! ???????帥??????????
1216 // *************************************************************************
1217 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1218 var
1219 i: Integer;
1220 begin
1221 if GikoSys.Setting.ShowDialogForAllTabClose then
1222 if(MessageDlg('???????帥???????????????????с????鐚?', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1223 Exit;
1224
1225 GikoForm.ActiveContent := nil;
1226 GikoForm.BrowserNullTab.Thread := nil;
1227 GikoForm.BrowserTab.OnChange := nil;
1228 GikoForm.BrowserTab.Tabs.BeginUpdate;
1229 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1230 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1231 end;
1232 GikoForm.BrowserTab.Tabs.Clear;
1233 GikoForm.BrowserTab.Tabs.EndUpdate;
1234 GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1235 GikoForm.SetContent(GikoForm.BrowserNullTab);
1236 GikoForm.Caption := CAPTION_NAME ;
1237 end;
1238 // *************************************************************************
1239 //! ?上?????????????帥?????鴻???????????ゃ????
1240 // *************************************************************************
1241 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1242 const
1243 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1244 DEL_TITLE = '???ょ∈茯?';
1245 var
1246 idx: Integer;
1247 ThreadItem: TThreadItem;
1248 begin
1249 idx := GikoForm.BrowserTab.TabIndex;
1250 if idx <> -1 then begin
1251 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1252 ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1253 if GikoSys.Setting.DeleteMsg then
1254 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1255 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1256 Exit;
1257 GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1258 ThreadItem.DeleteLogFile;
1259 if ThreadItem.ParentBoard = GikoForm.ActiveList then
1260 GikoForm.ListView.Refresh;
1261 end;
1262 end;
1263 end;
1264 // *************************************************************************
1265 //! 筝???窪???帥?????御??????
1266 // *************************************************************************
1267 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1268 begin
1269 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1270 GikoForm.BrowserTab.TabIndex := 0;
1271 GikoForm.BrowserTab.OnChange(nil);
1272 end;
1273 end;
1274 // *************************************************************************
1275 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1276 // *************************************************************************
1277 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1278 begin
1279 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1280 and (GikoForm.BrowserTab.TabIndex <> 0);
1281 end;
1282 // *************************************************************************
1283 //! 綏????帥?????御??????
1284 // *************************************************************************
1285 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1286 begin
1287 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1288 if GikoForm.BrowserTab.TabIndex = -1 then begin
1289 GikoForm.BrowserTab.TabIndex := 0;
1290 GikoForm.BrowserTab.OnChange(nil);
1291 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1292 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1293 GikoForm.BrowserTab.OnChange(nil);
1294 end;
1295 end;
1296 end;
1297 // *************************************************************************
1298 //! ?潟???帥?????御??????
1299 // *************************************************************************
1300 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1301 begin
1302 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1303 if GikoForm.BrowserTab.TabIndex = -1 then begin
1304 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1305 GikoForm.BrowserTab.OnChange(nil);
1306 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1307 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1308 GikoForm.BrowserTab.OnChange(nil);
1309 end;
1310 end;
1311 end;
1312 // *************************************************************************
1313 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1314 // *************************************************************************
1315 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1316 begin
1317 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1318 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1319 end;
1320 // *************************************************************************
1321 //! 筝???劻???帥?????御??????
1322 // *************************************************************************
1323 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1324 begin
1325 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1326 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1327 GikoForm.BrowserTab.OnChange(nil);
1328 end;
1329 end;
1330 // *************************************************************************
1331 //! ?御?????????????鴻??????????羂????ャ????申??
1332 // *************************************************************************
1333 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1334 begin
1335 if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1336 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1337 end;
1338 // *************************************************************************
1339 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1340 // *************************************************************************
1341 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1342 begin
1343 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1344 and (GikoForm.ListView.SelCount > 0);
1345 end;
1346 // *************************************************************************
1347 //! ???鴻????絎鴻??腟???莨若??
1348 // *************************************************************************
1349 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1350 var
1351 Dlg: TListSelectDialog;
1352 FilterList : TStringList;
1353 idx : Integer;
1354 begin
1355 Dlg := TListSelectDialog.Create(GikoForm);
1356 try
1357 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1358 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1359 Dlg.ShowModal;
1360 if Dlg.ModalResult = mrOK then begin
1361 SelectResAction.Checked := True;
1362 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1363 // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1364 ResRangeAction.Execute;
1365 end else begin
1366 GikoSys.ResRange := Ord( grrSelect );
1367
1368 // ??緇???┃絎???????????荀?????????span>
1369 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1370
1371 // 罎?膣√吋罩眼???贋??/span>
1372 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1373 if idx <> -1 then
1374 GikoSys.Setting.SelectTextList.Delete(idx);
1375 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1376 while Dlg.SelectComboBox.Items.Count > 100 do begin
1377 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1378 end;
1379
1380 try
1381 if GikoForm.SelectComboBoxPanel.Visible then
1382 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1383 except
1384 end;
1385
1386 // ???c???帥??┃絎?
1387 FilterList := TStringList.Create;
1388 try
1389 GikoSys.FSelectResFilter.Reverse := True;
1390 FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1391 FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1392
1393 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1394 finally
1395 FilterList.Free;
1396 end;
1397 GikoForm.RepaintAllTabsBrowser();
1398 end;
1399 end else begin
1400 // ???c?潟?祉??/span>
1401 if GikoSys.ResRange <> Ord( grrSelect ) then
1402 ResRangeAction.Execute;
1403 end;
1404 finally
1405 Dlg.Release;
1406 end;
1407
1408 end;
1409 // *************************************************************************
1410 //! ?????????鴻??茵?ず????
1411 // *************************************************************************
1412 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1413 begin
1414 if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1415 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1416
1417 GikoForm.ResRangeMenuSelect := Ord( grrAll );
1418 AllResAction.Checked := True;
1419
1420 //??茵?ず膀??蚊??荐??????
1421 SetResRange(Ord( grrAll ));
1422 end;
1423 // *************************************************************************
1424 //! ???鴻??;腓榊??蚊??荐??
1425 // *************************************************************************
1426 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1427 begin
1428 case GikoForm.ResRangeMenuSelect of
1429 Ord( grrAll ): AllResAction.Execute;
1430 Ord( grrKoko ): OnlyKokoResAction.Execute;
1431 Ord( grrNew ): OnlyNewResAction.Execute;
1432 100: OnlyAHundredResAction.Execute;
1433 end;
1434
1435 end;
1436 // *************************************************************************
1437 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1438 // *************************************************************************
1439 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1440 begin
1441 GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1442 end;
1443 // *************************************************************************
1444 //! ??絎???????垩?????鴻?????/span>
1445 // *************************************************************************
1446 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1447 var
1448 str: string;
1449 res: integer;
1450 begin
1451 str := '1';
1452 if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1453 str := ZenToHan(str);
1454 res := StrToIntDef(str, -1);
1455 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1456 GikoForm.ActiveContent.Move(IntToStr(res));
1457 SetFocusForBrowserAction.Execute;
1458 end else if res > GikoForm.GetActiveContent.Count then begin
1459 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1460 SetFocusForBrowserAction.Execute;
1461 end;
1462 end;
1463 end;
1464 // *************************************************************************
1465 //! ?≪?????c?????帥???????潟????????
1466 // *************************************************************************
1467 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1468 var
1469 i: Integer;
1470 idx: Integer;
1471 begin
1472 idx := GikoForm.BrowserTab.TabIndex;
1473 if idx = -1 then Exit;
1474 GikoForm.BrowserTab.Tabs.BeginUpdate;
1475 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1476 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1477 GikoForm.BrowserTab.Tabs.Delete(i);
1478 end;
1479 GikoForm.BrowserTab.Tabs.EndUpdate;
1480 end;
1481 // *************************************************************************
1482 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1483 // *************************************************************************
1484 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1485 begin
1486 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1487 end;
1488 // *************************************************************************
1489 //! ?≪?????c?????帥??????綏?????????
1490 // *************************************************************************
1491 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1492 var
1493 i: Integer;
1494 idx: Integer;
1495 begin
1496 idx := GikoForm.BrowserTab.TabIndex;
1497 if idx = -1 then Exit;
1498 GikoForm.BrowserTab.Tabs.BeginUpdate;
1499 if idx > 0 then begin
1500 for i := idx - 1 downto 0 do begin
1501 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1502 GikoForm.BrowserTab.Tabs.Delete(i);
1503 end;
1504 end;
1505 GikoForm.BrowserTab.Tabs.EndUpdate;
1506 end;
1507 ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1508 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1509 begin
1510 end;
1511 // *************************************************************************
1512 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1513 // *************************************************************************
1514 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1515 var
1516 chk: TObject;
1517 begin
1518
1519 if GikoForm.SearchDialog = nil then begin
1520 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1521 chk := GikoForm.GetActiveList
1522 else
1523 chk := nil;
1524
1525 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1526 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1527 end;
1528
1529 try
1530 GikoForm.SearchDialog.Show;
1531 except
1532 end;
1533 end;
1534 // *************************************************************************
1535 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1536 // *************************************************************************
1537 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1538 var
1539 Dlg: TOptionDialog;
1540 begin
1541 Dlg := TOptionDialog.Create(GikoForm);
1542 try
1543 Dlg.ShowModal;
1544 finally
1545 Dlg.Release;
1546 end;
1547 end;
1548 // *************************************************************************
1549 //! 綏≦?????ゃ?≪???違??茵?ず????
1550 // *************************************************************************
1551 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1552 var
1553 Dlg: TRoundDialog;
1554 begin
1555 Dlg := TRoundDialog.Create(GikoForm);
1556 try
1557 Dlg.ShowModal;
1558 finally
1559 Dlg.Release;
1560 end;
1561 end;
1562 // *************************************************************************
1563 //! ???取┃絎????ゃ?≪???違??????span>
1564 // *************************************************************************
1565 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1566 var
1567 Dlg: TKeySettingForm;
1568 begin
1569 Dlg := TKeySettingForm.Create(GikoForm);
1570 try
1571 if Dlg.ShowModal = mrOk then begin
1572 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1573 GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.KEY_SETTING_FILE_NAME);
1574 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1575 end;
1576
1577 finally
1578 Dlg.Release;
1579 MouseGesture.UnHook;
1580 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1581 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1582 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1583 if GikoSys.Setting.GestureEnabled then begin
1584 GikoSys.Setting.Gestures.ClearGesture;
1585 GikoSys.Setting.Gestures.LoadGesture(
1586 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1587 MouseGesture.SetHook( GikoForm.Handle );
1588 end;
1589 end;
1590 end;
1591 // *************************************************************************
1592 //! ???取┃絎????ゃ?≪???違??????span>
1593 // *************************************************************************
1594 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1595 var
1596 Dlg: TKotehanDialog;
1597 begin
1598 Dlg := TKotehanDialog.Create(GikoForm);
1599 try
1600 Dlg.ShowModal;
1601 finally
1602 Dlg.Release;
1603 end;
1604 end;
1605 // *************************************************************************
1606 //! ???若?????取┃絎????ゃ?≪???違??????span>
1607 // *************************************************************************
1608 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1609 var
1610 Dlg: TToolBarSettingDialog;
1611 i: Integer;
1612 begin
1613 Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1614 try
1615 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1616 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1617 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1618 case GikoForm.ToolBarSettingSender of
1619 tssMain: Dlg.ToolBarIndex := 0;
1620 tssList: Dlg.ToolBarIndex := 1;
1621 tssBrowser: Dlg.ToolBarIndex := 2;
1622 end;
1623 if Dlg.ShowModal = mrOK then begin
1624 GikoForm.SetToolBarPopup;
1625
1626 //?????????荐??????????????????????????c?????????
1627 for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1628 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1629 GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1630 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1631 GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1632 end;
1633 for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1634 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1635 GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1636 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1637 GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1638 end;
1639 for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1640 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1641 GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1642 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1643 GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1644 end;
1645
1646 SaveToolBarSetting(GikoForm.StdToolBar);
1647 SaveToolBarSetting(GikoForm.ListToolBar);
1648 //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1649 GikoForm.SetSelectComboBox;
1650 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1651 SaveToolBarSetting(GikoForm.BrowserToolBar);
1652 end;
1653 finally
1654 Dlg.Release;
1655 GikoForm.ToolBarSettingSender := tssNone;
1656 end;
1657 end;
1658 // *************************************************************************
1659 //! ???ャ?若??
1660 // *************************************************************************
1661 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1662 begin
1663 GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1664 end;
1665 ////////////////////////////////???若???障?с?????障??/////////////////////
1666 // *************************************************************************
1667 //! ?鴻??????筝?荀с???????潟???若??????
1668 // *************************************************************************
1669 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1670 var
1671 Board: TBoard;
1672 TmpTreeNode: TTreeNode;
1673 begin
1674 TmpTreeNode := GikoForm.ClickNode;
1675 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1676 Board := nil;
1677
1678 if TObject(TmpTreeNode.Data) is TBoard then
1679 Board := TBoard(TmpTreeNode.Data)
1680 else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1681 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1682
1683 if Board <> nil then
1684 GikoForm.DownloadList(Board);
1685 end;
1686 // *************************************************************************
1687 //! ?御?????????鴻?????????????潟???若??????
1688 // *************************************************************************
1689 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1690 var
1691 ThreadItem: TThreadItem;
1692 TmpTreeNode: TTreeNode;
1693 begin
1694 TmpTreeNode := GikoForm.ClickNode;
1695 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1696 ThreadItem := nil;
1697
1698 if TObject(TmpTreeNode.Data) is TThreadItem then
1699 ThreadItem := TThreadItem(TmpTreeNode.Data)
1700 else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1701 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1702
1703 if ThreadItem <> nil then
1704 GikoForm.DownloadContent(ThreadItem);
1705 end;
1706 // *************************************************************************
1707 //! ?御?????????帥??RL???潟???若????
1708 // *************************************************************************
1709 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1710 var
1711 TmpTreeNode: TTreeNode;
1712 s: string;
1713 begin
1714 TmpTreeNode := GikoForm.ClickNode;
1715 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1716 if TObject(TmpTreeNode.Data) is TBoard then begin
1717 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1718 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1719 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1720 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1721 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1722 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1723 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1724 end;
1725 Clipboard.AsText := s;
1726 end;
1727 // *************************************************************************
1728 //! ?御?????????帥????????RL???潟???若????
1729 // *************************************************************************
1730 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1731 var
1732 TmpTreeNode: TTreeNode;
1733 s: string;
1734 begin
1735 TmpTreeNode := GikoForm.ClickNode;
1736 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1737 if TObject(TmpTreeNode.Data) is TBoard then begin
1738 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1739 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1740 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1741 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1742 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1743 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1744 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1745 end;
1746 Clipboard.AsText := s;
1747 end;
1748 // *************************************************************************
1749 //! ??羂????ャ????申??????
1750 // *************************************************************************
1751 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1752 begin
1753 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1754 end;
1755 // *************************************************************************
1756 //! ?水??罎?膣?/span>
1757 // *************************************************************************
1758 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1759 var
1760 s : String;
1761 msg : String;
1762 CurItem : TTreeNode;
1763 next : boolean;
1764 begin
1765 if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1766 next := true;
1767 while next do begin
1768 if GikoForm.TreeView.Selected = nil then
1769 CurItem := GikoForm.TreeView.Items.GetFirstNode
1770 else begin
1771 CurItem := GikoForm.TreeView.Selected.GetNext;
1772 if CurItem = nil then
1773 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1774 end;
1775 while CurItem <> nil do begin
1776 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1777 break;
1778 end;
1779 CurItem := CurItem.GetNext;
1780 end;
1781 try
1782 if CurItem = nil then begin
1783 msg := '???????祉???障????鐚?';
1784 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1785 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1786 end else begin
1787 Exit;
1788 end;
1789 GikoForm.TreeView.Select(CurItem);
1790 GikoForm.TreeView.SetFocus;
1791 end else begin
1792 GikoForm.TreeView.Select(CurItem);
1793 GikoForm.TreeView.SetFocus;
1794 msg := '罨<??????障????鐚?';
1795 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1796 next := true;
1797 end else begin
1798 next := false;
1799 end;
1800 end;
1801
1802 except
1803 Exit;
1804 end;
1805 end;
1806 end;
1807 end;
1808 // *************************************************************************
1809 //! ?御?????????帥?????????潟???若????
1810 // *************************************************************************
1811 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1812 var
1813 s: string;
1814 begin
1815 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1816 s := GikoForm.ClickNode.Text;
1817 Clipboard.AsText := s;
1818 end;
1819 ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1820 // *************************************************************************
1821 //! ???違?ゃ?鰹????違?≪??????????
1822 // *************************************************************************
1823 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1824 var
1825 TmpCursor: TCursor;
1826 msg : String;
1827 begin
1828 if GikoSys.Dolib.Connected then begin
1829 //???違?≪????
1830 GikoSys.Dolib.Disconnect;
1831 LoginAction.Checked := False;
1832 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1833 LoginAction.Caption := '???違?ゃ??&L)';
1834 end else begin
1835 TmpCursor := GikoForm.ScreenCursor;
1836 GikoForm.ScreenCursor := crHourGlass;
1837 try
1838 //??絽吾???違?ゃ??/span>
1839 if not GikoSys.Setting.ForcedLogin then begin
1840 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1841 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1842 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1843 if GikoSys.Setting.ReadProxy then begin
1844 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1845 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1846 end else begin
1847 GikoSys.Dolib.ProxyAddress := '';
1848 GikoSys.Dolib.ProxyPort := 0;
1849 end;
1850 if GikoSys.Dolib.Connect then begin
1851 LoginAction.Checked := True;
1852 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1853 LoginAction.Caption := '???違?≪????(&L)';
1854 //LoginToolButton.Style := tbsCheck;
1855 end else begin
1856 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1857 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1858 GikoForm.PlaySound('Error');
1859 LoginAction.Checked := False;
1860 //LoginToolButton.Down := False;
1861 ///LoginToolButton.Style := tbsButton;
1862 end;
1863 end else begin
1864 msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1865 + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1866 + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1867 if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1868 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1869 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1870 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1871 if GikoSys.Setting.ReadProxy then begin
1872 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1873 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1874 end else begin
1875 GikoSys.Dolib.ProxyAddress := '';
1876 GikoSys.Dolib.ProxyPort := 0;
1877 end;
1878 //SSL??絎括??七?吟???違?ゃ??/span>
1879 GikoSys.Dolib.ForcedConnect;
1880 if GikoSys.Dolib.Connect then begin
1881 LoginAction.Checked := True;
1882 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1883 LoginAction.Caption := '???違?≪????(&L)';
1884 //LoginToolButton.Style := tbsCheck;
1885 end else begin
1886 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1887 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1888 GikoForm.PlaySound('Error');
1889 LoginAction.Checked := False;
1890 //LoginToolButton.Down := False;
1891 //LoginToolButton.Style := tbsButton;
1892 end;
1893 end else begin
1894 LoginAction.Checked := False;
1895 //LoginToolButton.Down := False;
1896 //LoginToolButton.Style := tbsButton;
1897 end;
1898 end;
1899 finally
1900 GikoForm.ScreenCursor := TmpCursor;
1901 end;
1902 end;
1903 end;
1904 // *************************************************************************
1905 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1906 // *************************************************************************
1907 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1908 var
1909 Dlg: TNewBoardDialog;
1910 Msg: string;
1911 begin
1912 if GikoForm.EditorFormExists then begin
1913 Msg := '???鴻?????c?帥???????????????????';
1914 MsgBox(GikoForm.Handle, Msg, '??????#39;, MB_OK or MB_ICONSTOP);
1915 Exit;
1916 end;
1917 Dlg := TNewBoardDialog.Create(GikoForm);
1918 try
1919 Dlg.ShowModal;
1920 finally
1921 Dlg.Release;
1922 end;
1923 end;
1924 // *************************************************************************
1925 //! ?御?????????????鴻???????????ゃ????
1926 // *************************************************************************
1927 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1928 const
1929 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1930 DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1931 DEL_TITLE = '???ょ∈茯?';
1932 var
1933 ThreadItem: TThreadItem;
1934 TmpListItem: TListItem;
1935 List: TList;
1936 i: Integer;
1937 begin
1938 List := TList.Create;
1939 try
1940 TmpListItem := GikoForm.ListView.Selected;
1941 while TmpListItem <> nil do begin
1942 if TObject(TmpListItem.Data) is TThreadItem then begin
1943 ThreadItem := TThreadItem(TmpListItem.Data);
1944 if ThreadItem.IsLogFile then
1945 List.Add(ThreadItem);
1946 end;
1947 TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1948 end;
1949
1950 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1951 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1952 if List.Count = 1 then begin
1953 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
1954 Exit;
1955 end else begin
1956 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
1957 Exit;
1958 end;
1959 end;
1960 end;
1961
1962 for i := 0 to List.Count - 1 do begin
1963 ThreadItem := TThreadItem(List[i]);
1964 GikoForm.DeleteHistory(ThreadItem);
1965 GikoForm.DeleteTab(ThreadItem);
1966 ThreadItem.DeleteLogFile;
1967
1968 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1969 end;
1970 GikoForm.ListView.Refresh;
1971 finally
1972 List.Free;
1973 end;
1974 end;
1975 // *************************************************************************
1976 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1977 // *************************************************************************
1978 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1979 begin
1980 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1981 and (GikoForm.ListView.SelCount > 0);
1982 end;
1983 // *************************************************************************
1984 //! 腟?莨若?水吋罩眼??羔??祉????
1985 // *************************************************************************
1986 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1987 const
1988 DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1989 DEL_TITLE = '???ょ∈茯?';
1990 begin
1991 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1992 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1993 Exit;
1994 GikoSys.Setting.SelectTextList.Clear;
1995 GikoForm.SelectComboBox.Items.Clear;
1996 GikoForm.SelectComboBox.Text := '';
1997 GikoForm.SetListViewType( gvtAll );
1998 end;
1999 // *************************************************************************
2000 //! ???鴻?????c?帥??????絮ユ???羔??祉????
2001 // *************************************************************************
2002 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
2003 const
2004 DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
2005 DEL_TITLE = '???ょ∈茯?';
2006 begin
2007 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2008 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2009 Exit;
2010 GikoSys.Setting.NameList.Clear;
2011 GikoForm.AllEditroFormNameTextClearClear;
2012 end;
2013 // *************************************************************************
2014 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2015 // *************************************************************************
2016 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2017 const
2018 DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2019 DEL_TITLE = '???ょ∈茯?';
2020 begin
2021 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2022 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2023 Exit;
2024 GikoSys.Setting.MailList.Clear;
2025 GikoForm.AllEditroFormMailTextClearClear;
2026 end;
2027 // *************************************************************************
2028 //! ???潟??????腟?篋?????
2029 // *************************************************************************
2030 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2031 begin
2032 GikoForm.Close;
2033 end;
2034 // *************************************************************************
2035 //! ??羂????ャ?????????鴻???若????絎?茵???????
2036 // *************************************************************************
2037 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2038 begin
2039 ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2040 end;
2041 // *************************************************************************
2042 //! ??羂????ャ?????????鴻???若????絎?茵?????
2043 // *************************************************************************
2044 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2045 begin
2046 if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2047 ShowMessage('???<?ゃ?????阪?????障????');
2048 end else begin
2049 ShowMessage('???<?ゃ?????阪????け?????障????');
2050 end;
2051 end;
2052 // *************************************************************************
2053 //! ?御???鴻???????????<?ゃ?????絖?????
2054 // *************************************************************************
2055 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2056 var
2057 List: TList;
2058 i: Integer;
2059 html: TStringList;
2060 title: string;
2061 begin
2062 List := TList.Create;
2063 try
2064 GikoForm.ScreenCursor := crHourGlass;
2065 GikoForm.SelectListItem(List);
2066 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2067 (GikoSys.Setting.ListHeightState = glsMax)) or
2068 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2069 (GikoSys.Setting.ListWidthState = glsMax)) then
2070 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2071 else if(List.Count = 0) then
2072 ShowMessage('?鴻?????????御?????????????')
2073 else begin
2074 if dat then begin
2075 SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2076 SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2077 end else begin
2078 SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2079 SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2080 end;
2081 for i := 0 to List.Count - 1 do begin
2082 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2083 if dat then begin
2084 SaveDialog.FileName := TThreadItem(List[i]).FileName;
2085 end else begin
2086 SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2087 end;
2088 if SaveDialog.Execute then begin
2089 if dat then begin
2090 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2091 PChar(SaveDialog.FileName), true);
2092 end else begin
2093 html := TStringList.Create;
2094 title := TThreadItem(List[i]).Title;
2095 try
2096 HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2097 html.SaveToFile(SaveDialog.FileName);
2098 THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2099 finally
2100 html.Free;
2101 end;
2102 end;
2103 end;
2104 end;
2105 end;
2106 end;
2107 finally
2108 GikoForm.ScreenCursor := crDefault;
2109 List.Free;
2110 end;
2111 end;
2112 // *************************************************************************
2113 //! ?御???鴻????????HTML???????絖?
2114 // *************************************************************************
2115 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2116 begin
2117 SelectThreadSaveToFile(false);
2118 end;
2119 // *************************************************************************
2120 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2121 // *************************************************************************
2122 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2123 begin
2124 SelectThreadSaveToFile(true);
2125 end;
2126 // *************************************************************************
2127 //! ?帥??????????篆?絖?
2128 // *************************************************************************
2129 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2130 begin
2131 if not GikoForm.SaveTabURLs then begin
2132 if TabsSaveAction.Tag = 0 then
2133 ShowMessage('篆?絖??????帥?????????障????')
2134 else if TabsSaveAction.Tag = 1 then
2135 GikoDM.TabsOpenAction.Tag := -1;
2136 end;
2137 end;
2138 // *************************************************************************
2139 //! ?帥??????????緇???
2140 // *************************************************************************
2141 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2142 begin
2143 if TabsOpenAction.Tag <> -1 then begin
2144 if not GikoForm.LoadTabURLs then begin
2145 if TabsOpenAction.Tag = 0 then
2146 ShowMessage('茵?ず?????帥?????????障??????');
2147 end;
2148 end;
2149 end;
2150 // *************************************************************************
2151 //! ?帥??????????????篆?絖?
2152 // *************************************************************************
2153 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2154 begin
2155 GikoForm.SaveTabURLs;
2156 end;
2157 // *************************************************************************
2158 //! ?帥??????????????緇???
2159 // *************************************************************************
2160 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2161 begin
2162 GikoForm.LoadTabURLs;
2163 end;
2164 // *************************************************************************
2165 //! Be2ch?????違?ゃ?????違?≪????????
2166 // *************************************************************************
2167 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2168 begin
2169 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2170 end;
2171 // *************************************************************************
2172 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2173 // *************************************************************************
2174 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2175 begin
2176 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2177 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2178 else BeLogInOutAction.Checked := false;
2179 BeLogInOutAction.Enabled := true
2180 end else
2181 BeLogInOutAction.Enabled := false;
2182 end;
2183 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2184 // *************************************************************************
2185 //! ?潟?潟?障?ц?????
2186 // *************************************************************************
2187 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2188 var
2189 No: Integer;
2190 ThreadItem: TThreadItem;
2191 begin
2192 No := GikoForm.KokoPopupMenu.Tag;
2193 if No = 0 then Exit;
2194 ThreadItem := GikoForm.GetActiveContent;
2195 if ThreadItem = nil then Exit;
2196 ThreadItem.Kokomade := No;
2197 GikoForm.ActiveContent.Thread.ScrollTop :=
2198 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2199 GikoForm.ActiveContent.Repaint := true;
2200 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2201 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2202 //Application.ProcessMessages;
2203 end;
2204 // *************************************************************************
2205 //! ?????????
2206 // *************************************************************************
2207 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2208 var
2209 ThreadItem: TThreadItem;
2210 begin
2211 ThreadItem := GikoForm.GetActiveContent;
2212 if ThreadItem = nil then Exit;
2213 ThreadItem.Kokomade := -1;
2214 GikoForm.ActiveContent.Thread.ScrollTop :=
2215 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2216 GikoForm.ActiveContent.Repaint := true;
2217 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2218 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2219 //Application.ProcessMessages;
2220 end;
2221 // *************************************************************************
2222 //! ?潟?潟??????/span>
2223 // *************************************************************************
2224 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2225 var
2226 Editor: TEditorForm;
2227 Item: TThreadItem;
2228 Number: Integer;
2229 begin
2230 Number := GikoForm.KokoPopupMenu.Tag;
2231 if Number = 0 then Exit;
2232 Item := GikoForm.GetActiveContent;
2233 if Item = nil then Exit;
2234
2235 Editor := TEditorForm.Create(GikoForm);
2236 Editor.SetThreadItem(Item);
2237 GikoSys.LoadKeySetting(Editor.ActionList, GikoSys.GetEditorKeyFileName);
2238 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2239 Editor.Show;
2240 Editor.BodyEdit.SetFocus;
2241 end;
2242 // *************************************************************************
2243 //! ?御?????????鴻???潟???若????
2244 // *************************************************************************
2245 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2246 begin
2247 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2248 end;
2249 // *************************************************************************
2250 //! ?御?????????鴻???潟???若????
2251 // *************************************************************************
2252 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2253 var
2254 ThreadItem : TThreadItem;
2255 No, count, rc : Integer;
2256 body : string;
2257 limited: boolean;
2258 begin
2259 No := GikoForm.KokoPopupMenu.Tag;
2260 if No = 0 then Exit;
2261 ThreadItem := GikoForm.GetActiveContent;
2262 if ThreadItem = nil then Exit;
2263 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2264 limited := false;
2265 if count > 20 then begin
2266 rc := GikoUtil.MsgBox(GikoForm.Handle,
2267 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2268 'ID???????≪????茘???',
2269 MB_YESNO or MB_ICONQUESTION);
2270 limited := rc <> ID_YES;
2271 end;
2272 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2273 GikoForm.ActiveContent.IDAnchorPopup(body);
2274 end;
2275 // *************************************************************************
2276 //! ???????鴻???若??????鐚???絽醐?
2277 // *************************************************************************
2278 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2279 begin
2280 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2281 end;
2282 // *************************************************************************
2283 //! ???????鴻???若??????鐚?????
2284 // *************************************************************************
2285 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2286 begin
2287 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2288 end;
2289 // *************************************************************************
2290 //! ???????鴻???若????茹i??/span>
2291 // *************************************************************************
2292 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2293 var
2294 IndividualForm :TIndividualAbonForm;
2295 ThreadItem : TThreadItem;
2296 msg : String;
2297 ReadList : TStringList;
2298 wordCount : TWordCount;
2299 begin
2300 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2301 try
2302 ThreadItem := GikoForm.GetActiveContent;
2303 ThreadItem.ScrollTop :=
2304 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2305 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2306 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2307 ReadList := TStringList.Create;
2308 wordCount := TWordCount.Create;
2309 try
2310 {$IFDEF SPAM_FILTER_ENABLED}
2311 // ?鴻??????茹i??/span>
2312 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2313 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2314 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2315 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2316 {$ENDIF}
2317 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2318 GikoForm.ActiveContent.Repaint := true;
2319 GikoForm.InsertBrowserTab( ThreadItem, True );
2320 end;
2321 finally
2322 wordCount.Free;
2323 ReadList.Free;
2324 end;
2325 end else begin
2326 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2327 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2328 end;
2329 end;
2330 finally
2331 IndividualForm.Release;
2332 end;
2333 end;
2334 // *************************************************************************
2335 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2336 // *************************************************************************
2337 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2338 var
2339 IndividualForm :TIndividualAbonForm;
2340 ThreadItem : TThreadItem;
2341 msg : String;
2342 ReadList : TStringList;
2343 wordCount : TWordCount;
2344 {$IFDEF SPAM_FILTER_ENABLED}
2345 i : Integer;
2346 {$ENDIF}
2347 begin
2348 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2349 try
2350 ThreadItem := GikoForm.GetActiveContent;
2351 ThreadItem.ScrollTop :=
2352 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2353 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2354 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2355 if (IndividualForm.ShowModal = mrOK) then begin
2356 ReadList := TStringList.Create;
2357 wordCount := TWordCount.Create;
2358 try
2359 {$IFDEF SPAM_FILTER_ENABLED}
2360 // ?鴻??????茹i??/span>
2361 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2362 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2363 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2364 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2365 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2366 end;
2367 {$ENDIF}
2368 if IndividualForm.FRepaint then begin
2369 GikoForm.ActiveContent.Repaint := true;
2370 GikoForm.InsertBrowserTab( ThreadItem, True );
2371 end;
2372 finally
2373 wordCount.Free;
2374 ReadList.Free;
2375 end;
2376 end;
2377 end else begin
2378 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2379 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2380 end;
2381 end;
2382 finally
2383 IndividualForm.Release;
2384 end;
2385 end;
2386 // *************************************************************************
2387 //! ????D???若????????絽?/span>
2388 // *************************************************************************
2389 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2390 begin
2391 GikoForm.IndividualAbonID(1);
2392 end;
2393 // *************************************************************************
2394 //! ????D???若?????????/span>
2395 // *************************************************************************
2396 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2397 begin
2398 GikoForm.IndividualAbonID(0);
2399 end;
2400 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2401 // *************************************************************************
2402 //! ???潟?????????с???泣?ゃ????茵?ず????
2403 // *************************************************************************
2404 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2405 begin
2406 GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2407 end;
2408 // *************************************************************************
2409 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2410 // *************************************************************************
2411 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2412 begin
2413 GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2414 end;
2415 // *************************************************************************
2416 //! 鐚??<?????????????????若?吾??茵?ず????
2417 // *************************************************************************
2418 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2419 begin
2420 GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2421 end;
2422 // *************************************************************************
2423 //! ???潟????????????????????span>
2424 // *************************************************************************
2425 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2426 begin
2427 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2428 end;
2429 // *************************************************************************
2430 //! ???若?吾?с?恰???宴??茵?ず????
2431 // *************************************************************************
2432 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2433 var
2434 Dlg: TAboutDialog;
2435 begin
2436 Dlg := TAboutDialog.Create(GikoForm);
2437 try
2438 Dlg.ShowModal;
2439 finally
2440 Dlg.Release;
2441 end;
2442 end;
2443 // *************************************************************************
2444 //! ???潟??????????????茵?ず????
2445 // *************************************************************************
2446 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2447 var
2448 FileName: string;
2449 begin
2450 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2451 if not FileExists(FileName) then begin
2452 MsgBox(
2453 GikoForm.Handle,
2454 '????????荀??ゃ?????障?????с????' + #13#10 +
2455 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2456 '???????????潟???????泣?ゃ????舟?????????障??',
2457 '??????#39;,
2458 MB_ICONSTOP);
2459 Exit;
2460 end;
2461 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2462 end;
2463 // *************************************************************************
2464 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2465 // *************************************************************************
2466 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2467 begin
2468 GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2469 end;
2470 ////////////////////////////////???????障?с?????障??/////////////////////
2471 // *************************************************************************
2472 //! ???鴻????埈;腓冴??紊??眼????
2473 // *************************************************************************
2474 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2475 begin
2476 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2477 GikoForm.ListView.Refresh;
2478 end;
2479 // *************************************************************************
2480 //! 筝?篏???????????Щ??????
2481 // *************************************************************************
2482 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2483 begin
2484 if GikoForm.GetActiveList is TBoard then begin
2485 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2486 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2487 end else if GikoForm.GetActiveList is TCategory then begin
2488 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2489 end;
2490 end;
2491 // *************************************************************************
2492 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2493 // *************************************************************************
2494 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2495 begin
2496 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2497 end;
2498 // *************************************************************************
2499 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2500 // *************************************************************************
2501 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2502 begin
2503 case GikoForm.ListView.ViewStyle of
2504 vsIcon: SmallIconAction.Execute;
2505 vsSmallIcon: ListIconAction.Execute;
2506 vsList: DetailIconAction.Execute;
2507 vsReport: LargeIconAction.Execute;
2508 end;
2509 end;
2510 // *************************************************************************
2511 //! ?鴻???????????鴻??;腓冴????
2512 // *************************************************************************
2513 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2514 begin
2515 try
2516 if GikoForm.ViewType <> gvtAll then
2517 GikoForm.SetListViewType(gvtAll);
2518 GikoSys.Setting.ThreadRange := gtrAll;
2519 AllItemAction.Checked := True;
2520 // SelectComboBox ??吋罩眼???贋?違????????span>
2521 GikoForm.ModifySelectList;
2522 // SelectComboBox ???ゃ????????/span>
2523 if GikoForm.SelectComboBoxPanel.Visible then begin
2524 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2525 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2526 GikoForm.ListView.SetFocus;
2527 end;
2528 except
2529 end;
2530 end;
2531 // *************************************************************************
2532 //! ???井?????鴻?????????帥??茵?ず????
2533 // *************************************************************************
2534 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2535 begin
2536 try
2537 if GikoForm.ViewType <> gvtLog then
2538 GikoForm.SetListViewType(gvtLog);
2539 GikoSys.Setting.ThreadRange := gtrLog;
2540 LogItemAction.Checked := True;
2541 // SelectComboBox ??吋罩眼???贋?違????????span>
2542 GikoForm.ModifySelectList;
2543 // SelectComboBox ???ゃ????????/span>
2544 if GikoForm.SelectComboBoxPanel.Visible then begin
2545 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2546 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2547 GikoForm.ListView.SetFocus;
2548 end;
2549 except
2550 end;
2551 end;
2552 // *************************************************************************
2553 //! ?亥???鴻?????????粋;腓冴????
2554 // *************************************************************************
2555 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2556 begin
2557 try
2558
2559 if GikoForm.ViewType <> gvtNew then
2560 GikoForm.SetListViewType(gvtNew);
2561 GikoSys.Setting.ThreadRange := gtrNew;
2562 NewItemAction.Checked := True;
2563 // SelectComboBox ??吋罩眼???贋?違????????span>
2564 GikoForm.ModifySelectList;
2565 // SelectComboBox ???ゃ????????/span>
2566 if GikoForm.SelectComboBoxPanel.Visible then begin
2567 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2568 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2569 GikoForm.ListView.SetFocus;
2570 end;
2571 except
2572 end;
2573 end;
2574 // *************************************************************************
2575 //! ?鴻????????;腓榊??蚊??荐??
2576 // *************************************************************************
2577 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2578 begin
2579 case GikoSys.Setting.ThreadRange of
2580 gtrAll: AllItemAction.Execute;
2581 gtrLog: LogItemAction.Execute;
2582 gtrNew: NewItemAction.Execute;
2583 end;
2584 end;
2585 // *************************************************************************
2586 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2587 // *************************************************************************
2588 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2589 var
2590 idx: Integer;
2591 Dlg: TListSelectDialog;
2592 begin
2593 try
2594 if GikoForm.SelectComboBoxPanel.Visible then begin
2595 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2596 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2597 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2598 if GikoSys.Setting.ListWidthState = glsMax then
2599 BrowserMinAction.Execute;
2600 end else begin
2601 if GikoSys.Setting.ListHeightState = glsMax then
2602 BrowserMinAction.Execute;
2603 end;
2604 GikoForm.SelectComboBox.SetFocus;
2605 exit;
2606 end;
2607 end;
2608 except
2609 end;
2610
2611 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2612 GikoForm.SelectComboBox.Text := '';
2613 GikoForm.SelectComboBox.Color := clWindow;
2614 end;
2615
2616 AllItemAction.Checked := False;
2617 LogItemAction.Checked := False;
2618 NewItemAction.Checked := False;
2619 //SelectItemAction.Checked := True;
2620 GikoForm.ModifySelectList;
2621 Dlg := TListSelectDialog.Create(GikoForm);
2622 try
2623 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2624 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2625 Dlg.ShowModal;
2626 if Dlg.ModalResult = mrCancel then begin
2627 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2628 AllItemAction.Checked := True;
2629 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2630 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2631 end;
2632
2633 if GikoForm.GetActiveList is TBoard then
2634 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2635 end else begin
2636 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2637 if idx <> -1 then
2638 GikoSys.Setting.SelectTextList.Delete(idx);
2639 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2640 while Dlg.SelectComboBox.Items.Count > 100 do begin
2641 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2642 end;
2643
2644 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2645 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2646 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2647 end else begin
2648 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2649 GikoForm.SelectComboBox.Color := clWindow;
2650 end;
2651 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2652 end;
2653 finally
2654 Dlg.Release;
2655 end;
2656 end;
2657 // *************************************************************************
2658 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2659 // *************************************************************************
2660 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2661 var
2662 Editor: TEditorForm;
2663 begin
2664 if not (GikoForm.GetActiveList is TBoard) then
2665 Exit;
2666 Editor := TEditorForm.Create(GikoForm);
2667 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2668 Editor.Show;
2669 Editor.BodyEdit.SetFocus;
2670 end;
2671 // *************************************************************************
2672 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2673 // *************************************************************************
2674 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2675 var
2676 URL: string;
2677 begin
2678 if GikoForm.GetActiveList is TBoard then begin
2679 URL := TBoard(GikoForm.GetActiveList).URL;
2680 GikoSys.OpenBrowser(URL, gbtAuto);
2681 end;
2682 end;
2683 // *************************************************************************
2684 //! ?御?????????????鴻????????RL???潟???若????
2685 // *************************************************************************
2686 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2687 var
2688 List: TList;
2689 i: Integer;
2690 s: string;
2691 begin
2692 s := '';
2693 List := TList.Create;
2694 try
2695 GikoForm.SelectListItem(List);
2696 for i := 0 to List.Count - 1 do begin
2697 if TObject(List[i]) is TBoard then
2698 s := s + TBoard(List[i]).URL + #13#10
2699 else if TObject(List[i]) is TThreadItem then
2700 s := s + TThreadItem(List[i]).URL + #13#10;
2701 end;
2702 if s <> '' then
2703 Clipboard.AsText := s;
2704 finally
2705 List.Free;
2706 end;
2707 end;
2708 // *************************************************************************
2709 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2710 // *************************************************************************
2711 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2712 begin
2713 if ((GikoForm.GetActiveList is TBoard) or
2714 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2715 TAction(Sender).Enabled := True
2716 else
2717 TAction(Sender).Enabled := False;
2718 end;
2719 // *************************************************************************
2720 //! ?御?????????????帥?????????潟???若????
2721 // *************************************************************************
2722 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2723 var
2724 List: TList;
2725 i: Integer;
2726 s: string;
2727 begin
2728 s := '';
2729 List := TList.Create;
2730 try
2731 GikoForm.SelectListItem(List);
2732 for i := 0 to List.Count - 1 do begin
2733 if TObject(List[i]) is TBoard then
2734 s := s + TBoard(List[i]).Title + #13#10
2735 else if TObject(List[i]) is TThreadItem then
2736 s := s + TThreadItem(List[i]).Title + #13#10;
2737 end;
2738 if s <> '' then
2739 Clipboard.AsText := s;
2740 finally
2741 List.Free;
2742 end;
2743 end;
2744 // *************************************************************************
2745 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2746 // *************************************************************************
2747 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2748 begin
2749 if ((GikoForm.GetActiveList is TBoard) or
2750 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2751 TAction(Sender).Enabled := True
2752 else
2753 TAction(Sender).Enabled := False;
2754 end;
2755 // *************************************************************************
2756 //! ?御?????????????鴻??????????????RL???潟???若????
2757 // *************************************************************************
2758 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2759 var
2760 List: TList;
2761 i: Integer;
2762 s: string;
2763 begin
2764 s := '';
2765 List := TList.Create;
2766 try
2767 GikoForm.SelectListItem(List);
2768 for i := 0 to List.Count - 1 do begin
2769 if TObject(List[i]) is TBoard then
2770 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2771 else if TObject(List[i]) is TThreadItem then
2772 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2773 end;
2774 if s <> '' then
2775 Clipboard.AsText := s;
2776 finally
2777 List.Free;
2778 end;
2779 end;
2780 // *************************************************************************
2781 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2782 // *************************************************************************
2783 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2784 var
2785 i: Integer;
2786 List: TList;
2787 msg: string;
2788 shiftDown: Boolean;
2789 begin
2790 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2791 if GikoForm.GetActiveList is TCategory then begin
2792 List := TList.Create;
2793 try
2794 GikoForm.SelectListItem(List);
2795 if List.Count > 5 then begin
2796 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2797 + '鐚??<????????莢??決蚕羝????????????????';
2798 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2799 Exit;
2800 end;
2801 for i := 0 to List.Count - 1 do begin
2802 if TObject(List[i]) is TBoard then
2803 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2804 end;
2805 finally
2806 List.Free;
2807 end;
2808 end else if GikoForm.GetActiveList is TBoard then begin
2809 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2810 end;
2811 end;
2812 // *************************************************************************
2813 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2814 // *************************************************************************
2815 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2816 begin
2817 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2818 TAction(Sender).Enabled := True
2819 else if GikoForm.GetActiveList is TBoard then
2820 TAction(Sender).Enabled := True
2821 else
2822 TAction(Sender).Enabled := False;
2823 end;
2824 // *************************************************************************
2825 //! ?御?????????????鴻?????????????潟???若??????
2826 // *************************************************************************
2827 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2828 var
2829 List: TList;
2830 i: Integer;
2831 msg: string;
2832 shiftDown: Boolean;
2833 begin
2834 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2835 List := TList.Create;
2836 try
2837 GikoForm.SelectListItem(List);
2838 if List.Count > 10 then begin
2839 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2840 + '鐚??<????????莢??決蚕羝????????????????';
2841 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2842 Exit;
2843 end;
2844 for i := 0 to List.Count - 1 do begin
2845 if TObject(List[i]) is TThreadItem then
2846 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2847 end;
2848 finally
2849 List.Free;
2850 end;
2851 end;
2852 // *************************************************************************
2853 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2854 // *************************************************************************
2855 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2856 begin
2857 TAction(Sender).Enabled :=
2858 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2859 end;
2860 // *************************************************************************
2861 //! ?鴻??????綏≦??篋?膣?
2862 // *************************************************************************
2863 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2864 begin
2865 //INFO 2005/11/19 ?????種???by ??????
2866 // ?????潟?<?潟?????ゃ?????????/span>
2867 end;
2868 // *************************************************************************
2869 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2870 // *************************************************************************
2871 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2872 var
2873 i: Integer;
2874 List: TList;
2875 begin
2876 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2877 List := TList.Create;
2878 try
2879 GikoForm.SelectListItem(List);
2880 for i := 0 to List.Count - 1 do begin
2881 if TObject(List[i]) is TThreadItem then begin
2882 if TThreadItem(List[i]).IsLogFile then begin
2883 SelectReservAction.Enabled := True;
2884 Exit;
2885 end;
2886 end;
2887 end;
2888 SelectReservAction.Enabled := False;
2889 finally
2890 List.Free;
2891 end;
2892 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2893 SelectReservAction.Enabled := True
2894 else
2895 SelectReservAction.Enabled := False;
2896 end;
2897 // *************************************************************************
2898 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2899 // *************************************************************************
2900 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2901 var
2902 s: string;
2903 Dlg: TRoundNameDialog;
2904 cnt: Integer;
2905
2906 begin
2907 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2908 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2909 Exit;
2910
2911 //?脂?俄??????с????/span>
2912 cnt := RoundList.Count[grtBoard];
2913 cnt := cnt + RoundList.Count[grtItem];
2914 if cnt > 500 then begin
2915 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', '??????#39;, MB_OK or MB_ICONSTOP);
2916 Exit;
2917 end;
2918
2919 Dlg := TRoundNameDialog.Create(GikoForm);
2920 try
2921 Dlg.ShowModal;
2922 if Dlg.ModalResult <> mrCancel then begin
2923 s := Trim(Dlg.RoundNameEdit.Text);
2924 if (Sender is TMenuItem) then begin
2925 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2926 end else if (Sender is TAction) then begin
2927 if (GikoForm.ListView.Selected <> nil) then begin
2928 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
2929 GikoForm.SetSelectItemRound(True, s,
2930