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.46 - (show annotations) (download) (as text)
Mon Aug 7 16:50:15 2006 UTC (17 years, 8 months ago) by h677
Branch: MAIN
CVS Tags: v1_54_0_676, v1_54_0_675
Changes since 1.45: +46 -5 lines
File MIME type: text/x-pascal
ブラウザタブの移動(?)でループを許可するオプション追加

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