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.37 - (show annotations) (download) (as text)
Sun Jun 25 13:14:35 2006 UTC (17 years, 9 months ago) by h677
Branch: MAIN
Changes since 1.36: +1 -0 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 GikoForm.DeleteHistory(ThreadItem);
1251 ThreadItem.DeleteLogFile;
1252 if ThreadItem.ParentBoard = GikoForm.ActiveList then
1253 GikoForm.ListView.Refresh;
1254 end;
1255 end;
1256 end;
1257 // *************************************************************************
1258 //! 筝???窪???帥?????御??????
1259 // *************************************************************************
1260 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1261 begin
1262 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1263 GikoForm.BrowserTab.TabIndex := 0;
1264 GikoForm.BrowserTab.OnChange(nil);
1265 end;
1266 end;
1267 // *************************************************************************
1268 //! ?帥?????違??鐚?篁ヤ??с???帥?????ゃ?潟???????鴻??鐚?篁ュ??ф???鴻??????Update?ゃ???潟??
1269 // *************************************************************************
1270 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1271 begin
1272 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1273 and (GikoForm.BrowserTab.TabIndex <> 0);
1274 end;
1275 // *************************************************************************
1276 //! 綏????帥?????御??????
1277 // *************************************************************************
1278 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1279 begin
1280 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1281 if GikoForm.BrowserTab.TabIndex = -1 then begin
1282 GikoForm.BrowserTab.TabIndex := 0;
1283 GikoForm.BrowserTab.OnChange(nil);
1284 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1285 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1286 GikoForm.BrowserTab.OnChange(nil);
1287 end;
1288 end;
1289 end;
1290 // *************************************************************************
1291 //! ?潟???帥?????御??????
1292 // *************************************************************************
1293 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1294 begin
1295 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1296 if GikoForm.BrowserTab.TabIndex = -1 then begin
1297 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1298 GikoForm.BrowserTab.OnChange(nil);
1299 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1300 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1301 GikoForm.BrowserTab.OnChange(nil);
1302 end;
1303 end;
1304 end;
1305 // *************************************************************************
1306 //! ?帥?????違??鐚?篁ヤ??с???帥?????括?篁ュ??ф???鴻??????Update?ゃ???潟??
1307 // *************************************************************************
1308 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1309 begin
1310 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1311 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1312 end;
1313 // *************************************************************************
1314 //! 筝???劻???帥?????御??????
1315 // *************************************************************************
1316 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1317 begin
1318 if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1319 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1320 GikoForm.BrowserTab.OnChange(nil);
1321 end;
1322 end;
1323 // *************************************************************************
1324 //! ?御?????????????鴻??????????羂????ャ????申??
1325 // *************************************************************************
1326 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1327 begin
1328 if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1329 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1330 end;
1331 // *************************************************************************
1332 //! ?鴻??????筝?荀с?с???鴻????鐚??や札筝??御???????????????鴻??????Update?ゃ???潟??
1333 // *************************************************************************
1334 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1335 begin
1336 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1337 and (GikoForm.ListView.SelCount > 0);
1338 end;
1339 // *************************************************************************
1340 //! ???鴻????絎鴻??腟???莨若??
1341 // *************************************************************************
1342 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1343 var
1344 Dlg: TListSelectDialog;
1345 FilterList : TStringList;
1346 idx : Integer;
1347 begin
1348 Dlg := TListSelectDialog.Create(GikoForm);
1349 try
1350 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1351 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1352 Dlg.ShowModal;
1353 if Dlg.ModalResult = mrOK then begin
1354 SelectResAction.Checked := True;
1355 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1356 // 腥阪?ュ??? OK ?????莨若?粋В?ゃ?????靸?/span>
1357 ResRangeAction.Execute;
1358 end else begin
1359 GikoSys.ResRange := Ord( grrSelect );
1360
1361 // ??緇???┃絎???????????荀?????????span>
1362 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1363
1364 // 罎?膣√吋罩眼???贋??/span>
1365 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1366 if idx <> -1 then
1367 GikoSys.Setting.SelectTextList.Delete(idx);
1368 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1369 while Dlg.SelectComboBox.Items.Count > 100 do begin
1370 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1371 end;
1372
1373 try
1374 if GikoForm.SelectComboBoxPanel.Visible then
1375 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1376 except
1377 end;
1378
1379 // ???c???帥??┃絎?
1380 FilterList := TStringList.Create;
1381 try
1382 GikoSys.FSelectResFilter.Reverse := True;
1383 FilterList.Delimiter := ' '; //?阪????絖?????茹??鴻???若?鴻??┃絎?
1384 FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1385
1386 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1387 finally
1388 FilterList.Free;
1389 end;
1390 GikoForm.RepaintAllTabsBrowser();
1391 end;
1392 end else begin
1393 // ???c?潟?祉??/span>
1394 if GikoSys.ResRange <> Ord( grrSelect ) then
1395 ResRangeAction.Execute;
1396 end;
1397 finally
1398 Dlg.Release;
1399 end;
1400
1401 end;
1402 // *************************************************************************
1403 //! ?????????鴻??茵?ず????
1404 // *************************************************************************
1405 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1406 begin
1407 if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1408 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1409
1410 GikoForm.ResRangeMenuSelect := Ord( grrAll );
1411 AllResAction.Checked := True;
1412
1413 //??茵?ず膀??蚊??荐??????
1414 SetResRange(Ord( grrAll ));
1415 end;
1416 // *************************************************************************
1417 //! ???鴻??;腓榊??蚊??荐??
1418 // *************************************************************************
1419 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1420 begin
1421 case GikoForm.ResRangeMenuSelect of
1422 Ord( grrAll ): AllResAction.Execute;
1423 Ord( grrKoko ): OnlyKokoResAction.Execute;
1424 Ord( grrNew ): OnlyNewResAction.Execute;
1425 100: OnlyAHundredResAction.Execute;
1426 end;
1427
1428 end;
1429 // *************************************************************************
1430 //! ?????鴻?????????????鴻??????筝?荀с??茵?ず
1431 // *************************************************************************
1432 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1433 begin
1434 GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1435 end;
1436 // *************************************************************************
1437 //! ??絎???????垩?????鴻?????/span>
1438 // *************************************************************************
1439 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1440 var
1441 str: string;
1442 res: integer;
1443 begin
1444 str := '1';
1445 if( InputQuery('??絎???????垩?????鴻?????#39;, '??垩???ュ?????????????', str) ) then begin
1446 str := ZenToHan(str);
1447 res := StrToIntDef(str, -1);
1448 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1449 GikoForm.ActiveContent.Move(IntToStr(res));
1450 SetFocusForBrowserAction.Execute;
1451 end else if res > GikoForm.GetActiveContent.Count then begin
1452 GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1453 SetFocusForBrowserAction.Execute;
1454 end;
1455 end;
1456 end;
1457 // *************************************************************************
1458 //! ?≪?????c?????帥???????潟????????
1459 // *************************************************************************
1460 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1461 var
1462 i: Integer;
1463 idx: Integer;
1464 begin
1465 idx := GikoForm.BrowserTab.TabIndex;
1466 if idx = -1 then Exit;
1467 GikoForm.BrowserTab.Tabs.BeginUpdate;
1468 for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1469 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1470 GikoForm.BrowserTab.Tabs.Delete(i);
1471 end;
1472 GikoForm.BrowserTab.Tabs.EndUpdate;
1473 end;
1474 // *************************************************************************
1475 //! ?帥?????違??鐚?篁ヤ??ф???鴻??pdate?ゃ???潟??
1476 // *************************************************************************
1477 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1478 begin
1479 TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1480 end;
1481 // *************************************************************************
1482 //! ?≪?????c?????帥??????綏?????????
1483 // *************************************************************************
1484 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1485 var
1486 i: Integer;
1487 idx: Integer;
1488 begin
1489 idx := GikoForm.BrowserTab.TabIndex;
1490 if idx = -1 then Exit;
1491 GikoForm.BrowserTab.Tabs.BeginUpdate;
1492 if idx > 0 then begin
1493 for i := idx - 1 downto 0 do begin
1494 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1495 GikoForm.BrowserTab.Tabs.Delete(i);
1496 end;
1497 end;
1498 GikoForm.BrowserTab.Tabs.EndUpdate;
1499 end;
1500 ////////////////////////////////?鴻???????障?с?????障??/////////////////////
1501 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1502 begin
1503 end;
1504 // *************************************************************************
1505 //! ???井?膣≪???ゃ?≪???違??茵?ず????
1506 // *************************************************************************
1507 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1508 var
1509 chk: TObject;
1510 begin
1511
1512 if GikoForm.SearchDialog = nil then begin
1513 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1514 chk := GikoForm.GetActiveList
1515 else
1516 chk := nil;
1517
1518 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1519 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1520 end;
1521
1522 try
1523 GikoForm.SearchDialog.Show;
1524 except
1525 end;
1526 end;
1527 // *************************************************************************
1528 //! ?????激?с?潟???ゃ?≪???違??茵?ず????
1529 // *************************************************************************
1530 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1531 var
1532 Dlg: TOptionDialog;
1533 begin
1534 Dlg := TOptionDialog.Create(GikoForm);
1535 try
1536 Dlg.ShowModal;
1537 finally
1538 Dlg.Release;
1539 end;
1540 end;
1541 // *************************************************************************
1542 //! 綏≦?????ゃ?≪???違??茵?ず????
1543 // *************************************************************************
1544 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1545 var
1546 Dlg: TRoundDialog;
1547 begin
1548 Dlg := TRoundDialog.Create(GikoForm);
1549 try
1550 Dlg.ShowModal;
1551 finally
1552 Dlg.Release;
1553 end;
1554 end;
1555 // *************************************************************************
1556 //! ???取┃絎????ゃ?≪???違??????span>
1557 // *************************************************************************
1558 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1559 var
1560 Dlg: TKeySettingForm;
1561 begin
1562 Dlg := TKeySettingForm.Create(GikoForm);
1563 try
1564 if Dlg.ShowModal = mrOk then begin
1565 GikoSys.SaveKeySetting(GikoFormActionList, Setting.KEY_SETTING_FILE_NAME);
1566 GikoSys.SaveKeySetting(Dlg.EditorForm.ActionList, Setting.EKEY_SETTING_FILE_NAME);
1567 GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1568 end;
1569
1570 finally
1571 Dlg.Release;
1572 MouseGesture.UnHook;
1573 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1574 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1575 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1576 if GikoSys.Setting.GestureEnabled then begin
1577 GikoSys.Setting.Gestures.ClearGesture;
1578 GikoSys.Setting.Gestures.LoadGesture(
1579 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1580 MouseGesture.SetHook( GikoForm.Handle );
1581 end;
1582 end;
1583 end;
1584 // *************************************************************************
1585 //! ???取┃絎????ゃ?≪???違??????span>
1586 // *************************************************************************
1587 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1588 var
1589 Dlg: TKotehanDialog;
1590 begin
1591 Dlg := TKotehanDialog.Create(GikoForm);
1592 try
1593 Dlg.ShowModal;
1594 finally
1595 Dlg.Release;
1596 end;
1597 end;
1598 // *************************************************************************
1599 //! ???若?????取┃絎????ゃ?≪???違??????span>
1600 // *************************************************************************
1601 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1602 var
1603 Dlg: TToolBarSettingDialog;
1604 i: Integer;
1605 begin
1606 Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1607 try
1608 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1609 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1610 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1611 case GikoForm.ToolBarSettingSender of
1612 tssMain: Dlg.ToolBarIndex := 0;
1613 tssList: Dlg.ToolBarIndex := 1;
1614 tssBrowser: Dlg.ToolBarIndex := 2;
1615 end;
1616 if Dlg.ShowModal = mrOK then begin
1617 GikoForm.SetToolBarPopup;
1618
1619 //?????????荐??????????????????????????c?????????
1620 for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1621 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1622 GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1623 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1624 GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1625 end;
1626 for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1627 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1628 GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1629 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1630 GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1631 end;
1632 for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1633 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1634 GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1635 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1636 GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1637 end;
1638
1639 SaveToolBarSetting(GikoForm.StdToolBar);
1640 SaveToolBarSetting(GikoForm.ListToolBar);
1641 //ListToolBar??????????????????腟?莨若??omboBox????臀?/span>
1642 GikoForm.SetSelectComboBox;
1643 GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1644 SaveToolBarSetting(GikoForm.BrowserToolBar);
1645 end;
1646 finally
1647 Dlg.Release;
1648 GikoForm.ToolBarSettingSender := tssNone;
1649 end;
1650 end;
1651 // *************************************************************************
1652 //! ???ャ?若??
1653 // *************************************************************************
1654 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1655 begin
1656 GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1657 end;
1658 ////////////////////////////////???若???障?с?????障??/////////////////////
1659 // *************************************************************************
1660 //! ?鴻??????筝?荀с???????潟???若??????
1661 // *************************************************************************
1662 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1663 var
1664 Board: TBoard;
1665 TmpTreeNode: TTreeNode;
1666 begin
1667 TmpTreeNode := GikoForm.ClickNode;
1668 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1669 Board := nil;
1670
1671 if TObject(TmpTreeNode.Data) is TBoard then
1672 Board := TBoard(TmpTreeNode.Data)
1673 else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1674 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1675
1676 if Board <> nil then
1677 GikoForm.DownloadList(Board);
1678 end;
1679 // *************************************************************************
1680 //! ?御?????????鴻?????????????潟???若??????
1681 // *************************************************************************
1682 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1683 var
1684 ThreadItem: TThreadItem;
1685 TmpTreeNode: TTreeNode;
1686 begin
1687 TmpTreeNode := GikoForm.ClickNode;
1688 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1689 ThreadItem := nil;
1690
1691 if TObject(TmpTreeNode.Data) is TThreadItem then
1692 ThreadItem := TThreadItem(TmpTreeNode.Data)
1693 else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1694 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1695
1696 if ThreadItem <> nil then
1697 GikoForm.DownloadContent(ThreadItem);
1698 end;
1699 // *************************************************************************
1700 //! ?御?????????帥??RL???潟???若????
1701 // *************************************************************************
1702 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1703 var
1704 TmpTreeNode: TTreeNode;
1705 s: string;
1706 begin
1707 TmpTreeNode := GikoForm.ClickNode;
1708 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1709 if TObject(TmpTreeNode.Data) is TBoard then begin
1710 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1711 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1712 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1713 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1714 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1715 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1716 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1717 end;
1718 Clipboard.AsText := s;
1719 end;
1720 // *************************************************************************
1721 //! ?御?????????帥????????RL???潟???若????
1722 // *************************************************************************
1723 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1724 var
1725 TmpTreeNode: TTreeNode;
1726 s: string;
1727 begin
1728 TmpTreeNode := GikoForm.ClickNode;
1729 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1730 if TObject(TmpTreeNode.Data) is TBoard then begin
1731 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1732 end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1733 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1734 end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1735 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1736 end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1737 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1738 end;
1739 Clipboard.AsText := s;
1740 end;
1741 // *************************************************************************
1742 //! ??羂????ャ????申??????
1743 // *************************************************************************
1744 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1745 begin
1746 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1747 end;
1748 // *************************************************************************
1749 //! ?水??罎?膣?/span>
1750 // *************************************************************************
1751 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1752 var
1753 s : String;
1754 msg : String;
1755 CurItem : TTreeNode;
1756 next : boolean;
1757 begin
1758 if InputQuery('?水??罎?膣?#39;,'?水?????ュ??',s) then begin
1759 next := true;
1760 while next do begin
1761 if GikoForm.TreeView.Selected = nil then
1762 CurItem := GikoForm.TreeView.Items.GetFirstNode
1763 else begin
1764 CurItem := GikoForm.TreeView.Selected.GetNext;
1765 if CurItem = nil then
1766 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1767 end;
1768 while CurItem <> nil do begin
1769 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1770 break;
1771 end;
1772 CurItem := CurItem.GetNext;
1773 end;
1774 try
1775 if CurItem = nil then begin
1776 msg := '???????祉???障????鐚?';
1777 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1778 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1779 end else begin
1780 Exit;
1781 end;
1782 GikoForm.TreeView.Select(CurItem);
1783 GikoForm.TreeView.SetFocus;
1784 end else begin
1785 GikoForm.TreeView.Select(CurItem);
1786 GikoForm.TreeView.SetFocus;
1787 msg := '罨<??????障????鐚?';
1788 if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1789 next := true;
1790 end else begin
1791 next := false;
1792 end;
1793 end;
1794
1795 except
1796 Exit;
1797 end;
1798 end;
1799 end;
1800 end;
1801 // *************************************************************************
1802 //! ?御?????????帥?????????潟???若????
1803 // *************************************************************************
1804 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1805 var
1806 s: string;
1807 begin
1808 GikoForm.TreeView.Selected := GikoForm.ClickNode;
1809 s := GikoForm.ClickNode.Text;
1810 Clipboard.AsText := s;
1811 end;
1812 ////////////////////////////////?????若???????≪?????障?с?????障??/////////////////////
1813 // *************************************************************************
1814 //! ???違?ゃ?鰹????違?≪??????????
1815 // *************************************************************************
1816 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1817 var
1818 TmpCursor: TCursor;
1819 msg : String;
1820 begin
1821 if GikoSys.Dolib.Connected then begin
1822 //???違?≪????
1823 GikoSys.Dolib.Disconnect;
1824 LoginAction.Checked := False;
1825 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogout), nil, gmiOK);
1826 LoginAction.Caption := '???違?ゃ??&L)';
1827 end else begin
1828 TmpCursor := GikoForm.ScreenCursor;
1829 GikoForm.ScreenCursor := crHourGlass;
1830 try
1831 //??絽吾???違?ゃ??/span>
1832 if not GikoSys.Setting.ForcedLogin then begin
1833 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1834 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1835 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1836 if GikoSys.Setting.ReadProxy then begin
1837 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1838 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1839 end else begin
1840 GikoSys.Dolib.ProxyAddress := '';
1841 GikoSys.Dolib.ProxyPort := 0;
1842 end;
1843 if GikoSys.Dolib.Connect then begin
1844 LoginAction.Checked := True;
1845 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1846 LoginAction.Caption := '???違?≪????(&L)';
1847 //LoginToolButton.Style := tbsCheck;
1848 end else begin
1849 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1850 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1851 GikoForm.PlaySound('Error');
1852 LoginAction.Checked := False;
1853 //LoginToolButton.Down := False;
1854 ///LoginToolButton.Style := tbsButton;
1855 end;
1856 end else begin
1857 msg := '綣桁?吟???違?ゃ?潟?≪?若???с????泣?若????┝???吾?????号?с?????с???????障??????' + #13#10
1858 + '?処??泣?若?????翫???????????????鴻???若?????障???????醇?с???????障????' + #13#10
1859 + '?????≪?若???с???違?ゃ?潟??荅??帥?障????鐚?' + #13#10;
1860 if MsgBox(GikoForm.Handle, msg, '茘???', MB_YESNO or MB_ICONEXCLAMATION) = IDYES then begin
1861 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1862 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1863 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1864 if GikoSys.Setting.ReadProxy then begin
1865 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1866 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1867 end else begin
1868 GikoSys.Dolib.ProxyAddress := '';
1869 GikoSys.Dolib.ProxyPort := 0;
1870 end;
1871 //SSL??絎括??七?吟???違?ゃ??/span>
1872 GikoSys.Dolib.ForcedConnect;
1873 if GikoSys.Dolib.Connect then begin
1874 LoginAction.Checked := True;
1875 GikoForm.AddMessageList(GikoSys.GetGikoMessage(gmForceLogin) + GikoSys.Setting.UserID, nil, gmiOK);
1876 LoginAction.Caption := '???違?≪????(&L)';
1877 //LoginToolButton.Style := tbsCheck;
1878 end else begin
1879 // MsgBox(Handle, '???違?ゃ?喝?堺?ャ?障?????с????', '??????#39;, MB_OK or MB_ICONSTOP);
1880 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1881 GikoForm.PlaySound('Error');
1882 LoginAction.Checked := False;
1883 //LoginToolButton.Down := False;
1884 //LoginToolButton.Style := tbsButton;
1885 end;
1886 end else begin
1887 LoginAction.Checked := False;
1888 //LoginToolButton.Down := False;
1889 //LoginToolButton.Style := tbsButton;
1890 end;
1891 end;
1892 finally
1893 GikoForm.ScreenCursor := TmpCursor;
1894 end;
1895 end;
1896 end;
1897 // *************************************************************************
1898 //! ???若???贋?違???ゃ?≪???違??茵?ず????
1899 // *************************************************************************
1900 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1901 var
1902 Dlg: TNewBoardDialog;
1903 Msg: string;
1904 begin
1905 if GikoForm.EditorFormExists then begin
1906 Msg := '???鴻?????c?帥???????????????????';
1907 MsgBox(GikoForm.Handle, Msg, '??????#39;, MB_OK or MB_ICONSTOP);
1908 Exit;
1909 end;
1910 Dlg := TNewBoardDialog.Create(GikoForm);
1911 try
1912 Dlg.ShowModal;
1913 finally
1914 Dlg.Release;
1915 end;
1916 end;
1917 // *************************************************************************
1918 //! ?御?????????????鴻???????????ゃ????
1919 // *************************************************************************
1920 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1921 const
1922 DEL_MSG = '??^0???????違?????ゃ???障?????????????с????鐚?';
1923 DEL_SAME_MSG = '?????? ^0 ?????鴻???????????違?????ゃ???障?????????????с????鐚?';
1924 DEL_TITLE = '???ょ∈茯?';
1925 var
1926 ThreadItem: TThreadItem;
1927 TmpListItem: TListItem;
1928 List: TList;
1929 i: Integer;
1930 begin
1931 List := TList.Create;
1932 try
1933 TmpListItem := GikoForm.ListView.Selected;
1934 while TmpListItem <> nil do begin
1935 if TObject(TmpListItem.Data) is TThreadItem then begin
1936 ThreadItem := TThreadItem(TmpListItem.Data);
1937 if ThreadItem.IsLogFile then
1938 List.Add(ThreadItem);
1939 end;
1940 TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1941 end;
1942
1943 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1944 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1945 if List.Count = 1 then begin
1946 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1947 Exit;
1948 end else begin
1949 if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
1950 Exit;
1951 end;
1952 end;
1953 end;
1954
1955 for i := 0 to List.Count - 1 do begin
1956 ThreadItem := TThreadItem(List[i]);
1957 GikoForm.DeleteHistory(ThreadItem);
1958 GikoForm.DeleteTab(ThreadItem);
1959 ThreadItem.DeleteLogFile;
1960
1961 GikoForm.TreeView.Refresh; // UnRead ??;腓冴???贋??/span>
1962 end;
1963 GikoForm.ListView.Refresh;
1964 finally
1965 List.Free;
1966 end;
1967 end;
1968 // *************************************************************************
1969 //! ActiveList??TBoard?с?鴻???荀с?э??や札筝??御???????????????鴻??????Action?у?演??
1970 // *************************************************************************
1971 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1972 begin
1973 TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1974 and (GikoForm.ListView.SelCount > 0);
1975 end;
1976 // *************************************************************************
1977 //! 腟?莨若?水吋罩眼??羔??祉????
1978 // *************************************************************************
1979 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1980 const
1981 DEL_MSG = '腟?莨若?水??吋罩眼?????ゃ???障?????????????с????鐚?';
1982 DEL_TITLE = '???ょ∈茯?';
1983 begin
1984 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1985 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1986 Exit;
1987 GikoSys.Setting.SelectTextList.Clear;
1988 GikoForm.SelectComboBox.Items.Clear;
1989 GikoForm.SelectComboBox.Text := '';
1990 GikoForm.SetListViewType( gvtAll );
1991 end;
1992 // *************************************************************************
1993 //! ???鴻?????c?帥??????絮ユ???羔??祉????
1994 // *************************************************************************
1995 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1996 const
1997 DEL_MSG = '???鴻?????c?水??????吋罩眼?????ゃ???障?????????????с????鐚?';
1998 DEL_TITLE = '???ょ∈茯?';
1999 begin
2000 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2001 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2002 Exit;
2003 GikoSys.Setting.NameList.Clear;
2004 GikoForm.AllEditroFormNameTextClearClear;
2005 end;
2006 // *************************************************************************
2007 //! ???鴻?????c?帥???<?若??吋罩眼??羔??祉????
2008 // *************************************************************************
2009 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
2010 const
2011 DEL_MSG = '???鴻?????c?帥?<?若????吋罩眼?????ゃ???障?????????????с????鐚?';
2012 DEL_TITLE = '???ょ∈茯?';
2013 begin
2014 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
2015 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
2016 Exit;
2017 GikoSys.Setting.MailList.Clear;
2018 GikoForm.AllEditroFormMailTextClearClear;
2019 end;
2020 // *************************************************************************
2021 //! ???潟??????腟?篋?????
2022 // *************************************************************************
2023 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2024 begin
2025 GikoForm.Close;
2026 end;
2027 // *************************************************************************
2028 //! ??羂????ャ?????????鴻???若????絎?茵???????
2029 // *************************************************************************
2030 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2031 begin
2032 ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2033 end;
2034 // *************************************************************************
2035 //! ??羂????ャ?????????鴻???若????絎?茵?????
2036 // *************************************************************************
2037 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2038 begin
2039 if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2040 ShowMessage('???<?ゃ?????阪?????障????');
2041 end else begin
2042 ShowMessage('???<?ゃ?????阪????け?????障????');
2043 end;
2044 end;
2045 // *************************************************************************
2046 //! ?御???鴻???????????<?ゃ?????絖?????
2047 // *************************************************************************
2048 procedure TGikoDM.SelectThreadSaveToFile(dat: Boolean);
2049 var
2050 List: TList;
2051 i: Integer;
2052 html: TStringList;
2053 title: string;
2054 begin
2055 List := TList.Create;
2056 try
2057 GikoForm.ScreenCursor := crHourGlass;
2058 GikoForm.SelectListItem(List);
2059 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2060 (GikoSys.Setting.ListHeightState = glsMax)) or
2061 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2062 (GikoSys.Setting.ListWidthState = glsMax)) then
2063 ShowMessage('?鴻??????筝?荀с??茵?ず???????????')
2064 else if(List.Count = 0) then
2065 ShowMessage('?鴻?????????御?????????????')
2066 else begin
2067 if dat then begin
2068 SaveDialog.Title := '?御???鴻????????dat???障?鞘?絖?';
2069 SaveDialog.Filter := 'DAT???<?ゃ??*.dat)|*.dat';
2070 end else begin
2071 SaveDialog.Title := '?御???鴻????????HTML???????絖?';
2072 SaveDialog.Filter := 'HTML???<?ゃ??*.html)|*.html';
2073 end;
2074 for i := 0 to List.Count - 1 do begin
2075 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2076 if dat then begin
2077 SaveDialog.FileName := TThreadItem(List[i]).FileName;
2078 end else begin
2079 SaveDialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2080 end;
2081 if SaveDialog.Execute then begin
2082 if dat then begin
2083 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2084 PChar(SaveDialog.FileName), true);
2085 end else begin
2086 html := TStringList.Create;
2087 title := TThreadItem(List[i]).Title;
2088 try
2089 HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2090 html.SaveToFile(SaveDialog.FileName);
2091 THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(SaveDialog.FileName));
2092 finally
2093 html.Free;
2094 end;
2095 end;
2096 end;
2097 end;
2098 end;
2099 end;
2100 finally
2101 GikoForm.ScreenCursor := crDefault;
2102 List.Free;
2103 end;
2104 end;
2105 // *************************************************************************
2106 //! ?御???鴻????????HTML???????絖?
2107 // *************************************************************************
2108 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2109 begin
2110 SelectThreadSaveToFile(false);
2111 end;
2112 // *************************************************************************
2113 //! ?御???鴻????????DAT綵√????障?鞘?絖?
2114 // *************************************************************************
2115 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2116 begin
2117 SelectThreadSaveToFile(true);
2118 end;
2119 // *************************************************************************
2120 //! ?帥??????????篆?絖?
2121 // *************************************************************************
2122 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2123 begin
2124 if not GikoForm.SaveTabURLs then begin
2125 if TabsSaveAction.Tag = 0 then
2126 ShowMessage('篆?絖??????帥?????????障????')
2127 else if TabsSaveAction.Tag = 1 then
2128 GikoDM.TabsOpenAction.Tag := -1;
2129 end;
2130 end;
2131 // *************************************************************************
2132 //! ?帥??????????緇???
2133 // *************************************************************************
2134 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2135 begin
2136 if TabsOpenAction.Tag <> -1 then begin
2137 if not GikoForm.LoadTabURLs then begin
2138 if TabsOpenAction.Tag = 0 then
2139 ShowMessage('茵?ず?????帥?????????障??????');
2140 end;
2141 end;
2142 end;
2143 // *************************************************************************
2144 //! ?帥??????????????篆?絖?
2145 // *************************************************************************
2146 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2147 begin
2148 GikoForm.SaveTabURLs;
2149 end;
2150 // *************************************************************************
2151 //! ?帥??????????????緇???
2152 // *************************************************************************
2153 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2154 begin
2155 GikoForm.LoadTabURLs;
2156 end;
2157 // *************************************************************************
2158 //! Be2ch?????違?ゃ?????違?≪????????
2159 // *************************************************************************
2160 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2161 begin
2162 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2163 end;
2164 // *************************************************************************
2165 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2166 // *************************************************************************
2167 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2168 begin
2169 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2170 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2171 else BeLogInOutAction.Checked := false;
2172 BeLogInOutAction.Enabled := true
2173 end else
2174 BeLogInOutAction.Enabled := false;
2175 end;
2176 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2177 // *************************************************************************
2178 //! ?潟?潟?障?ц?????
2179 // *************************************************************************
2180 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2181 var
2182 No: Integer;
2183 ThreadItem: TThreadItem;
2184 begin
2185 No := GikoForm.KokoPopupMenu.Tag;
2186 if No = 0 then Exit;
2187 ThreadItem := GikoForm.GetActiveContent;
2188 if ThreadItem = nil then Exit;
2189 ThreadItem.Kokomade := No;
2190 GikoForm.ActiveContent.Thread.ScrollTop :=
2191 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2192 GikoForm.ActiveContent.Repaint := true;
2193 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2194 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2195 //Application.ProcessMessages;
2196 end;
2197 // *************************************************************************
2198 //! ?????????
2199 // *************************************************************************
2200 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2201 var
2202 ThreadItem: TThreadItem;
2203 begin
2204 ThreadItem := GikoForm.GetActiveContent;
2205 if ThreadItem = nil then Exit;
2206 ThreadItem.Kokomade := -1;
2207 GikoForm.ActiveContent.Thread.ScrollTop :=
2208 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2209 GikoForm.ActiveContent.Repaint := true;
2210 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2211 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2212 //Application.ProcessMessages;
2213 end;
2214 // *************************************************************************
2215 //! ?潟?潟??????/span>
2216 // *************************************************************************
2217 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2218 var
2219 Editor: TEditorForm;
2220 Item: TThreadItem;
2221 Number: Integer;
2222 begin
2223 Number := GikoForm.KokoPopupMenu.Tag;
2224 if Number = 0 then Exit;
2225 Item := GikoForm.GetActiveContent;
2226 if Item = nil then Exit;
2227
2228 Editor := TEditorForm.Create(GikoForm);
2229 Editor.SetThreadItem(Item);
2230 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2231 Editor.Show;
2232 Editor.BodyEdit.SetFocus;
2233 end;
2234 // *************************************************************************
2235 //! ?御?????????鴻???潟???若????
2236 // *************************************************************************
2237 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2238 begin
2239 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2240 end;
2241 // *************************************************************************
2242 //! ?御?????????鴻???潟???若????
2243 // *************************************************************************
2244 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2245 var
2246 ThreadItem : TThreadItem;
2247 No, count, rc : Integer;
2248 body : string;
2249 limited: boolean;
2250 begin
2251 No := GikoForm.KokoPopupMenu.Tag;
2252 if No = 0 then Exit;
2253 ThreadItem := GikoForm.GetActiveContent;
2254 if ThreadItem = nil then Exit;
2255 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2256 limited := false;
2257 if count > 20 then begin
2258 rc := GikoUtil.MsgBox(GikoForm.Handle,
2259 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2260 'ID???????≪????茘???',
2261 MB_YESNO or MB_ICONQUESTION);
2262 limited := rc <> ID_YES;
2263 end;
2264 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2265 GikoForm.ActiveContent.IDAnchorPopup(body);
2266 end;
2267 // *************************************************************************
2268 //! ???????鴻???若??????鐚???絽醐?
2269 // *************************************************************************
2270 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2271 begin
2272 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2273 end;
2274 // *************************************************************************
2275 //! ???????鴻???若??????鐚?????
2276 // *************************************************************************
2277 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2278 begin
2279 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2280 end;
2281 // *************************************************************************
2282 //! ???????鴻???若????茹i??/span>
2283 // *************************************************************************
2284 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2285 var
2286 IndividualForm :TIndividualAbonForm;
2287 ThreadItem : TThreadItem;
2288 msg : String;
2289 ReadList : TStringList;
2290 wordCount : TWordCount;
2291 begin
2292 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2293 try
2294 ThreadItem := GikoForm.GetActiveContent;
2295 ThreadItem.ScrollTop :=
2296 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2297 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2298 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2299 ReadList := TStringList.Create;
2300 wordCount := TWordCount.Create;
2301 try
2302 {$IFDEF SPAM_FILTER_ENABLED}
2303 // ?鴻??????茹i??/span>
2304 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2305 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2306 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2307 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2308 {$ENDIF}
2309 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2310 GikoForm.ActiveContent.Repaint := true;
2311 GikoForm.InsertBrowserTab( ThreadItem, True );
2312 end;
2313 finally
2314 wordCount.Free;
2315 ReadList.Free;
2316 end;
2317 end else begin
2318 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2319 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2320 end;
2321 end;
2322 finally
2323 IndividualForm.Release;
2324 end;
2325 end;
2326 // *************************************************************************
2327 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2328 // *************************************************************************
2329 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2330 var
2331 IndividualForm :TIndividualAbonForm;
2332 ThreadItem : TThreadItem;
2333 msg : String;
2334 ReadList : TStringList;
2335 wordCount : TWordCount;
2336 {$IFDEF SPAM_FILTER_ENABLED}
2337 i : Integer;
2338 {$ENDIF}
2339 begin
2340 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2341 try
2342 ThreadItem := GikoForm.GetActiveContent;
2343 ThreadItem.ScrollTop :=
2344 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2345 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2346 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2347 if (IndividualForm.ShowModal = mrOK) then begin
2348 ReadList := TStringList.Create;
2349 wordCount := TWordCount.Create;
2350 try
2351 {$IFDEF SPAM_FILTER_ENABLED}
2352 // ?鴻??????茹i??/span>
2353 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2354 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2355 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2356 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2357 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2358 end;
2359 {$ENDIF}
2360 if IndividualForm.FRepaint then begin
2361 GikoForm.ActiveContent.Repaint := true;
2362 GikoForm.InsertBrowserTab( ThreadItem, True );
2363 end;
2364 finally
2365 wordCount.Free;
2366 ReadList.Free;
2367 end;
2368 end;
2369 end else begin
2370 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2371 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2372 end;
2373 end;
2374 finally
2375 IndividualForm.Release;
2376 end;
2377 end;
2378 // *************************************************************************
2379 //! ????D???若????????絽?/span>
2380 // *************************************************************************
2381 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2382 begin
2383 GikoForm.IndividualAbonID(1);
2384 end;
2385 // *************************************************************************
2386 //! ????D???若?????????/span>
2387 // *************************************************************************
2388 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2389 begin
2390 GikoForm.IndividualAbonID(0);
2391 end;
2392 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2393 // *************************************************************************
2394 //! ???潟?????????с???泣?ゃ????茵?ず????
2395 // *************************************************************************
2396 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2397 begin
2398 GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2399 end;
2400 // *************************************************************************
2401 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2402 // *************************************************************************
2403 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2404 begin
2405 GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2406 end;
2407 // *************************************************************************
2408 //! 鐚??<?????????????????若?吾??茵?ず????
2409 // *************************************************************************
2410 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2411 begin
2412 GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2413 end;
2414 // *************************************************************************
2415 //! ???潟????????????????????span>
2416 // *************************************************************************
2417 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2418 begin
2419 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2420 end;
2421 // *************************************************************************
2422 //! ???若?吾?с?恰???宴??茵?ず????
2423 // *************************************************************************
2424 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2425 var
2426 Dlg: TAboutDialog;
2427 begin
2428 Dlg := TAboutDialog.Create(GikoForm);
2429 try
2430 Dlg.ShowModal;
2431 finally
2432 Dlg.Release;
2433 end;
2434 end;
2435 // *************************************************************************
2436 //! ???潟??????????????茵?ず????
2437 // *************************************************************************
2438 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2439 var
2440 FileName: string;
2441 begin
2442 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2443 if not FileExists(FileName) then begin
2444 MsgBox(
2445 GikoForm.Handle,
2446 '????????荀??ゃ?????障?????с????' + #13#10 +
2447 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2448 '???????????潟???????泣?ゃ????舟?????????障??',
2449 '??????#39;,
2450 MB_ICONSTOP);
2451 Exit;
2452 end;
2453 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2454 end;
2455 // *************************************************************************
2456 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2457 // *************************************************************************
2458 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2459 begin
2460 GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2461 end;
2462 ////////////////////////////////???????障?с?????障??/////////////////////
2463 // *************************************************************************
2464 //! ???鴻????埈;腓冴??紊??眼????
2465 // *************************************************************************
2466 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2467 begin
2468 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2469 GikoForm.ListView.Refresh;
2470 end;
2471 // *************************************************************************
2472 //! 筝?篏???????????Щ??????
2473 // *************************************************************************
2474 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2475 begin
2476 if GikoForm.GetActiveList is TBoard then begin
2477 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2478 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2479 end else if GikoForm.GetActiveList is TCategory then begin
2480 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2481 end;
2482 end;
2483 // *************************************************************************
2484 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2485 // *************************************************************************
2486 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2487 begin
2488 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2489 end;
2490 // *************************************************************************
2491 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2492 // *************************************************************************
2493 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2494 begin
2495 case GikoForm.ListView.ViewStyle of
2496 vsIcon: SmallIconAction.Execute;
2497 vsSmallIcon: ListIconAction.Execute;
2498 vsList: DetailIconAction.Execute;
2499 vsReport: LargeIconAction.Execute;
2500 end;
2501 end;
2502 // *************************************************************************
2503 //! SelectComboBox???ゃ???????≪????
2504 // *************************************************************************
2505 procedure TGikoDM.ClearSelectComboBox;
2506 begin
2507 if GikoForm.SelectComboBoxPanel.Visible then begin
2508 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2509 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2510 GikoForm.ListView.SetFocus;
2511 end;
2512 end;
2513 // *************************************************************************
2514 //! ?鴻???????????鴻??;腓冴????
2515 // *************************************************************************
2516 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2517 begin
2518 try
2519 if GikoForm.ViewType <> gvtAll then
2520 GikoForm.SetListViewType(gvtAll);
2521 GikoSys.Setting.ThreadRange := gtrAll;
2522 AllItemAction.Checked := True;
2523 // SelectComboBox ??吋罩眼???贋?違????????span>
2524 GikoForm.ModifySelectList;
2525 // SelectComboBox ???ゃ????????/span>
2526 ClearSelectComboBox;
2527 except
2528 end;
2529 end;
2530 // *************************************************************************
2531 //! ???井?????鴻?????????帥??茵?ず????
2532 // *************************************************************************
2533 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2534 begin
2535 try
2536 if GikoForm.ViewType <> gvtLog then
2537 GikoForm.SetListViewType(gvtLog);
2538 GikoSys.Setting.ThreadRange := gtrLog;
2539 LogItemAction.Checked := True;
2540 // SelectComboBox ??吋罩眼???贋?違????????span>
2541 GikoForm.ModifySelectList;
2542 // SelectComboBox ???ゃ????????/span>
2543 ClearSelectComboBox;
2544 except
2545 end;
2546 end;
2547 // *************************************************************************
2548 //! ?亥???鴻?????????粋;腓冴????
2549 // *************************************************************************
2550 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2551 begin
2552 try
2553
2554 if GikoForm.ViewType <> gvtNew then
2555 GikoForm.SetListViewType(gvtNew);
2556 GikoSys.Setting.ThreadRange := gtrNew;
2557 NewItemAction.Checked := True;
2558 // SelectComboBox ??吋罩眼???贋?違????????span>
2559 GikoForm.ModifySelectList;
2560 // SelectComboBox ???ゃ????????/span>
2561 ClearSelectComboBox;
2562 except
2563 end;
2564 end;
2565 // *************************************************************************
2566 //! DAT?純?<?鴻?????????粋;腓冴????
2567 // *************************************************************************
2568 procedure TGikoDM.ArchiveItemActionExecute(Sender: TObject);
2569 begin
2570 try
2571 if GikoForm.ViewType <> gvtArch then
2572 GikoForm.SetListViewType(gvtArch);
2573 GikoSys.Setting.ThreadRange := gtrArch;
2574 ArchiveItemAction.Checked := True;
2575 // SelectComboBox ??吋罩眼???贋?違????????span>
2576 GikoForm.ModifySelectList;
2577 // SelectComboBox ???ゃ????????/span>
2578 ClearSelectComboBox;
2579 except
2580 end;
2581 end;
2582 // *************************************************************************
2583 //! ??絖??鴻?????????粋;腓冴????
2584 // *************************************************************************
2585 procedure TGikoDM.LiveItemActionExecute(Sender: TObject);
2586 begin
2587 try
2588 if GikoForm.ViewType <> gvtLive then
2589 GikoForm.SetListViewType(gvtLive);
2590 GikoSys.Setting.ThreadRange := gtrLive;
2591 LiveItemAction.Checked := True;
2592 // SelectComboBox ??吋罩眼???贋?違????????span>
2593 GikoForm.ModifySelectList;
2594 // SelectComboBox ???ゃ????????/span>
2595 ClearSelectComboBox;
2596 except
2597 end;
2598 end;
2599
2600 // *************************************************************************
2601 //! ?鴻????????;腓榊??蚊??荐??
2602 // *************************************************************************
2603 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2604 begin
2605 case GikoSys.Setting.ThreadRange of
2606 gtrAll: AllItemAction.Execute;
2607 gtrLog: LogItemAction.Execute;
2608 gtrNew: NewItemAction.Execute;
2609 gtrArch: ArchiveItemAction.Execute;
2610 gtrLive: LiveItemAction.Execute;
2611 end;
2612 end;
2613 // *************************************************************************
2614 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2615 // *************************************************************************
2616 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2617 var
2618 idx: Integer;
2619 Dlg: TListSelectDialog;
2620 begin
2621 try
2622 if GikoForm.SelectComboBoxPanel.Visible then begin
2623 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2624 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2625 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2626 if GikoSys.Setting.ListWidthState = glsMax then
2627 BrowserMinAction.Execute;
2628 end else begin
2629 if GikoSys.Setting.ListHeightState = glsMax then
2630 BrowserMinAction.Execute;
2631 end;
2632 GikoForm.SelectComboBox.SetFocus;
2633 exit;
2634 end;
2635 end;
2636 except
2637 end;
2638
2639 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2640 GikoForm.SelectComboBox.Text := '';
2641 GikoForm.SelectComboBox.Color := clWindow;
2642 end;
2643
2644 AllItemAction.Checked := False;
2645 LogItemAction.Checked := False;
2646 NewItemAction.Checked := False;
2647 //SelectItemAction.Checked := True;
2648 GikoForm.ModifySelectList;
2649 Dlg := TListSelectDialog.Create(GikoForm);
2650 try
2651 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2652 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2653 Dlg.ShowModal;
2654 if Dlg.ModalResult = mrCancel then begin
2655 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2656 AllItemAction.Checked := True;
2657 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2658 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2659 end;
2660
2661 if GikoForm.GetActiveList is TBoard then
2662 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2663 end else begin
2664 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2665 if idx <> -1 then
2666 GikoSys.Setting.SelectTextList.Delete(idx);
2667 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2668 while Dlg.SelectComboBox.Items.Count > 100 do begin
2669 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2670 end;
2671
2672 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2673 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2674 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2675 end else begin
2676 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2677 GikoForm.SelectComboBox.Color := clWindow;
2678 end;
2679 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2680 end;
2681 finally
2682 Dlg.Release;
2683 end;
2684 end;
2685 // *************************************************************************
2686 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2687 // *************************************************************************
2688 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2689 var
2690 Editor: TEditorForm;
2691 begin
2692 if not (GikoForm.GetActiveList is TBoard) then
2693 Exit;
2694 Editor := TEditorForm.Create(GikoForm);
2695 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2696 Editor.Show;
2697 Editor.BodyEdit.SetFocus;
2698 end;
2699 // *************************************************************************
2700 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2701 // *************************************************************************
2702 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2703 var
2704 URL: string;
2705 begin
2706 if GikoForm.GetActiveList is TBoard then begin
2707 URL := TBoard(GikoForm.GetActiveList).URL;
2708 GikoSys.OpenBrowser(URL, gbtAuto);
2709 end;
2710 end;
2711 // *************************************************************************
2712 //! ?御?????????????鴻????????RL???潟???若????
2713 // *************************************************************************
2714 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2715 var
2716 List: TList;
2717 i: Integer;
2718 s: string;
2719 begin
2720 s := '';
2721 List := TList.Create;
2722 try
2723 GikoForm.SelectListItem(List);
2724 for i := 0 to List.Count - 1 do begin
2725 if TObject(List[i]) is TBoard then
2726 s := s + TBoard(List[i]).URL + #13#10
2727 else if TObject(List[i]) is TThreadItem then
2728 s := s + TThreadItem(List[i]).URL + #13#10;
2729 end;
2730 if s <> '' then
2731 Clipboard.AsText := s;
2732 finally
2733 List.Free;
2734 end;
2735 end;
2736 // *************************************************************************
2737 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2738 // *************************************************************************
2739 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2740 begin
2741 if ((GikoForm.GetActiveList is TBoard) or
2742 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2743 TAction(Sender).Enabled := True
2744 else
2745 TAction(Sender).Enabled := False;
2746 end;
2747 // *************************************************************************
2748 //! ?御?????????????帥?????????潟???若????
2749 // *************************************************************************
2750 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2751 var
2752 List: TList;
2753 i: Integer;
2754 s: string;
2755 begin
2756 s := '';
2757 List := TList.Create;
2758 try
2759 GikoForm.SelectListItem(List);
2760 for i := 0 to List.Count - 1 do begin
2761 if TObject(List[i]) is TBoard then
2762 s := s + TBoard(List[i]).Title + #13#10
2763 else if TObject(List[i]) is TThreadItem then
2764 s := s + TThreadItem(List[i]).Title + #13#10;
2765 end;
2766 if s <> '' then
2767 Clipboard.AsText := s;
2768 finally
2769 List.Free;
2770 end;
2771 end;
2772 // *************************************************************************
2773 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2774 // *************************************************************************
2775 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2776 begin
2777 if ((GikoForm.GetActiveList is TBoard) or
2778 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2779 TAction(Sender).Enabled := True
2780 else
2781 TAction(Sender).Enabled := False;
2782 end;
2783 // *************************************************************************
2784 //! ?御?????????????鴻??????????????RL???潟???若????
2785 // *************************************************************************
2786 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2787 var
2788 List: TList;
2789 i: Integer;
2790 s: string;
2791 begin
2792 s := '';
2793 List := TList.Create;
2794 try
2795 GikoForm.SelectListItem(List);
2796 for i := 0 to List.Count - 1 do begin
2797 if TObject(List[i]) is TBoard then
2798 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2799 else if TObject(List[i]) is TThreadItem then
2800 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2801 end;
2802 if s <> '' then
2803 Clipboard.AsText := s;
2804 finally
2805 List.Free;
2806 end;
2807 end;
2808 // *************************************************************************
2809 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2810 // *************************************************************************
2811 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2812 var
2813 i: Integer;
2814 List: TList;
2815 msg: string;
2816 shiftDown: Boolean;
2817 begin
2818 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2819 GikoForm.ActiveListColumnSave;
2820 if GikoForm.GetActiveList is TCategory then begin
2821 List := TList.Create;
2822 try
2823 GikoForm.SelectListItem(List);
2824 if List.Count > 5 then begin
2825 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2826 + '鐚??<????????莢??決蚕羝????????????????';
2827 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2828 Exit;
2829 end;
2830 for i := 0 to List.Count - 1 do begin
2831 if TObject(List[i]) is TBoard then
2832 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2833 end;
2834 finally
2835 List.Free;
2836 end;
2837 end else if GikoForm.GetActiveList is TBoard then begin
2838 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2839 end;
2840 end;
2841 // *************************************************************************
2842 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2843 // *************************************************************************
2844 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2845 begin
2846 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2847 TAction(Sender).Enabled := True
2848 else if GikoForm.GetActiveList is TBoard then
2849 TAction(Sender).Enabled := True
2850 else
2851 TAction(Sender).Enabled := False;
2852 end;
2853 // *************************************************************************
2854 //! ?御?????????????鴻?????????????潟???若??????
2855 // *************************************************************************
2856 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2857 var
2858 List: TList;
2859 i: Integer;
2860 msg: string;
2861 shiftDown: Boolean;
2862 begin
2863 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2864 List := TList.Create;
2865 try
2866 GikoForm.SelectListItem(List);
2867 if List.Count > 10 then begin
2868 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2869 + '鐚??<????????莢??決蚕羝????????????????';
2870 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2871 Exit;
2872 end;
2873 for i := 0 to List.Count - 1 do begin
2874 if TObject(List[i]) is TThreadItem then
2875 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2876 end;
2877 finally
2878 List.Free;
2879 end;
2880 end;
2881 // *************************************************************************
2882 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2883 // *************************************************************************
2884 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2885 begin
2886 TAction(Sender).Enabled :=
2887 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2888 end;
2889 // *************************************************************************
2890 //! ?鴻??????綏≦??篋?膣?
2891 // *************************************************************************
2892 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2893 begin
2894 //INFO 2005/11/19 ?????種???by ??????
2895 // ?????潟?<?潟?????ゃ?????????/span>
2896 end;
2897 // *************************************************************************
2898 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2899 // *************************************************************************
2900 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2901 var
2902 i: Integer;
2903 List: TList;
2904 begin
2905 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2906 List := TList.Create;
2907 try
2908 GikoForm.SelectListItem(List);
2909 for i := 0 to List.Count - 1 do begin
2910 if TObject(List[i]) is TThreadItem then begin
2911 if TThreadItem(List[i]).IsLogFile then begin
2912 SelectReservAction.Enabled := True;
2913 Exit;
2914 end;
2915 end;
2916 end;
2917 SelectReservAction.Enabled := False;
2918 finally
2919 List.Free;
2920 end;
2921 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2922 SelectReservAction.Enabled := True
2923 else
2924 SelectReservAction.Enabled := False;
2925 end;
2926 // *************************************************************************
2927 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2928 // *************************************************************************
2929 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2930 var
2931 s: string;
2932 Dlg: TRoundNameDialog;
2933 cnt: Integer;
2934
2935 begin
2936 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2937 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2938 Exit;
2939
2940 //?脂?俄??????с????/span>
2941 cnt := RoundList.Count[grtBoard];
2942 cnt := cnt + RoundList.Count[grtItem];
2943 if cnt > 500 then begin
2944 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', '??????#39;, MB_OK or MB_ICONSTOP);
2945 Exit;
2946 end;
2947
2948 Dlg := TRoundNameDialog.Create(GikoForm);
2949 try
2950 Dlg.ShowModal;
2951 if Dlg.ModalResult <> mrCancel then begin
2952 s := Trim(Dlg.RoundNameEdit.Text);
2953 if (Sender is TMenuItem) then begin
2954 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2955 end else if