Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/GikoDataModule.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (hide annotations) (download) (as text)
Fri Nov 18 15:51:03 2005 UTC (18 years, 5 months ago) by h677
Branch: MAIN
Changes since 1.3: +396 -12 lines
File MIME type: text/x-pascal
・ト・遙シ・ン・テ・ラ・「・テ・ラ、゙、ヌーワソ「

1 h677 1.1 unit GikoDataModule;
2    
3     interface
4    
5     uses
6 h677 1.2 SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7     ComCtrls;
8 h677 1.1
9     type
10     TGikoDM = class(TDataModule)
11     GikoFormActionList: TActionList;
12     OnlyAHundredResAction: TAction;
13     OnlyKokoResAction: TAction;
14     LoginAction: TAction;
15     NewBoardAction: TAction;
16     LogDeleteAction: TAction;
17     KidokuAction: TAction;
18     StdToolBarVisibleAction: TAction;
19     AddressBarVisibleAction: TAction;
20     LinkBarVisibleAction: TAction;
21 h677 1.4 ListToolBarVisibleAction: TAction;
22 h677 1.1 SearchAction: TAction;
23     GikoNaviWebPageAction: TAction;
24     MonazillaWebPageAction: TAction;
25     BBS2chWebPageAction: TAction;
26     GikoFolderOpenAction: TAction;
27     AboutAction: TAction;
28     SelectTextClearAction: TAction;
29     NameTextClearAction: TAction;
30     MailTextClearAction: TAction;
31     ExitAction: TAction;
32     ListNameBarVisibleAction: TAction;
33     BrowserToolBarVisibleAction: TAction;
34     BrowserNameBarVisibleAction: TAction;
35     MsgBarVisibleAction: TAction;
36     MsgBarCloseAction: TAction;
37     StatusBarVisibleAction: TAction;
38     CabinetBBSAction: TAction;
39     CabinetHistoryAction: TAction;
40     OnlyNewResAction: TAction;
41 h677 1.4 CabinetFavoriteAction: TAction;
42 h677 1.1 CabinetVisibleAction: TAction;
43     ListNumberVisibleAction: TAction;
44     UpFolderAction: TAction;
45     CabinetCloseAction: TAction;
46     IconStyle: TAction;
47     LargeIconAction: TAction;
48     SmallIconAction: TAction;
49     ListIconAction: TAction;
50     DetailIconAction: TAction;
51     MidokuAction: TAction;
52     AllSelectAction: TAction;
53     AllItemAction: TAction;
54     LogItemAction: TAction;
55     NewItemAction: TAction;
56     ThreadRangeAction: TAction;
57     SelectItemAction: TAction;
58     StopAction: TAction;
59     OptionAction: TAction;
60     RoundAction: TAction;
61 h677 1.4 BrowserMaxAction: TAction;
62 h677 1.1 BrowserMinAction: TAction;
63     ScrollTopAction: TAction;
64     ScrollLastAction: TAction;
65     ScrollNewAction: TAction;
66     ScrollKokoAction: TAction;
67     EditorAction: TAction;
68     IEAction: TAction;
69     ShowThreadAction: TAction;
70     ShowBoardAction: TAction;
71     URLCopyAction: TAction;
72     NameCopyAction: TAction;
73     NameURLCopyAction: TAction;
74     ItemReloadAction: TAction;
75     ThreadEditorAction: TAction;
76     BoardIEAction: TAction;
77     SelectItemURLCopyAction: TAction;
78     SelectItemNameCopyAction: TAction;
79     SelectItemNameURLCopyAction: TAction;
80     SelectListReloadAction: TAction;
81 h677 1.4 SelectThreadReloadAction: TAction;
82 h677 1.1 BrowserTabCloseAction: TAction;
83     NotSelectTabCloseAction: TAction;
84     AllTabCloseAction: TAction;
85     KokomadeAction: TAction;
86     ZenbuAction: TAction;
87     KokoResAction: TAction;
88     TreeSelectBoradReload: TAction;
89     TreeSelectThreadReload: TAction;
90     TreeSelectURLCopy: TAction;
91     SelectReservAction: TAction;
92     SelectNewRoundName: TAction;
93     SelectDeleteRound: TAction;
94     KeySettingAction: TAction;
95     ArrangeAction: TAction;
96     ActiveLogDeleteAction: TAction;
97     TreeSelectNameURLCopy: TAction;
98     PaneInitAction: TAction;
99     LeftmostTabSelectAction: TAction;
100     LeftTabSelectAction: TAction;
101 h677 1.4 RightTabSelectAction: TAction;
102 h677 1.1 RightmostTabSelectAction: TAction;
103     FavoriteAddAction: TAction;
104     BoardFavoriteAddAction: TAction;
105     ThreadFavoriteAddAction: TAction;
106     TreeSelectFavoriteAddAction: TAction;
107     FavoriteArrangeAction: TAction;
108     MoveToAction: TAction;
109     BrowserTabVisibleAction: TAction;
110     BrowserTabTopAction: TAction;
111     BrowserTabBottomAction: TAction;
112     BrowserTabTabStyleAction: TAction;
113     BrowserTabButtonStyleAction: TAction;
114     BrowserTabFlatStyleAction: TAction;
115     GikoHelpAction: TAction;
116     KotehanAction: TAction;
117     ToolBarSettingAction: TAction;
118     SelectResAction: TAction;
119     AllResAction: TAction;
120     EditNGAction: TAction;
121 h677 1.4 ReloadAction: TAction;
122 h677 1.1 GoFowardAction: TAction;
123     GoBackAction: TAction;
124     TreeSelectSearchBoardName: TAction;
125     FavoriteTreeViewRenameAction: TAction;
126     FavoriteTreeViewNewFolderAction: TAction;
127     FavoriteTreeViewDeleteAction: TAction;
128     FavoriteTreeViewBrowseFolderAction: TAction;
129     FavoriteTreeViewReloadAction: TAction;
130     FavoriteTreeViewURLCopyAction: TAction;
131     FavoriteTreeViewNameCopyAction: TAction;
132     FavoriteTreeViewNameURLCopyAction: TAction;
133     FavoriteTreeViewLogDeleteAction: TAction;
134     ResRangeAction: TAction;
135     ExportFavoriteFile: TFileSaveAs;
136     FavoriteTreeViewBrowseBoardAction: TAction;
137     FavoriteTreeViewBrowseThreadAction: TAction;
138     UpBoardAction: TAction;
139     KoreCopy: TAction;
140     TreeSelectNameCopy: TAction;
141 h677 1.4 SetFocusForBrowserAction: TAction;
142 h677 1.1 SetFocusForThreadListAction: TAction;
143     SetFocusForCabinetAction: TAction;
144     FileRun1: TFileRun;
145     ThreadlistMaxAndFocusAction: TAction;
146     BrowserMaxAndFocusAction: TAction;
147     SelectItemSaveForHTML: TAction;
148     SelectItemSaveForDat: TAction;
149     FileSaveAs1: TFileSaveAs;
150     LogFolderOpenAction: TAction;
151     TabsSaveAction: TAction;
152     TabsOpenAction: TAction;
153     BrowsBoradHeadAction: TAction;
154     TabAutoSaveAction: TAction;
155     TabAutoLoadAction: TAction;
156     JumpToNumOfResAction: TAction;
157     FavoriteTreeViewCollapseAction: TAction;
158     RightTabCloseAction: TAction;
159     LeftTabCloseAction: TAction;
160     SameIDResAnchorAction: TAction;
161 h677 1.4 IndividualAbon1Action: TAction;
162 h677 1.1 IndividualAbon0Action: TAction;
163     AntiIndividualAbonAction: TAction;
164     AntiIndividualAbonDlgAction: TAction;
165     IndividualAbonID1Action: TAction;
166     IndividualAbonID0Action: TAction;
167     MuteAction: TAction;
168     SortActiveColumnAction: TAction;
169     SortNextColumnAction: TAction;
170     SortPrevColumnAction: TAction;
171     BeLogInOutAction: TAction;
172     UnSelectedListViewAction: TAction;
173     WikiFAQWebPageAction: TAction;
174     ToobarImageList: TImageList;
175     procedure EditNGActionExecute(Sender: TObject);
176     procedure ReloadActionExecute(Sender: TObject);
177     procedure GoFowardActionExecute(Sender: TObject);
178     procedure GoBackActionExecute(Sender: TObject);
179     procedure MoveToActionExecute(Sender: TObject);
180     procedure FavoriteAddActionExecute(Sender: TObject);
181 h677 1.4 procedure FavoriteArrangeActionExecute(Sender: TObject);
182 h677 1.1 procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
183 h677 1.2 procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
184     procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
185     procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
186     procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
187     procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
188     procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
189     procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
190     procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
191     procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
192     procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
193 h677 1.3 procedure OnlyAHundredResActionExecute(Sender: TObject);
194     procedure OnlyKokoResActionExecute(Sender: TObject);
195     procedure OnlyNewResActionExecute(Sender: TObject);
196     procedure BrowserMaxActionExecute(Sender: TObject);
197     procedure BrowserMinActionExecute(Sender: TObject);
198     procedure ScrollTopActionExecute(Sender: TObject);
199     procedure ScrollLastActionExecute(Sender: TObject);
200     procedure ScrollNewActionExecute(Sender: TObject);
201 h677 1.4 procedure ScrollKokoActionExecute(Sender: TObject);
202 h677 1.3 procedure ScrollKokoActionUpdate(Sender: TObject);
203     procedure EditorActionExecute(Sender: TObject);
204     procedure IEActionExecute(Sender: TObject);
205     procedure ShowThreadActionExecute(Sender: TObject);
206     procedure ShowBoardActionExecute(Sender: TObject);
207     procedure URLCopyActionExecute(Sender: TObject);
208     procedure NameCopyActionExecute(Sender: TObject);
209     procedure NameURLCopyActionExecute(Sender: TObject);
210     procedure ItemReloadActionExecute(Sender: TObject);
211     procedure BrowserTabCloseActionExecute(Sender: TObject);
212     procedure BrowserTabCloseActionUpdate(Sender: TObject);
213     procedure NotSelectTabCloseActionExecute(Sender: TObject);
214     procedure NotSelectTabCloseActionUpdate(Sender: TObject);
215     procedure AllTabCloseActionExecute(Sender: TObject);
216     procedure ActiveLogDeleteActionExecute(Sender: TObject);
217     procedure LeftmostTabSelectActionExecute(Sender: TObject);
218     procedure LeftmostTabSelectActionUpdate(Sender: TObject);
219     procedure LeftTabSelectActionExecute(Sender: TObject);
220     procedure RightTabSelectActionExecute(Sender: TObject);
221 h677 1.4 procedure RightTabSelectActionUpdate(Sender: TObject);
222 h677 1.3 procedure RightmostTabSelectActionExecute(Sender: TObject);
223     procedure ThreadFavoriteAddActionExecute(Sender: TObject);
224     procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
225     procedure SelectResActionExecute(Sender: TObject);
226     procedure AllResActionExecute(Sender: TObject);
227     procedure ResRangeActionExecute(Sender: TObject);
228     procedure UpBoardActionExecute(Sender: TObject);
229     procedure JumpToNumOfResActionExecute(Sender: TObject);
230     procedure RightTabCloseActionExecute(Sender: TObject);
231     procedure RightTabCloseActionUpdate(Sender: TObject);
232     procedure LeftTabCloseActionExecute(Sender: TObject);
233 h677 1.4 procedure DataModuleCreate(Sender: TObject);
234     procedure SearchActionExecute(Sender: TObject);
235     procedure OptionActionExecute(Sender: TObject);
236     procedure RoundActionExecute(Sender: TObject);
237     procedure KeySettingActionExecute(Sender: TObject);
238     procedure KotehanActionExecute(Sender: TObject);
239     procedure ToolBarSettingActionExecute(Sender: TObject);
240     procedure MuteActionExecute(Sender: TObject);
241     procedure TreeSelectBoradReloadExecute(Sender: TObject);
242     procedure TreeSelectThreadReloadExecute(Sender: TObject);
243     procedure TreeSelectURLCopyExecute(Sender: TObject);
244     procedure TreeSelectNameURLCopyExecute(Sender: TObject);
245     procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
246     procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
247     procedure TreeSelectNameCopyExecute(Sender: TObject);
248 h677 1.1 private
249     { Private ?ス?ス?ス?ス }
250     public
251     { Public ?ス?ス?ス?ス }
252     published
253     { Published ?ス?ス?ス?ス }
254 h677 1.2 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
255 h677 1.1 procedure DependActiveCntentActionUpdate(Sender: TObject);
256 h677 1.2 //TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
257     procedure DependActiveCntentLogActionUpdate(Sender: TObject);
258     //TAction?ス?スActiveList?ス?スTBoard?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
259     procedure DependActiveListTBoardActionUpdate(Sender: TObject);
260 h677 1.1 end;
261    
262     var
263     GikoDM: TGikoDM;
264    
265     implementation
266    
267     uses
268 h677 1.2 Windows, Math, Messages, Dialogs, Clipbrd,
269 h677 1.3 Giko, GikoSystem, GikoUtil, BoardGroup,
270     FavoriteArrange, Favorite, Setting, MojuUtils,
271 h677 1.4 Editor, ListSelect, Search, Option, Round,
272     KeySetting, Gesture, Kotehan, ToolBarSetting,
273     ToolBarUtil;
274 h677 1.1
275    
276     const
277 h677 1.3 CAPTION_NAME: string = '?スM?スR?スi?スr';
278 h677 1.1 USER_SETLINKBAR = WM_USER + 2003;
279 h677 1.3 //?スc?ス[?ス?ス?スo?ス[?スA?スC?スR?ス?ス
280     TOOL_ICON_HEIGHT_MAX = 16; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
281     TOOL_ICON_HEIGHT_MIN = 17; //?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
282     TOOL_ICON_HEIGHT_NORMAL = 18; //?ス?ス?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
283     TOOL_ICON_WIDTH_MAX = 19; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
284     TOOL_ICON_WIDTH_MIN = 20; //?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
285     TOOL_ICON_WIDTH_NORMAL = 21; //?ス?ス?スW?ス?ス?スA?スC?スR?ス?ス
286    
287     TOOL_ICON_FAV_FOLDER = 30; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スt?スH?ス?ス?ス_?スA?スC?スR?ス?ス
288     TOOL_ICON_FAV_BOARD = 31; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スR?ス?ス
289     TOOL_ICON_FAV_THREAD = 32; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スX?ス?ス?スA?スC?スR?ス?ス
290    
291 h677 1.1 {$R *.dfm}
292     // *************************************************************************
293 h677 1.2 // TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
294     // *************************************************************************
295     procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
296     begin
297     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
298     end;
299     // *************************************************************************
300     // TAction?ス?スGetActiveContent?ス?スnil?ス?ス?スO?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
301     // *************************************************************************
302     procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
303     begin
304     TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
305     and (GikoForm.GetActiveContent.IsLogFile);
306     end;
307     // *************************************************************************
308     // TAction?ス?スActiveList?ス?スTBoard?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?ス
309     // *************************************************************************
310     procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
311     begin
312     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
313     end;
314     // *************************************************************************
315 h677 1.1 // NG?ス?ス?ス[?スh?ス?ス?スW
316     // *************************************************************************
317     procedure TGikoDM.EditNGActionExecute(Sender: TObject);
318     begin
319     //?スe?スL?スX?スg?ス?ス?ス?ス?スA?スt?ス?ス?ス?ス?ス?ス?ス?ス?スA?スv?ス?ス?ス?スNG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?スI?ス[?スv?ス?ス
320     GikoSys.FAbon.EditNGwords;
321     end;
322     // *************************************************************************
323     // NG?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj
324     // *************************************************************************
325     procedure TGikoDM.ReloadActionExecute(Sender: TObject);
326     begin
327     //?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?スs?ス@?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?スo?ス?ス
328     if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
329     MsgBox(GikoForm.Handle, 'NG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス', '?スG?ス?ス?ス[', MB_OK or MB_ICONEXCLAMATION);
330     end else begin
331     //?スS?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
332     GikoForm.RepaintAllTabsBrowser();
333     end;
334     end;
335     // *************************************************************************
336     // NG?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?スj
337     // *************************************************************************
338     procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
339     var
340     s: string;
341     begin
342     //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス@?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?スo?ス?ス
343     if GikoSys.FAbon.GoBack =false then begin
344     MsgBox(GikoForm.Handle, '?ス?ス?ス?ス?ス?ス?ス?ス?ス?スNG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス', '?スG?ス?ス?ス[', MB_OK or MB_ICONEXCLAMATION);
345     end else begin
346     //?スX?スe?ス[?ス^?スX?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?スNG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?スX?スV
347     s := GikoSys.FAbon.NGwordname;
348     GikoForm.StatusBar.Panels.Items[2].Text := s;
349     //?スX?スe?ス[?ス^?スX?ス?ス?ス\?ス?ス?スT?スC?スY?ス?ス?ス?ス?スT?スC?スY
350     GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
351     GikoForm.StatusBarResize(Sender);
352     //?スS?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
353     GikoForm.RepaintAllTabsBrowser();
354     end;
355     end;
356     // *************************************************************************
357     // NG?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?ス?スO?スj
358     // *************************************************************************
359     procedure TGikoDM.GoBackActionExecute(Sender: TObject);
360     var
361     s: string;
362     begin
363     //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス@?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?スo?ス?ス
364     if GikoSys.FAbon.GoForward =false then begin
365     MsgBox(GikoForm.Handle, '?ス?ス?ス?ス?スO?ス?スNG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス', '?スG?ス?ス?ス[', MB_OK or MB_ICONEXCLAMATION);
366     end else begin
367     //?スX?スe?ス[?ス^?スX?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?スNG?ス?ス?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?スX?スV
368     s := GikoSys.FAbon.NGwordname;
369     GikoForm.StatusBar.Panels.Items[2].Text := s;
370     //?スX?スe?ス[?ス^?スX?ス?ス?ス\?ス?ス?スT?スC?スY?ス?ス?ス?ス?スT?スC?スY
371     GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
372     GikoForm.StatusBarResize(Sender);
373     //?スS?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
374     GikoForm.RepaintAllTabsBrowser();
375     end;
376     end;
377     // *************************************************************************
378     // ?スA?スh?ス?ス?スX?スo?ス[?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
379     // *************************************************************************
380     procedure TGikoDM.MoveToActionExecute(Sender: TObject);
381     var
382     URL: string;
383     idx: Integer;
384     begin
385     //?スA?スh?ス?ス?スX?スR?ス?ス?ス{?ス{?スb?スN?スX?ス?ス?ス?スURL?ス?ス?ス?ス?ス?ス
386     URL := Trim(GikoForm.AddressComboBox.Text);
387     //URL?ス?ス?ス?ス?ス?ス
388     GikoForm.MoveToURL(URL);
389     //?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
390     idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
391     if idx = -1 then begin
392     GikoForm.AddressComboBox.Items.Insert(0, URL);
393     if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
394     GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
395     end else begin
396     GikoForm.AddressComboBox.Items.Delete(idx);
397     GikoForm.AddressComboBox.Items.Insert(0, URL);
398     end;
399     end;
400     // *************************************************************************
401     // ?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?スJ?ス?ス
402     // *************************************************************************
403     procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
404     begin
405     GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
406     end;
407     // *************************************************************************
408     // ?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?スJ?ス?ス
409     // *************************************************************************
410     procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
411     var
412     Dlg: TFavoriteArrangeDialog;
413     begin
414     Dlg := TFavoriteArrangeDialog.Create(Self);
415     try
416     Dlg.ShowModal;
417     finally
418     Dlg.Release;
419     end;
420     //?ス?ス?ス?ス?スN?スo?ス[?ス?ス?スX?スV?ス?ス?ス`?ス?ス?ス?ス
421     PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
422     end;
423     // *************************************************************************
424     // ?スc?ス?ス?ス[?ス?ス?スS?ス?ス?ス?ス?ス?ス?ス?ス
425     // *************************************************************************
426     procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
427     var
428     node : TTreeNode;
429     begin
430     node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
431     try
432     //?スm?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス@?スm?ス[?スh?ス?ス?スk?ス?ス?ス?ス?ス?ス?ス?ス
433     while node <> nil do begin
434     if node.HasChildren then
435     node.Expanded := False;
436     node := node.GetNext;
437     end;
438     except
439     end;
440     end;
441 h677 1.2 // *************************************************************************
442     // ?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?スW?ス?ス?ス?ス
443     // *************************************************************************
444     procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
445     var
446     node : TTreeNode;
447     begin
448    
449     if GikoForm.ClickNode = nil then
450     Exit;
451     if GikoForm.ClickNode.IsFirstNode then
452     Exit;
453     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
454     Exit;
455     GikoForm.FavoriteTreeView.ReadOnly := False;
456     if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
457     node := GikoForm.ClickNode.Parent;
458     while node <> nil do begin
459     node.Expanded := True;
460     node := node.Parent;
461     end;
462     GikoForm.ClickNode.EditText;
463     end else begin
464     GikoForm.ClickNode.Text := InputBox( '?ス?ス?スO?ス?ス?ス?ス?スX', '?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スV?ス?ス?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス', GikoForm.ClickNode.Text );
465     end;
466    
467     GikoForm.SetLinkBar;
468     end;
469     // *************************************************************************
470     // ?スV?ス?ス?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス?ス?ス_?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
471     // *************************************************************************
472     procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
473     var
474     NewFavFolder: TFavoriteFolder;
475     Node: TTreeNode;
476     begin
477    
478     if GikoForm.ClickNode = nil then
479     Exit;
480    
481     try
482     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
483     GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
484     GikoForm.ClickNode := GikoForm.ClickNode.Parent;
485     end;
486    
487     NewFavFolder := TFavoriteFolder.Create;
488     Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '?スV?ス?ス?ス?ス?スt?スH?ス?ス?ス_', NewFavFolder);
489     Node.ImageIndex := 14;
490     Node.SelectedIndex := 14;
491     // FClickNode.Selected.Expanded := True;
492     GikoForm.FavoriteTreeView.Selected := Node;
493     GikoForm.ClickNode := Node;
494     FavoriteTreeViewRenameAction.Execute;
495     finally
496     end;
497    
498     end;
499     // *************************************************************************
500     // ?ス?ス?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
501     // *************************************************************************
502     procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
503     const
504     DEL_LINK_MSG = '?スg?ス?ス?ス?ス?スN?スh?ス?ス?ス?ス?ス?ス?スN?スo?ス[?スp?スt?スH?ス?ス?ス_?ス?ス?ス?ス?スB?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH';
505     DEL_MSG = '?スg^0?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH';
506     DEL_TITLE = '?ス?ス?ス?ス?スm?スF';
507     begin
508    
509     if GikoForm.ClickNode = nil then
510     Exit;
511     if GikoForm.ClickNode.IsFirstNode then
512     Exit;
513     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
514     if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
515     if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
516     Exit;
517     end else begin
518     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
519     Exit;
520     end;
521     end;
522    
523     GikoForm.ClickNode.Delete;
524    
525     GikoForm.SetLinkBar;
526    
527     end;
528     // *************************************************************************
529     // ?ス?ス?ス?ス?スt?スH?ス?ス?ス_?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?スS?ス?ス?スJ?ス?ス
530     // *************************************************************************
531     procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
532     Sender: TObject);
533     begin
534     GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
535     end;
536     // *************************************************************************
537     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス
538     // *************************************************************************
539     procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
540     var
541     ThreadItem: TThreadItem;
542     FavThread: TFavoriteThreadItem;
543     Board: TBoard;
544     FavBoard: TFavoriteBoardItem;
545     shiftDown: Boolean;
546     begin
547    
548     if GikoForm.ClickNode = nil then Exit;
549    
550     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
551    
552     if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
553     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
554     ThreadItem := FavThread.Item;
555     if ThreadItem <> nil then
556     GikoForm.DownloadContent(ThreadItem, shiftDown);
557     end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
558     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
559     Board := FavBoard.Item;
560     GikoForm.DownloadList(Board, shiftDown);
561     end;
562    
563     end;
564     // *************************************************************************
565     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
566     // *************************************************************************
567     procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
568     var
569     FavThread : TFavoriteThreadItem;
570     FavBoard : TFavoriteBoardItem;
571     s : string;
572     begin
573    
574     if GikoForm.ClickNode = nil then Exit;
575    
576     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
577    
578     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
579     s := FavThread.URL + #13#10;
580     if s <> '' then
581     Clipboard.AsText := s;
582    
583     end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
584    
585     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
586     s := FavBoard.URL + #13#10;
587     if s <> '' then
588     Clipboard.AsText := s;
589    
590     end;
591     end;
592     // *************************************************************************
593     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?スR?スs?ス[?ス?ス?ス?ス
594     // *************************************************************************
595     procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
596     var
597     ThreadItem: TThreadItem;
598     FavThread: TFavoriteThreadItem;
599     Board: TBoard;
600     FavBoard: TFavoriteBoardItem;
601     s: string;
602     begin
603    
604     if GikoForm.ClickNode = nil then Exit;
605    
606     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
607    
608     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
609     ThreadItem := FavThread.Item;
610    
611     try
612     s := ThreadItem.Title + #13#10;
613     if s <> '' then
614     Clipboard.AsText := s;
615     finally
616     end;
617    
618     end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
619    
620     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
621     Board := FavBoard.Item;
622     if Board <> nil then
623     if not Board.IsThreadDatRead then
624     GikoSys.ReadSubjectFile(Board);
625    
626     try
627     s := Board.Title + #13#10;
628     if s <> '' then
629     Clipboard.AsText := s;
630     finally
631     end;
632    
633     end;
634    
635     end;
636     // *************************************************************************
637     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?スO?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
638     // *************************************************************************
639     procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
640     Sender: TObject);
641     var
642     ThreadItem: TThreadItem;
643     FavThread: TFavoriteThreadItem;
644     Board: TBoard;
645     FavBoard: TFavoriteBoardItem;
646     s: string;
647     begin
648    
649     if GikoForm.ClickNode = nil then Exit;
650    
651     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
652    
653     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
654     ThreadItem := FavThread.Item;
655    
656     try
657     s := ThreadItem.Title + #13#10 + ThreadItem.URL + #13#10;
658     if s <> '' then
659     Clipboard.AsText := s;
660     finally
661     end;
662    
663     end else if (TObject(GikoForm.ClickNode.Data) is TFavoriteBoardItem) then begin
664    
665     FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
666     Board := FavBoard.Item;
667     if Board <> nil then
668     if not Board.IsThreadDatRead then
669     GikoSys.ReadSubjectFile(Board);
670    
671     try
672     s := Board.Title + #13#10 + Board.URL + #13#10;
673     if s <> '' then
674     Clipboard.AsText := s;
675     finally
676     end;
677    
678     end;
679    
680     end;
681     // *************************************************************************
682     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
683     // *************************************************************************
684     procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
685     const
686     DEL_MSG = '?スg^0?スh?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH';
687     DEL_TITLE = '?ス?ス?ス?ス?スm?スF';
688     var
689     ThreadItem: TThreadItem;
690     FavThread: TFavoriteThreadItem;
691     begin
692    
693     if GikoForm.ClickNode = nil then Exit;
694     if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
695    
696     FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
697     ThreadItem := FavThread.Item;
698    
699     try
700     if GikoSys.Setting.DeleteMsg then begin
701     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
702     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
703     Exit;
704     end;
705    
706     GikoForm.DeleteHistory(ThreadItem);
707     GikoForm.DeleteTab(ThreadItem);
708     ThreadItem.DeleteLogFile;
709    
710     GikoForm.ListView.Refresh;
711     finally
712     end;
713    
714     end;
715     // *************************************************************************
716     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スu?ス?ス?スE?スU?ス?ス?ス\?ス?ス?ス?ス?ス?ス
717     // *************************************************************************
718     procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
719     Sender: TObject);
720     var
721     threadItem : TThreadItem;
722     begin
723    
724     if GikoForm.ClickNode = nil then Exit;
725    
726     if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
727    
728     threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
729     if threadItem = nil then
730     Exit;
731     GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
732    
733     end;
734     end;
735 h677 1.3 // *************************************************************************
736     // ?ス?ス?スV100?ス?ス?スX?ス?ス?ス?ス?ス\?ス?ス
737     // *************************************************************************
738     procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
739     var
740     FilterList : TStringList;
741     begin
742     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
743     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
744    
745     GikoForm.ResRangeMenuSelect := 100;
746     OnlyAHundredResAction.Checked := True;
747    
748     if GikoSys.ResRange <> 100 then begin
749     GikoSys.ResRange := 100;
750    
751     // ?スt?スB?ス?ス?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
752     FilterList := TStringList.Create;
753     try
754     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
755     GikoSys.FSelectResFilter.Reverse := False;
756     finally
757     FilterList.Free;
758     end;
759    
760     GikoForm.SelectResWord := '';
761     GikoForm.RepaintAllTabsBrowser();
762     end;
763     end;
764     // *************************************************************************
765     // ?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス\?ス?ス
766     // *************************************************************************
767     procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
768     var
769     FilterList : TStringList;
770     begin
771     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
772     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
773    
774     GikoForm.ResRangeMenuSelect := Ord( grrKoko );
775     OnlyKokoResAction.Checked := True;
776    
777     if GikoSys.ResRange <> Ord( grrKoko ) then begin
778     GikoSys.ResRange := Ord( grrKoko );
779    
780     // ?スt?スB?ス?ス?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
781     FilterList := TStringList.Create;
782     try
783     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
784     GikoSys.FSelectResFilter.Reverse := False;
785     finally
786     FilterList.Free;
787     end;
788    
789     GikoForm.SelectResWord := '';
790     GikoForm.RepaintAllTabsBrowser();
791     end;
792     end;
793     // *************************************************************************
794     // ?スV?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス\?ス?ス
795     // *************************************************************************
796     procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
797     var
798     FilterList : TStringList;
799     begin
800     if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
801     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
802    
803     GikoForm.ResRangeMenuSelect := Ord( grrNew );
804     OnlyNewResAction.Checked := True;
805    
806     if GikoSys.ResRange <> Ord( grrNew ) then begin
807     GikoSys.ResRange := Ord( grrNew );
808 h677 1.1
809 h677 1.3 // ?スt?スB?ス?ス?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
810     FilterList := TStringList.Create;
811     try
812     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
813     GikoSys.FSelectResFilter.Reverse := False;
814     finally
815     FilterList.Free;
816     end;
817    
818     GikoForm.SelectResWord := '';
819     GikoForm.RepaintAllTabsBrowser();
820     end;
821     end;
822     // *************************************************************************
823     // ?スX?ス?ス?スb?スh?ス\?ス?ス?スG?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス
824     // *************************************************************************
825     procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
826     begin
827     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
828     case GikoSys.Setting.ListWidthState of
829     glsMax: begin
830     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
831     if GikoForm.ActiveContent <> nil then
832     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
833     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
834     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
835     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
836     GikoSys.Setting.ListWidthState := glsNormal;
837     if GikoForm.ActiveContent <> nil then
838     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
839     end;
840     glsMin, glsNormal: begin
841     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
842     if GikoForm.ActiveContent <> nil then
843     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
844     if GikoSys.Setting.ListWidthState = glsNormal then
845     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
846     if GikoForm.ActiveContent <> nil then
847     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
848     GikoForm.ViewPanel.Width := 1;
849     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
850     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
851     GikoSys.Setting.ListWidthState := glsMax;
852     end;
853     end;
854     end else begin
855     case GikoSys.Setting.ListHeightState of
856     glsMax: begin
857     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
858     if GikoForm.ActiveContent <> nil then
859     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
860     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
861     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
862     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
863     GikoSys.Setting.ListHeightState := glsNormal;
864     if GikoForm.ActiveContent <> nil then
865     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
866     end;
867     glsMin, glsNormal: begin
868     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
869     if GikoForm.ActiveContent <> nil then
870     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
871     if GikoSys.Setting.ListHeightState = glsNormal then
872     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
873     if GikoForm.ActiveContent <> nil then
874     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
875     GikoForm.ViewPanel.Height := 1;
876     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
877     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
878     GikoSys.Setting.ListHeightState := glsMax;
879     end;
880     end;
881     end;
882     end;
883     // *************************************************************************
884     // ?スX?ス?ス?スb?スh?ス\?ス?ス?スG?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス
885     // *************************************************************************
886     procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
887     begin
888     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
889     case GikoSys.Setting.ListWidthState of
890     glsMax, glsNormal: begin
891     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
892     if GikoForm.ActiveContent <> nil then
893     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
894     if GikoSys.Setting.ListWidthState = glsNormal then
895     GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
896     if GikoForm.ActiveContent <> nil then
897     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
898     GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
899     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
900     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
901     GikoSys.Setting.ListWidthState := glsMin;
902     end;
903     glsMin: begin
904     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
905     if GikoForm.ActiveContent <> nil then
906     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
907     GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
908     BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
909     BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
910     GikoSys.Setting.ListWidthState := glsNormal;
911     if GikoForm.ActiveContent <> nil then
912     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
913     end;
914     end;
915     end else begin
916     case GikoSys.Setting.ListHeightState of
917     glsMax, glsNormal: begin
918     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
919     if GikoForm.ActiveContent <> nil then
920     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
921     if GikoSys.Setting.ListHeightState = glsNormal then
922     GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
923     GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
924     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
925     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
926     GikoSys.Setting.ListHeightState := glsMin;
927     if GikoForm.ActiveContent <> nil then
928     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
929     end;
930     glsMin: begin
931     //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス
932     if GikoForm.ActiveContent <> nil then
933     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0); //?ス`?ス?ス?ス?ス?ス~
934     GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
935     BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
936     BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
937     GikoSys.Setting.ListHeightState := glsNormal;
938     if GikoForm.ActiveContent <> nil then
939     SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0); //?ス`?ス?ス
940     end;
941     end;
942     end;
943     end;
944     // *************************************************************************
945     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
946     // *************************************************************************
947     procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
948     begin
949     GikoForm.BrowserMovement('top');
950     end;
951     // *************************************************************************
952     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
953     // *************************************************************************
954     procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
955     begin
956     GikoForm.BrowserMovement('bottom');
957     end;
958     // *************************************************************************
959     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
960     // *************************************************************************
961     procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
962     begin
963     GikoForm.BrowserMovement('new');
964     end;
965     // *************************************************************************
966     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スR?スR?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
967     // *************************************************************************
968     procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
969     begin
970     GikoForm.BrowserMovement('koko');
971     end;
972     // *************************************************************************
973     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スR?スR?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
974     // *************************************************************************
975     procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
976     begin
977     ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
978     and (GikoForm.GetActiveContent.IsLogFile)
979     and (GikoForm.GetActiveContent.Kokomade <> -1);
980     end;
981     // *************************************************************************
982     // ?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?ス\?ス?ス?ス?ス?ス?ス
983     // *************************************************************************
984     procedure TGikoDM.EditorActionExecute(Sender: TObject);
985     var
986     Editor: TEditorForm;
987     Item: TThreadItem;
988     begin
989     Item := GikoForm.GetActiveContent;
990     if Item = nil then Exit;
991     Editor := TEditorForm.Create(GikoForm.GetMainForm);
992     Editor.SetThreadItem(Item);
993     GikoSys.LoadEditorKeySetting(Editor.ActionList);
994     Editor.Show;
995     Editor.BodyEdit.SetFocus;
996     end;
997     // *************************************************************************
998     // ?スX?ス?ス?ス?ス?スu?ス?ス?スE?スU?ス?ス?ス\?ス?ス?ス?ス?ス?ス
999     // *************************************************************************
1000     procedure TGikoDM.IEActionExecute(Sender: TObject);
1001     begin
1002     ShowThreadAction.Execute;
1003     end;
1004     // *************************************************************************
1005     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スu?ス?ス?スE?スU?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1006     // *************************************************************************
1007     procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1008     var
1009     ThreadItem: TThreadItem;
1010     begin
1011     ThreadItem := GikoForm.GetActiveContent;
1012     if ThreadItem = nil then Exit;
1013     GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1014     end;
1015     // *************************************************************************
1016     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?スu?ス?ス?スE?スU?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1017     // *************************************************************************
1018     procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1019     var
1020     ThreadItem: TThreadItem;
1021     begin
1022     ThreadItem := GikoForm.GetActiveContent;
1023     if ThreadItem = nil then Exit;
1024     GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1025     end;
1026     // *************************************************************************
1027     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1028     // *************************************************************************
1029     procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1030     var
1031     s: string;
1032     begin
1033     s := '';
1034     if TObject(GikoForm.GetActiveContent) is TBoard then
1035     s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1036     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1037     s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1038     if s <> '' then
1039     Clipboard.AsText := s;
1040     end;
1041     // *************************************************************************
1042     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1043     // *************************************************************************
1044     procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1045     var
1046     s: string;
1047     begin
1048     s := '';
1049     if TObject(GikoForm.GetActiveContent) is TBoard then
1050     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1051     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1052     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1053     if s <> '' then
1054     Clipboard.AsText := s;
1055     end;
1056     // *************************************************************************
1057     // ?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1058     // *************************************************************************
1059     procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1060     var
1061     s: string;
1062     begin
1063     s := '';
1064     if TObject(GikoForm.GetActiveContent) is TBoard then
1065     s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1066     else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1067     s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1068     if s <> '' then
1069     Clipboard.AsText := s;
1070     end;
1071     // *************************************************************************
1072     // ?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス
1073     // *************************************************************************
1074     procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1075     var
1076     ThreadItem: TThreadItem;
1077     shiftDown: Boolean;
1078     begin
1079     ThreadItem := GikoForm.GetActiveContent;
1080     shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1081     if ThreadItem <> nil then
1082     GikoForm.DownloadContent(ThreadItem, shiftDown);
1083     end;
1084     // *************************************************************************
1085     // ?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス?ス?ス?ス
1086     // *************************************************************************
1087     procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1088     var
1089     idx: Integer;
1090     begin
1091     idx := GikoForm.BrowserTab.TabIndex;
1092     if idx <> -1 then begin
1093     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1094     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1095     end;
1096     end;
1097     end;
1098     // *************************************************************************
1099     // ?ス^?スu?ス?ス?スP?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1100     // *************************************************************************
1101     procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1102     begin
1103     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1104     end;
1105     // *************************************************************************
1106     // ?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス^?スu?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス
1107     // *************************************************************************
1108     procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1109     var
1110     i: Integer;
1111     idx: Integer;
1112     begin
1113     idx := GikoForm.BrowserTab.TabIndex;
1114     if idx = -1 then Exit;
1115     GikoForm.BrowserTab.Tabs.BeginUpdate;
1116     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1117     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1118     GikoForm.BrowserTab.Tabs.Delete(i);
1119     end;
1120     if idx > 0 then begin
1121     for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1122     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1123     GikoForm.BrowserTab.Tabs.Delete(i);
1124     end;
1125     end;
1126     GikoForm.BrowserTab.Tabs.EndUpdate;
1127     end;
1128     // *************************************************************************
1129     // ?ス^?スu?ス?ス?スQ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1130     // *************************************************************************
1131     procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1132     begin
1133     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1134     end;
1135     // *************************************************************************
1136     // ?スS?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス?ス?ス?ス
1137     // *************************************************************************
1138     procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1139     var
1140     i: Integer;
1141     begin
1142     if GikoSys.Setting.ShowDialogForAllTabClose then
1143     if(MessageDlg('?スS?ス?ス?ス?ス?ス^?スu?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1144     Exit;
1145    
1146     GikoForm.ActiveContent := nil;
1147     GikoForm.BrowserNullTab.Thread := nil;
1148     GikoForm.BrowserTab.OnChange := nil;
1149     GikoForm.BrowserTab.Tabs.BeginUpdate;
1150     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1151     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1152     end;
1153     GikoForm.BrowserTab.Tabs.Clear;
1154     GikoForm.BrowserTab.Tabs.EndUpdate;
1155     GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1156     GikoForm.SetContent(GikoForm.BrowserNullTab);
1157     GikoForm.Caption := CAPTION_NAME ;
1158     end;
1159     // *************************************************************************
1160     // ?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス^?スu?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1161     // *************************************************************************
1162     procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1163     const
1164     DEL_MSG = '?スg^0?スh?ス?ス?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH';
1165     DEL_TITLE = '?ス?ス?ス?ス?スm?スF';
1166     var
1167     idx: Integer;
1168     ThreadItem: TThreadItem;
1169     begin
1170     idx := GikoForm.BrowserTab.TabIndex;
1171     if idx <> -1 then begin
1172     if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1173     ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1174     if GikoSys.Setting.DeleteMsg then
1175     if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1176     if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1177     Exit;
1178     GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1179     ThreadItem.DeleteLogFile;
1180     if ThreadItem.ParentBoard = GikoForm.ActiveList then
1181     GikoForm.ListView.Refresh;
1182     end;
1183     end;
1184     end;
1185     // *************************************************************************
1186     // ?ス?ス?ス?ス?ス?ス?ス?ス?ス^?スu?ス?ス?スI?ス?ス?ス?ス?ス?ス
1187     // *************************************************************************
1188     procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1189     begin
1190     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1191     GikoForm.BrowserTab.TabIndex := 0;
1192     GikoForm.BrowserTab.OnChange(nil);
1193     end;
1194     end;
1195     // *************************************************************************
1196     // ?ス^?スu?ス?ス?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?スA?ス^?スu?ス?ス?スC?ス?ス?スf?スb?スN?スX?ス?ス?スO?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1197     // *************************************************************************
1198     procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1199     begin
1200     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1201     and (GikoForm.BrowserTab.TabIndex <> 0);
1202     end;
1203     // *************************************************************************
1204     // ?ス?ス?ス?ス?ス^?スu?ス?ス?スI?ス?ス?ス?ス?ス?ス
1205     // *************************************************************************
1206     procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1207     begin
1208     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1209     if GikoForm.BrowserTab.TabIndex = -1 then begin
1210     GikoForm.BrowserTab.TabIndex := 0;
1211     GikoForm.BrowserTab.OnChange(nil);
1212     end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1213     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1214     GikoForm.BrowserTab.OnChange(nil);
1215     end;
1216     end;
1217     end;
1218     // *************************************************************************
1219     // ?スE?ス?ス?ス^?スu?ス?ス?スI?ス?ス?ス?ス?ス?ス
1220     // *************************************************************************
1221     procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1222     begin
1223     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1224     if GikoForm.BrowserTab.TabIndex = -1 then begin
1225     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1226     GikoForm.BrowserTab.OnChange(nil);
1227     end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1228     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1229     GikoForm.BrowserTab.OnChange(nil);
1230     end;
1231     end;
1232     end;
1233     // *************************************************************************
1234     // ?ス^?スu?ス?ス?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?スA?ス^?スu?ス?ス?スE?ス[?ス?ス?スO?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1235     // *************************************************************************
1236     procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1237     begin
1238     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1239     and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1240     end;
1241     // *************************************************************************
1242     // ?ス?ス?ス?ス?スE?ス?ス?ス^?スu?ス?ス?スI?ス?ス?ス?ス?ス?ス
1243     // *************************************************************************
1244     procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1245     begin
1246     if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1247     GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1248     GikoForm.BrowserTab.OnChange(nil);
1249     end;
1250     end;
1251     // *************************************************************************
1252     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1253     // *************************************************************************
1254     procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1255     begin
1256     if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1257     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1258     end;
1259     // *************************************************************************
1260     // ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?スA?スX?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?ス?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1261     // *************************************************************************
1262     procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1263     begin
1264     TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1265     and (GikoForm.ListView.SelCount > 0);
1266     end;
1267     // *************************************************************************
1268     // ?ス?ス?スX?ス?ス?ス?ス?スe?ス?ス?スi?ス?ス?ス?ス?ス?ス
1269     // *************************************************************************
1270     procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1271     var
1272     Dlg: TListSelectDialog;
1273     FilterList : TStringList;
1274     idx : Integer;
1275     begin
1276     Dlg := TListSelectDialog.Create(Self);
1277     try
1278     Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1279     Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1280     Dlg.ShowModal;
1281     if Dlg.ModalResult = mrOK then begin
1282     SelectResAction.Checked := True;
1283     if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1284     // ?ス?ス?ス?ス?ス?ス?ス?ス OK ?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス`
1285     ResRangeAction.Execute;
1286     end else begin
1287     GikoSys.ResRange := Ord( grrSelect );
1288    
1289     // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スo?ス?ス?ス?ス?ス?ス?ス?ス
1290     GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1291    
1292     // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?スV
1293     idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1294     if idx <> -1 then
1295     GikoSys.Setting.SelectTextList.Delete(idx);
1296     GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1297     while Dlg.SelectComboBox.Items.Count > 100 do begin
1298     Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1299     end;
1300    
1301     try
1302     if GikoForm.SelectComboBoxPanel.Visible then
1303     GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1304     except
1305     end;
1306    
1307     // ?スt?スB?ス?ス?ス^?ス?ス?ス?ス?ス?ス
1308     FilterList := TStringList.Create;
1309     try
1310     GikoSys.FSelectResFilter.Reverse := True;
1311     FilterList.Delimiter := ' '; //?ス?ス?ス?ス?ス?ス?スq?ス?ス?ス?ス?スp?スX?スy?ス[?スX?ス?ス?ス?ス?ス?ス
1312     FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1313    
1314     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1315     finally
1316     FilterList.Free;
1317     end;
1318     GikoForm.RepaintAllTabsBrowser();
1319     end;
1320     end else begin
1321     // ?スL?ス?ス?ス?ス?スZ?ス?ス
1322     if GikoSys.ResRange <> Ord( grrSelect ) then
1323     ResRangeAction.Execute;
1324     end;
1325     finally
1326     Dlg.Release;
1327     end;
1328    
1329     end;
1330     // *************************************************************************
1331     // ?スS?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1332     // *************************************************************************
1333     procedure TGikoDM.AllResActionExecute(Sender: TObject);
1334     var
1335     FilterList : TStringList;
1336     begin
1337     if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1338     and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1339    
1340     GikoForm.ResRangeMenuSelect := Ord( grrAll );
1341     AllResAction.Checked := True;
1342    
1343     if GikoSys.ResRange <> Ord( grrAll ) then begin
1344     GikoSys.ResRange := Ord( grrAll );
1345    
1346     // ?スt?スB?ス?ス?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1347     FilterList := TStringList.Create;
1348     try
1349     GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1350     GikoSys.FSelectResFilter.Reverse := False;
1351     finally
1352     FilterList.Free;
1353     end;
1354    
1355     GikoForm.SelectResWord := '';
1356    
1357     GikoForm.RepaintAllTabsBrowser();
1358     end;
1359     end;
1360     // *************************************************************************
1361     // ?ス?ス?スX?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1362     // *************************************************************************
1363     procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1364     begin
1365     case GikoForm.ResRangeMenuSelect of
1366     Ord( grrAll ): AllResAction.Execute;
1367     Ord( grrKoko ): OnlyKokoResAction.Execute;
1368     Ord( grrNew ): OnlyNewResAction.Execute;
1369     100: OnlyAHundredResAction.Execute;
1370     end;
1371    
1372     end;
1373     // *************************************************************************
1374     // ?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス\?ス?ス
1375     // *************************************************************************
1376     procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1377     begin
1378     GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1379     end;
1380     // *************************************************************************
1381     // ?スw?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス
1382     // *************************************************************************
1383     procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1384     var
1385     str: string;
1386     res: integer;
1387     begin
1388     str := '1';
1389     if( InputQuery('?スw?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス', '?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス', str) ) then begin
1390     str := ZenToHan(str);
1391     res := StrToIntDef(str, -1);
1392     if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1393     GikoForm.BrowserMovement(IntToStr(res), GikoForm.ActiveContent);
1394     SetFocusForBrowserAction.Execute;
1395     end else if res > GikoForm.GetActiveContent.Count then begin
1396     GikoForm.BrowserMovement(IntToStr(GikoForm.GetActiveContent.Count), GikoForm.ActiveContent);
1397     SetFocusForBrowserAction.Execute;
1398     end;
1399     end;
1400     end;
1401     // *************************************************************************
1402     // ?スA?スN?スe?スB?スu?ス?ス?ス^?スu?ス?ス?ス?ス?スE?ス?ス?ス?ス?ス?ス?ス?ス
1403     // *************************************************************************
1404     procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1405     var
1406     i: Integer;
1407     idx: Integer;
1408     begin
1409     idx := GikoForm.BrowserTab.TabIndex;
1410     if idx = -1 then Exit;
1411     GikoForm.BrowserTab.Tabs.BeginUpdate;
1412     for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1413     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1414     GikoForm.BrowserTab.Tabs.Delete(i);
1415     end;
1416     GikoForm.BrowserTab.Tabs.EndUpdate;
1417     end;
1418     // *************************************************************************
1419     // ?ス^?スu?ス?ス?ス?ス?ス?ス?スQ?ス?ス?ス?ス?ス?ス?スL?ス?ス?ス?スUpdate?スC?スx?ス?ス?スg
1420     // *************************************************************************
1421     procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1422     begin
1423     TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1424     end;
1425     // *************************************************************************
1426     // ?スA?スN?スe?スB?スu?ス?ス?ス^?スu?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1427     // *************************************************************************
1428     procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1429     var
1430     i: Integer;
1431     idx: Integer;
1432     begin
1433     idx := GikoForm.BrowserTab.TabIndex;
1434     if idx = -1 then Exit;
1435     GikoForm.BrowserTab.Tabs.BeginUpdate;
1436     if idx > 0 then begin
1437     for i := idx - 1 downto 0 do begin
1438     TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1439     GikoForm.BrowserTab.Tabs.Delete(i);
1440     end;
1441     end;
1442     GikoForm.BrowserTab.Tabs.EndUpdate;
1443     end;
1444     ////////////////////////////////?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス/////////////////////
1445 h677 1.4 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1446     begin
1447    
1448     end;
1449     // *************************************************************************
1450     // ?ス?ス?スO?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1451     // *************************************************************************
1452     procedure TGikoDM.SearchActionExecute(Sender: TObject);
1453     var
1454     chk: TObject;
1455     begin
1456    
1457     if GikoForm.SearchDialog = nil then begin
1458     if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1459     chk := GikoForm.GetActiveList
1460     else
1461     chk := nil;
1462    
1463     GikoForm.SearchDialog := TSearchDialog.Create(Self, chk);
1464     GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1465     end;
1466    
1467     try
1468     GikoForm.SearchDialog.Show;
1469     except
1470     end;
1471     end;
1472     // *************************************************************************
1473     // ?スI?スv?スV?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1474     // *************************************************************************
1475     procedure TGikoDM.OptionActionExecute(Sender: TObject);
1476     var
1477     Dlg: TOptionDialog;
1478     begin
1479     Dlg := TOptionDialog.Create(Self);
1480     try
1481     Dlg.ShowModal;
1482     finally
1483     Dlg.Release;
1484     end;
1485     end;
1486     // *************************************************************************
1487     // ?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?ス\?ス?ス?ス?ス?ス?ス
1488     // *************************************************************************
1489     procedure TGikoDM.RoundActionExecute(Sender: TObject);
1490     var
1491     Dlg: TRoundDialog;
1492     begin
1493     Dlg := TRoundDialog.Create(Self);
1494     try
1495     Dlg.ShowModal;
1496     finally
1497     Dlg.Release;
1498     end;
1499     end;
1500     // *************************************************************************
1501     // ?スL?ス[?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?スJ?ス?ス
1502     // *************************************************************************
1503     procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1504     var
1505     Dlg: TKeySettingForm;
1506     begin
1507     Dlg := TKeySettingForm.Create(Self);
1508     try
1509     if Dlg.ShowModal = mrOk then begin
1510     GikoSys.SaveKeySetting(GikoFormActionList);
1511     GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
1512     GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1513     end;
1514    
1515     finally
1516     Dlg.Release;
1517     MouseGesture.UnHook;
1518     MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1519     MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1520     MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1521     if GikoSys.Setting.GestureEnabled then begin
1522     GikoSys.Setting.Gestures.ClearGesture;
1523     GikoSys.Setting.Gestures.LoadGesture(
1524     GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1525     MouseGesture.SetHook( GikoForm.Handle );
1526     end;
1527     end;
1528     end;
1529     // *************************************************************************
1530     // ?スL?ス[?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?スJ?ス?ス
1531     // *************************************************************************
1532     procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1533     var
1534     Dlg: TKotehanDialog;
1535     begin
1536     Dlg := TKotehanDialog.Create(Self);
1537     try
1538     Dlg.ShowModal;
1539     finally
1540     Dlg.Release;
1541     end;
1542     end;
1543     // *************************************************************************
1544     // ?スc?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス_?スC?スA?ス?ス?スO?ス?ス?スJ?ス?ス
1545     // *************************************************************************
1546     procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1547     var
1548     Dlg: TToolBarSettingDialog;
1549     i: Integer;
1550     //Component: TComponent;
1551     ToolButton : TToolButton;
1552     begin
1553     Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1554     try
1555     Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1556     Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1557     Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1558     case GikoForm.ToolBarSettingSender of
1559     tssMain: Dlg.ToolBarIndex := 0;
1560     tssList: Dlg.ToolBarIndex := 1;
1561     tssBrowser: Dlg.ToolBarIndex := 2;
1562     end;
1563     if Dlg.ShowModal = mrOK then begin
1564     GikoForm.SetToolBarPopup;
1565    
1566     //?ス?ス?スK?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スK?ス?ス?ス?ス?スv?ス?ス?スp?スe?スB?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1567     for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1568     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1569     GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1570     GikoForm.MainCoolBar.Bands[i].MinWidth :=
1571     GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1572     end;
1573     for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1574     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1575     GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1576     GikoForm.ListCoolBar.Bands[i].MinWidth :=
1577     GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1578     end;
1579     for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1580     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1581     GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1582     GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1583     GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1584     end;
1585    
1586     SaveToolBarSetting(GikoForm.StdToolBar);
1587     SaveToolBarSetting(GikoForm.ListToolBar);
1588     //ListToolBar?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?スComboBox?ス?ス?スz?スu
1589     GikoForm.SelectComboBoxPanel.Visible := False;
1590     try
1591     for i := GikoForm.ListToolBar.ControlCount - 1 downto 0 do
1592     begin
1593     if GikoForm.ListToolBar.Controls[ i ].Action = SelectItemAction then
1594     begin
1595     GikoForm.SelectComboBoxPanel.Left :=
1596     GikoForm.ListToolBar.Controls[ i ].Left;
1597     GikoForm.SelectComboBoxPanel.Width :=
1598     GikoSys.Setting.SelectComboBoxWidth;
1599     GikoForm.SelectComboBoxPanel.Parent :=
1600     GikoForm.ListToolBar;
1601     GikoForm.SelectComboBoxPanel.Visible := True;
1602    
1603     GikoForm.SelectComboBox.Left := 0;
1604     GikoForm.SelectComboBox.Top := 0;
1605     GikoForm.SelectComboBox.Height :=
1606     GikoForm.SelectComboBoxPanel.ClientHeight;
1607     GikoForm.SelectComboBox.Width :=
1608     GikoForm.SelectComboBoxPanel.Width -
1609     GikoForm.SelectComboBoxSplitter.Width;
1610    
1611    
1612     //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1613     ToolButton := TToolButton(GikoForm.ListToolBar.FindComponent('SelectComboBoxDummy'));
1614     if ToolButton <> nil then begin
1615     ToolButton.Parent := nil;
1616     end else begin
1617     ToolButton := TToolButton.Create(GikoForm.ListToolBar);
1618     ToolButton.Name := 'SelectComboBoxDummy';
1619     end;
1620    
1621     ToolButton.Style := tbsSeparator;
1622     ToolButton.Width := 0;
1623     ToolButton.Left := GikoForm.ListToolBar.Controls[ i ].Left;
1624     GikoForm.ListToolBar.InsertControl(ToolButton);
1625     ToolButton.Visible := False;
1626    
1627     // ?スX?ス?ス?スb?スh?スi?ス?ス?ス?ス?ス?ス?ス?ス?スZ?スp?ス?ス?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB?ス?ス
1628     if (i + 1) < GikoForm.ListToolBar.ControlCount then
1629     if GikoForm.ListToolBar.Controls[ i + 1 ] is TToolButton then
1630     if TToolButton( GikoForm.ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then
1631     GikoForm.ListToolBar.Controls[ i + 1 ].Visible := False;
1632    
1633    
1634     // ?スX?ス?ス?スb?スh?スi?ス?ス?ス{?ス^?ス?ス?ス?ス?スB?ス?ス
1635     GikoForm.ListToolBar.Controls[ i ].Visible := False;
1636    
1637     break;
1638     end;
1639     end;
1640     except
1641     end;
1642     GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1643     SaveToolBarSetting(GikoForm.BrowserToolBar);
1644     end;
1645     finally
1646     Dlg.Release;
1647     GikoForm.ToolBarSettingSender := tssNone;
1648     end;
1649     end;
1650     // *************************************************************************
1651     // ?ス~?ス?ス?ス[?スg
1652     // *************************************************************************
1653     procedure TGikoDM.MuteActionExecute(Sender: TObject);
1654     begin
1655     GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1656     end;
1657     ////////////////////////////////?スc?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス/////////////////////
1658     // *************************************************************************
1659     // ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス
1660     // *************************************************************************
1661     procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1662     var
1663     Board: TBoard;
1664     TmpTreeNode: TTreeNode;
1665     begin
1666     TmpTreeNode := GikoForm.ClickNode;
1667     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1668     Board := nil;
1669    
1670     if TObject(TmpTreeNode.Data) is TBoard then
1671     Board := TBoard(TmpTreeNode.Data)
1672     else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1673     Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1674    
1675     if Board <> nil then
1676     GikoForm.DownloadList(Board);
1677     end;
1678     // *************************************************************************
1679     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス
1680     // *************************************************************************
1681     procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1682     var
1683     ThreadItem: TThreadItem;
1684     TmpTreeNode: TTreeNode;
1685     begin
1686     TmpTreeNode := GikoForm.ClickNode;
1687     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1688     ThreadItem := nil;
1689    
1690     if TObject(TmpTreeNode.Data) is TThreadItem then
1691     ThreadItem := TThreadItem(TmpTreeNode.Data)
1692     else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1693     ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1694    
1695     if ThreadItem <> nil then
1696     GikoForm.DownloadContent(ThreadItem);
1697     end;
1698     // *************************************************************************
1699     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1700     // *************************************************************************
1701     procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1702     var
1703     TmpTreeNode: TTreeNode;
1704     s: string;
1705     begin
1706     TmpTreeNode := GikoForm.ClickNode;
1707     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1708     if TObject(TmpTreeNode.Data) is TBoard then begin
1709     s := TBoard(TmpTreeNode.Data).URL + #13#10;
1710     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1711     s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1712     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1713     s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1714     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1715     s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1716     end;
1717     Clipboard.AsText := s;
1718     end;
1719     // *************************************************************************
1720     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?スURL?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1721     // *************************************************************************
1722     procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1723     var
1724     TmpTreeNode: TTreeNode;
1725     s: string;
1726     begin
1727     TmpTreeNode := GikoForm.ClickNode;
1728     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1729     if TObject(TmpTreeNode.Data) is TBoard then begin
1730     s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1731     end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1732     s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1733     end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1734     s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1735     end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1736     s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1737     end;
1738     Clipboard.AsText := s;
1739     end;
1740     // *************************************************************************
1741     // ?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1742     // *************************************************************************
1743     procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1744     begin
1745     GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1746     end;
1747     // *************************************************************************
1748     // ?ス?ス?ス?ス?ス?ス?ス?ス
1749     // *************************************************************************
1750     procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1751     var
1752     s : String;
1753     msg : String;
1754     CurItem : TTreeNode;
1755     next : boolean;
1756     begin
1757     if InputQuery('?ス?ス?ス?ス?ス?ス?ス?ス','?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス',s) then begin
1758     next := true;
1759     while next do begin
1760     if GikoForm.TreeView.Selected = nil then
1761     CurItem := GikoForm.TreeView.Items.GetFirstNode
1762     else begin
1763     CurItem := GikoForm.TreeView.Selected.GetNext;
1764     if CurItem = nil then
1765     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1766     end;
1767     while CurItem <> nil do begin
1768     if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1769     break;
1770     end;
1771     CurItem := CurItem.GetNext;
1772     end;
1773     try
1774     if CurItem = nil then begin
1775     msg := '?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH';
1776     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1777     CurItem := GikoForm.TreeView.Items.GetFirstNode;
1778     end else begin
1779     Exit;
1780     end;
1781     GikoForm.TreeView.Select(CurItem);
1782     GikoForm.TreeView.SetFocus;
1783     end else begin
1784     GikoForm.TreeView.Select(CurItem);
1785     GikoForm.TreeView.SetFocus;
1786     msg := '?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス?ス?ス?スH';
1787     if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes then begin
1788     next := true;
1789     end else begin
1790     next := false;
1791     end;
1792     end;
1793    
1794     except
1795     Exit;
1796     end;
1797     end;
1798     end;
1799     end;
1800     // *************************************************************************
1801     // ?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スO?ス?ス?スR?スs?ス[?ス?ス?ス?ス
1802     // *************************************************************************
1803     procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1804     var
1805     s: string;
1806     begin
1807     GikoForm.TreeView.Selected := GikoForm.ClickNode;
1808     s := GikoForm.ClickNode.Text;
1809     Clipboard.AsText := s;
1810     end;
1811     ////////////////////////////////?スc?ス?ス?ス[?ス|?スb?スv?スA?スb?スv?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス/////////////////////
1812 h677 1.1 end.
1813 h677 1.2

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26