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.36 - (show annotations) (download) (as text)
Mon May 29 14:55:21 2006 UTC (17 years, 10 months ago) by h677
Branch: MAIN
CVS Tags: v1_52_1_658, v1_52_0_654, v1_52_1_657, v1_52_0_655, v1_52_0_656
Branch point for: Bb52
Changes since 1.35: +21 -4 lines
File MIME type: text/x-pascal
お気に入りキャビネットでの、コンテキストメニューの調整

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