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