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.39 - (show annotations) (download) (as text)
Sat Jul 1 15:42:31 2006 UTC (17 years, 9 months ago) by h677
Branch: MAIN
CVS Tags: v1_53_0_663, v1_53_0_662
Changes since 1.38: +7 -12 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 GikoForm.SaveTabURLs;
2132 end;
2133 // *************************************************************************
2134 //! ?帥??????????緇???
2135 // *************************************************************************
2136 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2137 begin
2138 GikoForm.LoadTabURLs;
2139 // TabsOpenAction.Tag????推?荀ф?贋?違?????若?違???????????????c??????
2140 if (GikoForm.BrowserTab.Tabs.Count = 0)
2141 and (TabsOpenAction.Tag = 0) then begin
2142 ShowMessage('茵?ず?????帥?????????障??????');
2143 end;
2144 end;
2145 // *************************************************************************
2146 //! ?帥??????????????篆?絖?
2147 // *************************************************************************
2148 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2149 begin
2150 GikoForm.SaveTabURLs;
2151 end;
2152 // *************************************************************************
2153 //! ?帥??????????????緇???
2154 // *************************************************************************
2155 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2156 begin
2157 GikoForm.LoadTabURLs;
2158 end;
2159 // *************************************************************************
2160 //! Be2ch?????違?ゃ?????違?≪????????
2161 // *************************************************************************
2162 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2163 begin
2164 GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2165 end;
2166 // *************************************************************************
2167 //! Be2ch?????違?ゃ?????違?≪??????????pdate?ゃ???潟??
2168 // *************************************************************************
2169 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2170 begin
2171 if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2172 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2173 else BeLogInOutAction.Checked := false;
2174 BeLogInOutAction.Enabled := true
2175 end else
2176 BeLogInOutAction.Enabled := false;
2177 end;
2178 ////////////////////////////////???<?ゃ???障?с?????障??/////////////////////
2179 // *************************************************************************
2180 //! ?潟?潟?障?ц?????
2181 // *************************************************************************
2182 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2183 var
2184 No: Integer;
2185 ThreadItem: TThreadItem;
2186 begin
2187 No := GikoForm.KokoPopupMenu.Tag;
2188 if No = 0 then Exit;
2189 ThreadItem := GikoForm.GetActiveContent;
2190 if ThreadItem = nil then Exit;
2191 ThreadItem.Kokomade := No;
2192 GikoForm.ActiveContent.Thread.ScrollTop :=
2193 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2194 GikoForm.ActiveContent.Repaint := true;
2195 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2196 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2197 //Application.ProcessMessages;
2198 end;
2199 // *************************************************************************
2200 //! ?????????
2201 // *************************************************************************
2202 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2203 var
2204 ThreadItem: TThreadItem;
2205 begin
2206 ThreadItem := GikoForm.GetActiveContent;
2207 if ThreadItem = nil then Exit;
2208 ThreadItem.Kokomade := -1;
2209 GikoForm.ActiveContent.Thread.ScrollTop :=
2210 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2211 GikoForm.ActiveContent.Repaint := true;
2212 GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2213 //INFO 2005/11/19 筝??????純??綽?荀?????GikoForm???鴻???<?純??????菴遵??????
2214 //Application.ProcessMessages;
2215 end;
2216 // *************************************************************************
2217 //! ?潟?潟??????/span>
2218 // *************************************************************************
2219 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2220 var
2221 Editor: TEditorForm;
2222 Item: TThreadItem;
2223 Number: Integer;
2224 begin
2225 Number := GikoForm.KokoPopupMenu.Tag;
2226 if Number = 0 then Exit;
2227 Item := GikoForm.GetActiveContent;
2228 if Item = nil then Exit;
2229
2230 Editor := TEditorForm.Create(GikoForm);
2231 Editor.SetThreadItem(Item);
2232 Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2233 Editor.Show;
2234 Editor.BodyEdit.SetFocus;
2235 end;
2236 // *************************************************************************
2237 //! ?御?????????鴻???潟???若????
2238 // *************************************************************************
2239 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2240 begin
2241 GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2242 end;
2243 // *************************************************************************
2244 //! ?御?????????鴻???潟???若????
2245 // *************************************************************************
2246 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2247 var
2248 ThreadItem : TThreadItem;
2249 No, count, rc : Integer;
2250 body : string;
2251 limited: boolean;
2252 begin
2253 No := GikoForm.KokoPopupMenu.Tag;
2254 if No = 0 then Exit;
2255 ThreadItem := GikoForm.GetActiveContent;
2256 if ThreadItem = nil then Exit;
2257 count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2258 limited := false;
2259 if count > 20 then begin
2260 rc := GikoUtil.MsgBox(GikoForm.Handle,
2261 '20??篁ヤ??????障?????????鴻??;腓冴???障????鐚?',
2262 'ID???????≪????茘???',
2263 MB_YESNO or MB_ICONQUESTION);
2264 limited := rc <> ID_YES;
2265 end;
2266 body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2267 GikoForm.ActiveContent.IDAnchorPopup(body);
2268 end;
2269 // *************************************************************************
2270 //! ???????鴻???若??????鐚???絽醐?
2271 // *************************************************************************
2272 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2273 begin
2274 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2275 end;
2276 // *************************************************************************
2277 //! ???????鴻???若??????鐚?????
2278 // *************************************************************************
2279 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2280 begin
2281 GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2282 end;
2283 // *************************************************************************
2284 //! ???????鴻???若????茹i??/span>
2285 // *************************************************************************
2286 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2287 var
2288 IndividualForm :TIndividualAbonForm;
2289 ThreadItem : TThreadItem;
2290 msg : String;
2291 ReadList : TStringList;
2292 wordCount : TWordCount;
2293 begin
2294 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2295 try
2296 ThreadItem := GikoForm.GetActiveContent;
2297 ThreadItem.ScrollTop :=
2298 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2299 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2300 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2301 ReadList := TStringList.Create;
2302 wordCount := TWordCount.Create;
2303 try
2304 {$IFDEF SPAM_FILTER_ENABLED}
2305 // ?鴻??????茹i??/span>
2306 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2307 GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2308 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2309 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2310 {$ENDIF}
2311 if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2312 GikoForm.ActiveContent.Repaint := true;
2313 GikoForm.InsertBrowserTab( ThreadItem, True );
2314 end;
2315 finally
2316 wordCount.Free;
2317 ReadList.Free;
2318 end;
2319 end else begin
2320 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2321 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2322 end;
2323 end;
2324 finally
2325 IndividualForm.Release;
2326 end;
2327 end;
2328 // *************************************************************************
2329 //! ???????鴻???若????茹i?ゃ???合??垽??絎?鐚????ゃ?≪???域;腓削?
2330 // *************************************************************************
2331 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2332 var
2333 IndividualForm :TIndividualAbonForm;
2334 ThreadItem : TThreadItem;
2335 msg : String;
2336 ReadList : TStringList;
2337 wordCount : TWordCount;
2338 {$IFDEF SPAM_FILTER_ENABLED}
2339 i : Integer;
2340 {$ENDIF}
2341 begin
2342 IndividualForm := TIndividualAbonForm.Create(GikoForm);
2343 try
2344 ThreadItem := GikoForm.GetActiveContent;
2345 ThreadItem.ScrollTop :=
2346 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2347 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2348 if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2349 if (IndividualForm.ShowModal = mrOK) then begin
2350 ReadList := TStringList.Create;
2351 wordCount := TWordCount.Create;
2352 try
2353 {$IFDEF SPAM_FILTER_ENABLED}
2354 // ?鴻??????茹i??/span>
2355 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2356 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2357 GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2358 GikoSys.SpamForget( wordCount, True ); // ?鴻??????茹i??/span>
2359 GikoSys.SpamLearn( wordCount, False ); // ?????┃絎?
2360 end;
2361 {$ENDIF}
2362 if IndividualForm.FRepaint then begin
2363 GikoForm.ActiveContent.Repaint := true;
2364 GikoForm.InsertBrowserTab( ThreadItem, True );
2365 end;
2366 finally
2367 wordCount.Free;
2368 ReadList.Free;
2369 end;
2370 end;
2371 end else begin
2372 msg := '?????鴻???????с?????ャ???若??????茵??c???障????';
2373 MsgBox(GikoForm.Handle, msg, '?<???祉?若??#39;, MB_OK);
2374 end;
2375 end;
2376 finally
2377 IndividualForm.Release;
2378 end;
2379 end;
2380 // *************************************************************************
2381 //! ????D???若????????絽?/span>
2382 // *************************************************************************
2383 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2384 begin
2385 GikoForm.IndividualAbonID(1);
2386 end;
2387 // *************************************************************************
2388 //! ????D???若?????????/span>
2389 // *************************************************************************
2390 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2391 begin
2392 GikoForm.IndividualAbonID(0);
2393 end;
2394 ////////////////////////////////???????吟???????≪?????障?с?????障??/////////////////////
2395 // *************************************************************************
2396 //! ???潟?????????с???泣?ゃ????茵?ず????
2397 // *************************************************************************
2398 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2399 begin
2400 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_GIKONAVI, gbtAuto);
2401 end;
2402 // *************************************************************************
2403 //! ?≪???吾???????с???泣?ゃ????茵?ず????
2404 // *************************************************************************
2405 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2406 begin
2407 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_MONAZILLA, gbtAuto);
2408 end;
2409 // *************************************************************************
2410 //! 鐚??<?????????????????若?吾??茵?ず????
2411 // *************************************************************************
2412 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2413 begin
2414 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_2ch, gbtAuto);
2415 end;
2416 // *************************************************************************
2417 //! ???潟????????????????????span>
2418 // *************************************************************************
2419 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2420 begin
2421 GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2422 end;
2423 // *************************************************************************
2424 //! ???若?吾?с?恰???宴??茵?ず????
2425 // *************************************************************************
2426 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2427 var
2428 Dlg: TAboutDialog;
2429 begin
2430 Dlg := TAboutDialog.Create(GikoForm);
2431 try
2432 Dlg.ShowModal;
2433 finally
2434 Dlg.Release;
2435 end;
2436 end;
2437 // *************************************************************************
2438 //! ???潟??????????????茵?ず????
2439 // *************************************************************************
2440 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2441 var
2442 FileName: string;
2443 begin
2444 FileName := GikoSys.GetAppDir + 'batahlp.chm';
2445 if not FileExists(FileName) then begin
2446 MsgBox(
2447 GikoForm.Handle,
2448 '????????荀??ゃ?????障?????с????' + #13#10 +
2449 '?????????<?ゃ???????潟????????????????舟???????????' + #13#10 +
2450 '???????????潟???????泣?ゃ????舟?????????障??',
2451 MSG_ERROR,
2452 MB_ICONSTOP);
2453 Exit;
2454 end;
2455 ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2456 end;
2457 // *************************************************************************
2458 //! ???潟????Wiki?????с???泣?ゃ????茵?ず????
2459 // *************************************************************************
2460 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2461 begin
2462 GikoSys.OpenBrowser(PROTOCOL_HTTP + URL_Wiki, gbtAuto);
2463 end;
2464 ////////////////////////////////???????障?с?????障??/////////////////////
2465 // *************************************************************************
2466 //! ???鴻????埈;腓冴??紊??眼????
2467 // *************************************************************************
2468 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2469 begin
2470 GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2471 GikoForm.ListView.Refresh;
2472 end;
2473 // *************************************************************************
2474 //! 筝?篏???????????Щ??????
2475 // *************************************************************************
2476 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2477 begin
2478 if GikoForm.GetActiveList is TBoard then begin
2479 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2480 GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2481 end else if GikoForm.GetActiveList is TCategory then begin
2482 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2483 end;
2484 end;
2485 // *************************************************************************
2486 //! 筝?篏???????????Щ??????UpDate?ゃ???潟??
2487 // *************************************************************************
2488 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2489 begin
2490 UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2491 end;
2492 // *************************************************************************
2493 //! 茵?ず??茵?ず???鴻?????≪?若??紊???/span>
2494 // *************************************************************************
2495 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2496 begin
2497 case GikoForm.ListView.ViewStyle of
2498 vsIcon: SmallIconAction.Execute;
2499 vsSmallIcon: ListIconAction.Execute;
2500 vsList: DetailIconAction.Execute;
2501 vsReport: LargeIconAction.Execute;
2502 end;
2503 end;
2504 // *************************************************************************
2505 //! SelectComboBox???ゃ???????≪????
2506 // *************************************************************************
2507 procedure TGikoDM.ClearSelectComboBox;
2508 begin
2509 if GikoForm.SelectComboBoxPanel.Visible then begin
2510 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2511 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2512 GikoForm.ListView.SetFocus;
2513 end;
2514 end;
2515 // *************************************************************************
2516 //! ?鴻???????????鴻??;腓冴????
2517 // *************************************************************************
2518 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2519 begin
2520 try
2521 if GikoForm.ViewType <> gvtAll then
2522 GikoForm.SetListViewType(gvtAll);
2523 GikoSys.Setting.ThreadRange := gtrAll;
2524 AllItemAction.Checked := True;
2525 // SelectComboBox ??吋罩眼???贋?違????????span>
2526 GikoForm.ModifySelectList;
2527 // SelectComboBox ???ゃ????????/span>
2528 ClearSelectComboBox;
2529 except
2530 end;
2531 end;
2532 // *************************************************************************
2533 //! ???井?????鴻?????????帥??茵?ず????
2534 // *************************************************************************
2535 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2536 begin
2537 try
2538 if GikoForm.ViewType <> gvtLog then
2539 GikoForm.SetListViewType(gvtLog);
2540 GikoSys.Setting.ThreadRange := gtrLog;
2541 LogItemAction.Checked := True;
2542 // SelectComboBox ??吋罩眼???贋?違????????span>
2543 GikoForm.ModifySelectList;
2544 // SelectComboBox ???ゃ????????/span>
2545 ClearSelectComboBox;
2546 except
2547 end;
2548 end;
2549 // *************************************************************************
2550 //! ?亥???鴻?????????粋;腓冴????
2551 // *************************************************************************
2552 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2553 begin
2554 try
2555
2556 if GikoForm.ViewType <> gvtNew then
2557 GikoForm.SetListViewType(gvtNew);
2558 GikoSys.Setting.ThreadRange := gtrNew;
2559 NewItemAction.Checked := True;
2560 // SelectComboBox ??吋罩眼???贋?違????????span>
2561 GikoForm.ModifySelectList;
2562 // SelectComboBox ???ゃ????????/span>
2563 ClearSelectComboBox;
2564 except
2565 end;
2566 end;
2567 // *************************************************************************
2568 //! DAT?純?<?鴻?????????粋;腓冴????
2569 // *************************************************************************
2570 procedure TGikoDM.ArchiveItemActionExecute(Sender: TObject);
2571 begin
2572 try
2573 if GikoForm.ViewType <> gvtArch then
2574 GikoForm.SetListViewType(gvtArch);
2575 GikoSys.Setting.ThreadRange := gtrArch;
2576 ArchiveItemAction.Checked := True;
2577 // SelectComboBox ??吋罩眼???贋?違????????span>
2578 GikoForm.ModifySelectList;
2579 // SelectComboBox ???ゃ????????/span>
2580 ClearSelectComboBox;
2581 except
2582 end;
2583 end;
2584 // *************************************************************************
2585 //! ??絖??鴻?????????粋;腓冴????
2586 // *************************************************************************
2587 procedure TGikoDM.LiveItemActionExecute(Sender: TObject);
2588 begin
2589 try
2590 if GikoForm.ViewType <> gvtLive then
2591 GikoForm.SetListViewType(gvtLive);
2592 GikoSys.Setting.ThreadRange := gtrLive;
2593 LiveItemAction.Checked := True;
2594 // SelectComboBox ??吋罩眼???贋?違????????span>
2595 GikoForm.ModifySelectList;
2596 // SelectComboBox ???ゃ????????/span>
2597 ClearSelectComboBox;
2598 except
2599 end;
2600 end;
2601
2602 // *************************************************************************
2603 //! ?鴻????????;腓榊??蚊??荐??
2604 // *************************************************************************
2605 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2606 begin
2607 case GikoSys.Setting.ThreadRange of
2608 gtrAll: AllItemAction.Execute;
2609 gtrLog: LogItemAction.Execute;
2610 gtrNew: NewItemAction.Execute;
2611 gtrArch: ArchiveItemAction.Execute;
2612 gtrLive: LiveItemAction.Execute;
2613 end;
2614 end;
2615 // *************************************************************************
2616 //! ?鴻??????腟?莨若?帥???ゃ?≪???違??茵?ず????
2617 // *************************************************************************
2618 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2619 var
2620 idx: Integer;
2621 Dlg: TListSelectDialog;
2622 begin
2623 try
2624 if GikoForm.SelectComboBoxPanel.Visible then begin
2625 if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2626 // SelectComboBox ???????翫?????????若???鴻??腱祉??
2627 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2628 if GikoSys.Setting.ListWidthState = glsMax then
2629 BrowserMinAction.Execute;
2630 end else begin
2631 if GikoSys.Setting.ListHeightState = glsMax then
2632 BrowserMinAction.Execute;
2633 end;
2634 GikoForm.SelectComboBox.SetFocus;
2635 exit;
2636 end;
2637 end;
2638 except
2639 end;
2640
2641 if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2642 GikoForm.SelectComboBox.Text := '';
2643 GikoForm.SelectComboBox.Color := clWindow;
2644 end;
2645
2646 AllItemAction.Checked := False;
2647 LogItemAction.Checked := False;
2648 NewItemAction.Checked := False;
2649 //SelectItemAction.Checked := True;
2650 GikoForm.ModifySelectList;
2651 Dlg := TListSelectDialog.Create(GikoForm);
2652 try
2653 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2654 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2655 Dlg.ShowModal;
2656 if Dlg.ModalResult = mrCancel then begin
2657 if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2658 AllItemAction.Checked := True;
2659 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2660 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2661 end;
2662
2663 if GikoForm.GetActiveList is TBoard then
2664 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2665 end else begin
2666 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2667 if idx <> -1 then
2668 GikoSys.Setting.SelectTextList.Delete(idx);
2669 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2670 while Dlg.SelectComboBox.Items.Count > 100 do begin
2671 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2672 end;
2673
2674 if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2675 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2676 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2677 end else begin
2678 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2679 GikoForm.SelectComboBox.Color := clWindow;
2680 end;
2681 GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2682 end;
2683 finally
2684 Dlg.Release;
2685 end;
2686 end;
2687 // *************************************************************************
2688 //! ?違?鴻???吾??莨若?帥???c?潟??????茵?ず????
2689 // *************************************************************************
2690 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2691 var
2692 Editor: TEditorForm;
2693 begin
2694 if not (GikoForm.GetActiveList is TBoard) then
2695 Exit;
2696 Editor := TEditorForm.Create(GikoForm);
2697 Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2698 Editor.Show;
2699 Editor.BodyEdit.SetFocus;
2700 end;
2701 // *************************************************************************
2702 //! ?上??;腓冴?????????帥?????????吟?ц;腓冴????
2703 // *************************************************************************
2704 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2705 var
2706 URL: string;
2707 begin
2708 if GikoForm.GetActiveList is TBoard then begin
2709 URL := TBoard(GikoForm.GetActiveList).URL;
2710 GikoSys.OpenBrowser(URL, gbtAuto);
2711 end;
2712 end;
2713 // *************************************************************************
2714 //! ?御?????????????鴻????????RL???潟???若????
2715 // *************************************************************************
2716 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2717 var
2718 List: TList;
2719 i: Integer;
2720 s: string;
2721 begin
2722 s := '';
2723 List := TList.Create;
2724 try
2725 GikoForm.SelectListItem(List);
2726 for i := 0 to List.Count - 1 do begin
2727 if TObject(List[i]) is TBoard then
2728 s := s + TBoard(List[i]).URL + #13#10
2729 else if TObject(List[i]) is TThreadItem then
2730 s := s + TThreadItem(List[i]).URL + #13#10;
2731 end;
2732 if s <> '' then
2733 Clipboard.AsText := s;
2734 finally
2735 List.Free;
2736 end;
2737 end;
2738 // *************************************************************************
2739 //! ?御?????????????鴻????????RL???潟???若????Update?ゃ???潟??
2740 // *************************************************************************
2741 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2742 begin
2743 if ((GikoForm.GetActiveList is TBoard) or
2744 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2745 TAction(Sender).Enabled := True
2746 else
2747 TAction(Sender).Enabled := False;
2748 end;
2749 // *************************************************************************
2750 //! ?御?????????????帥?????????潟???若????
2751 // *************************************************************************
2752 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2753 var
2754 List: TList;
2755 i: Integer;
2756 s: string;
2757 begin
2758 s := '';
2759 List := TList.Create;
2760 try
2761 GikoForm.SelectListItem(List);
2762 for i := 0 to List.Count - 1 do begin
2763 if TObject(List[i]) is TBoard then
2764 s := s + TBoard(List[i]).Title + #13#10
2765 else if TObject(List[i]) is TThreadItem then
2766 s := s + TThreadItem(List[i]).Title + #13#10;
2767 end;
2768 if s <> '' then
2769 Clipboard.AsText := s;
2770 finally
2771 List.Free;
2772 end;
2773 end;
2774 // *************************************************************************
2775 //! ?御?????????????帥?????????潟???若????Update?ゃ???潟??
2776 // *************************************************************************
2777 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2778 begin
2779 if ((GikoForm.GetActiveList is TBoard) or
2780 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2781 TAction(Sender).Enabled := True
2782 else
2783 TAction(Sender).Enabled := False;
2784 end;
2785 // *************************************************************************
2786 //! ?御?????????????鴻??????????????RL???潟???若????
2787 // *************************************************************************
2788 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2789 var
2790 List: TList;
2791 i: Integer;
2792 s: string;
2793 begin
2794 s := '';
2795 List := TList.Create;
2796 try
2797 GikoForm.SelectListItem(List);
2798 for i := 0 to List.Count - 1 do begin
2799 if TObject(List[i]) is TBoard then
2800 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2801 else if TObject(List[i]) is TThreadItem then
2802 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2803 end;
2804 if s <> '' then
2805 Clipboard.AsText := s;
2806 finally
2807 List.Free;
2808 end;
2809 end;
2810 // *************************************************************************
2811 //! ?御?????????????鴻??????筝?荀с???????潟???若??????
2812 // *************************************************************************
2813 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2814 var
2815 i: Integer;
2816 List: TList;
2817 msg: string;
2818 shiftDown: Boolean;
2819 begin
2820 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2821 GikoForm.ActiveListColumnSave;
2822 if GikoForm.GetActiveList is TCategory then begin
2823 List := TList.Create;
2824 try
2825 GikoForm.SelectListItem(List);
2826 if List.Count > 5 then begin
2827 msg := '5??篁ヤ?????絎??с???障????' + #13#10
2828 + '鐚??<????????莢??決蚕羝????????????????';
2829 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2830 Exit;
2831 end;
2832 for i := 0 to List.Count - 1 do begin
2833 if TObject(List[i]) is TBoard then
2834 GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2835 end;
2836 finally
2837 List.Free;
2838 end;
2839 end else if GikoForm.GetActiveList is TBoard then begin
2840 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2841 end;
2842 end;
2843 // *************************************************************************
2844 //! ?御?????????????鴻??????筝?荀с???????潟???若??????Update?ゃ???潟??
2845 // *************************************************************************
2846 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2847 begin
2848 if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2849 TAction(Sender).Enabled := True
2850 else if GikoForm.GetActiveList is TBoard then
2851 TAction(Sender).Enabled := True
2852 else
2853 TAction(Sender).Enabled := False;
2854 end;
2855 // *************************************************************************
2856 //! ?御?????????????鴻?????????????潟???若??????
2857 // *************************************************************************
2858 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2859 var
2860 List: TList;
2861 i: Integer;
2862 msg: string;
2863 shiftDown: Boolean;
2864 begin
2865 shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2866 List := TList.Create;
2867 try
2868 GikoForm.SelectListItem(List);
2869 if List.Count > 10 then begin
2870 msg := '10??篁ヤ?????絎??с???障????' + #13#10
2871 + '鐚??<????????莢??決蚕羝????????????????';
2872 MsgBox(GikoForm.Handle, msg, '茘???', MB_ICONEXCLAMATION);
2873 Exit;
2874 end;
2875 for i := 0 to List.Count - 1 do begin
2876 if TObject(List[i]) is TThreadItem then
2877 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2878 end;
2879 finally
2880 List.Free;
2881 end;
2882 end;
2883 // *************************************************************************
2884 //! ?御?????????????鴻?????????????潟???若??????Update?ゃ???潟??
2885 // *************************************************************************
2886 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2887 begin
2888 TAction(Sender).Enabled :=
2889 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2890 end;
2891 // *************************************************************************
2892 //! ?鴻??????綏≦??篋?膣?
2893 // *************************************************************************
2894 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2895 begin
2896 //INFO 2005/11/19 ?????種???by ??????
2897 // ?????潟?<?潟?????ゃ?????????/span>
2898 end;
2899 // *************************************************************************
2900 //! ?鴻??????綏≦??篋?膣?Update?ゃ???潟??
2901 // *************************************************************************
2902 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2903 var
2904 i: Integer;
2905 List: TList;
2906 begin
2907 if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2908 List := TList.Create;
2909 try
2910 GikoForm.SelectListItem(List);
2911 for i := 0 to List.Count - 1 do begin
2912 if TObject(List[i]) is TThreadItem then begin
2913 if TThreadItem(List[i]).IsLogFile then begin
2914 SelectReservAction.Enabled := True;
2915 Exit;
2916 end;
2917 end;
2918 end;
2919 SelectReservAction.Enabled := False;
2920 finally
2921 List.Free;
2922 end;
2923 end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2924 SelectReservAction.Enabled := True
2925 else
2926 SelectReservAction.Enabled := False;
2927 end;
2928 // *************************************************************************
2929 //! ?御???????????鴻?????????違?????????у掘??篋?膣?
2930 // *************************************************************************
2931 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2932 var
2933 s: string;
2934 Dlg: TRoundNameDialog;
2935 cnt: Integer;
2936
2937 begin
2938 //?若?喝?冴????????TAction??istView???御?????????????違??EXIT????
2939 if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2940 Exit;
2941
2942 //?脂?俄??????с????/span>
2943 cnt := RoundList.Count[grtBoard];
2944 cnt := cnt + RoundList.Count[grtItem];
2945 if cnt > 500 then begin
2946 MsgBox(GikoForm.Handle, '綏≦????00篁ヤ??脂?蚊?с???障????', MSG_ERROR, MB_OK or MB_ICONSTOP);
2947 Exit;
2948 end;
2949
2950 Dlg := TRoundNameDialog.Create(GikoForm);
2951 try
2952 Dlg.ShowModal;
2953 if Dlg.ModalResult <> mrCancel then begin
2954 s := Trim(Dlg.RoundNameEdit.Text);
2955 if (Sender is TMenuItem) then begin
2956 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2957 end else if (Sender is TAction) then begin