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.42 - (show annotations) (download) (as text)
Thu Jul 27 16:39:56 2006 UTC (17 years, 8 months ago) by h677
Branch: MAIN
CVS Tags: v1_53_0_671, v1_53_0_669, v1_53_0_670, root-of-Bb53
Branch point for: Bb53
Changes since 1.41: +90 -19 lines
File MIME type: text/x-pascal
板更新時のタブの復元に,タブの保存の機構をそのまま使用しないように修正。

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