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.41 - (show annotations) (download) (as text)
Mon Jul 17 13:29:33 2006 UTC (17 years, 9 months ago) by h677
Branch: MAIN
CVS Tags: v1_53_0_667, v1_53_0_668
Changes since 1.40: +87 -6 lines
File MIME type: text/x-pascal
レスエディタを開いたままにして終了するとAcessViolationが発生する場合が
ある不具合の修正

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