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