| 255 |
N23: TMenuItem; |
N23: TMenuItem; |
| 256 |
ListCoolBar: TGikoCoolBar; |
ListCoolBar: TGikoCoolBar; |
| 257 |
ListToolBar: TToolBar; |
ListToolBar: TToolBar; |
|
ViewNoButton: TToolButton; |
|
|
IconToolButton: TToolButton; |
|
|
UpFolderButton: TToolButton; |
|
|
Sepa01ToolButton: TToolButton; |
|
|
AllItemToolButton: TToolButton; |
|
|
LogItemToolButton: TToolButton; |
|
|
NewItemToolButton: TToolButton; |
|
|
ListDownloadToolButton: TToolButton; |
|
|
ListThreadDownloadToolButton: TToolButton; |
|
|
ToolButton2: TToolButton; |
|
|
ToolButton1: TToolButton; |
|
| 258 |
BrowserCoolBar: TGikoCoolBar; |
BrowserCoolBar: TGikoCoolBar; |
| 259 |
BrowserToolBar: TToolBar; |
BrowserToolBar: TToolBar; |
|
BrowserSizeButton: TToolButton; |
|
| 260 |
ToolButton3: TToolButton; |
ToolButton3: TToolButton; |
|
TopButton: TToolButton; |
|
|
LastBotton: TToolButton; |
|
|
NewButton: TToolButton; |
|
|
KokoButton: TToolButton; |
|
| 261 |
ToolButton9: TToolButton; |
ToolButton9: TToolButton; |
|
EditorButton: TToolButton; |
|
| 262 |
ToolButton11: TToolButton; |
ToolButton11: TToolButton; |
|
IEButton: TToolButton; |
|
| 263 |
ToolButton5: TToolButton; |
ToolButton5: TToolButton; |
|
ItemReloadButton: TToolButton; |
|
| 264 |
ListNameToolBar: TToolBar; |
ListNameToolBar: TToolBar; |
| 265 |
ListNameLabel: TLabel; |
ListNameLabel: TLabel; |
| 266 |
FolderImage: TImage; |
FolderImage: TImage; |
| 286 |
I1: TMenuItem; |
I1: TMenuItem; |
| 287 |
BrowserTabToolBar: TToolBar; |
BrowserTabToolBar: TToolBar; |
| 288 |
BrowserTab: TTabControl; |
BrowserTab: TTabControl; |
|
ToolButton7: TToolButton; |
|
| 289 |
BrowserMinAction: TAction; |
BrowserMinAction: TAction; |
| 290 |
About1: TMenuItem; |
About1: TMenuItem; |
| 291 |
N28: TMenuItem; |
N28: TMenuItem; |
| 325 |
MainCoolBar: TGikoCoolBar; |
MainCoolBar: TGikoCoolBar; |
| 326 |
MenuToolBar: TToolBar; |
MenuToolBar: TToolBar; |
| 327 |
StdToolBar: TToolBar; |
StdToolBar: TToolBar; |
|
RoundToolButton: TToolButton; |
|
|
ToolButton6: TToolButton; |
|
|
ToolButton4: TToolButton; |
|
|
ToolButton13: TToolButton; |
|
|
AbortToolButton: TToolButton; |
|
|
LoginToolButton: TToolButton; |
|
| 328 |
AddressToolBar: TToolBar; |
AddressToolBar: TToolBar; |
| 329 |
AddressComboBox: TComboBox; |
AddressComboBox: TComboBox; |
| 330 |
MoveToToolButton: TToolButton; |
MoveToToolButton: TToolButton; |
| 367 |
F2: TMenuItem; |
F2: TMenuItem; |
| 368 |
LinkToolBar: TToolBar; |
LinkToolBar: TToolBar; |
| 369 |
a10: TMenuItem; |
a10: TMenuItem; |
|
ToolButton8: TToolButton; |
|
|
ToolButton10: TToolButton; |
|
| 370 |
ThreadEditorAction: TAction; |
ThreadEditorAction: TAction; |
| 371 |
N39: TMenuItem; |
N39: TMenuItem; |
| 372 |
T6: TMenuItem; |
T6: TMenuItem; |
| 374 |
LinkBarPopupMenu: TPopupMenu; |
LinkBarPopupMenu: TPopupMenu; |
| 375 |
ToolBarSettingAction: TAction; |
ToolBarSettingAction: TAction; |
| 376 |
T7: TMenuItem; |
T7: TMenuItem; |
|
ToolButton12: TToolButton; |
|
|
ToolButton14: TToolButton; |
|
| 377 |
ThreadPopupMenu: TPopupMenu; |
ThreadPopupMenu: TPopupMenu; |
| 378 |
MenuItem4: TMenuItem; |
MenuItem4: TMenuItem; |
| 379 |
MenuItem5: TMenuItem; |
MenuItem5: TMenuItem; |
| 412 |
F4: TMenuItem; |
F4: TMenuItem; |
| 413 |
N48: TMenuItem; |
N48: TMenuItem; |
| 414 |
T14: TMenuItem; |
T14: TMenuItem; |
|
SelectItemToolButton: TToolButton; |
|
|
SelectResToolButton: TToolButton; |
|
| 415 |
SelectResAction: TAction; |
SelectResAction: TAction; |
| 416 |
ToolButton16: TToolButton; |
ToolButton16: TToolButton; |
| 417 |
AllResAction: TAction; |
AllResAction: TAction; |
| 469 |
FavoriteTreeViewLogDeleteAction: TAction; |
FavoriteTreeViewLogDeleteAction: TAction; |
| 470 |
ResRangeAction: TAction; |
ResRangeAction: TAction; |
| 471 |
ToolButton20: TToolButton; |
ToolButton20: TToolButton; |
|
ResRangeButton: TToolButton; |
|
| 472 |
N60: TMenuItem; |
N60: TMenuItem; |
| 473 |
ExportFavoriteFileAction1: TMenuItem; |
ExportFavoriteFileAction1: TMenuItem; |
| 474 |
ExportFavoriteFile: TFileSaveAs; |
ExportFavoriteFile: TFileSaveAs; |
|
ToolButton21: TToolButton; |
|
|
CabinetBBSToolButton: TToolButton; |
|
|
ToolButton23: TToolButton; |
|
|
ToolButton24: TToolButton; |
|
| 475 |
N6: TMenuItem; |
N6: TMenuItem; |
| 476 |
N17: TMenuItem; |
N17: TMenuItem; |
| 477 |
FavoriteTreeViewBrowseBoardAction: TAction; |
FavoriteTreeViewBrowseBoardAction: TAction; |
| 481 |
N20: TMenuItem; |
N20: TMenuItem; |
| 482 |
N24: TMenuItem; |
N24: TMenuItem; |
| 483 |
N62: TMenuItem; |
N62: TMenuItem; |
| 484 |
N61: TMenuItem; |
N61: TMenuItem; |
| 485 |
N63: TMenuItem; |
N63: TMenuItem; |
| 486 |
KoreCopy: TAction; |
KoreCopy: TAction; |
| 487 |
N64: TMenuItem; |
N64: TMenuItem; |
| 490 |
N65: TMenuItem; |
N65: TMenuItem; |
| 491 |
BBSSelectPopupMenu: TPopupMenu; |
BBSSelectPopupMenu: TPopupMenu; |
| 492 |
PlugInMenu: TMenuItem; |
PlugInMenu: TMenuItem; |
|
TmpToolBar: TToolBar; |
|
| 493 |
TreeSelectNameCopy: TAction; |
TreeSelectNameCopy: TAction; |
| 494 |
TreeSelectNamePupupMenu: TMenuItem; |
TreeSelectNamePupupMenu: TMenuItem; |
| 495 |
BrowserPanel: TPanel; |
BrowserPanel: TPanel; |
| 499 |
FileRun1: TFileRun; |
FileRun1: TFileRun; |
| 500 |
ThreadlistMaxAndFocusAction: TAction; |
ThreadlistMaxAndFocusAction: TAction; |
| 501 |
BrowserMaxAndFocusAction: TAction; |
BrowserMaxAndFocusAction: TAction; |
| 502 |
UpBoardButton: TToolButton; |
SelectTimer: TTimer; |
|
SelectTimer: TTimer; |
|
| 503 |
SelectThreadSave: TMenuItem; |
SelectThreadSave: TMenuItem; |
| 504 |
SelectItemSaveForHTML: TAction; |
SelectItemSaveForHTML: TAction; |
| 505 |
FileSaveAs1: TFileSaveAs; |
FileSaveAs1: TFileSaveAs; |
| 519 |
N501: TMenuItem; |
N501: TMenuItem; |
| 520 |
N22: TMenuItem; |
N22: TMenuItem; |
| 521 |
OnlyAHundredResAction: TAction; |
OnlyAHundredResAction: TAction; |
| 522 |
OnlyNewResAction: TAction; |
OnlyNewResAction: TAction; |
| 523 |
OnlyKokoResAction: TAction; |
OnlyKokoResAction: TAction; |
| 524 |
A14: TMenuItem; |
A14: TMenuItem; |
| 525 |
BrowsBoradHeadAction: TAction; |
BrowsBoradHeadAction: TAction; |
| 533 |
S6: TMenuItem; |
S6: TMenuItem; |
| 534 |
N69: TMenuItem; |
N69: TMenuItem; |
| 535 |
S7: TMenuItem; |
S7: TMenuItem; |
|
ThreadRangeButton: TToolButton; |
|
| 536 |
TabAutoSaveAction: TAction; |
TabAutoSaveAction: TAction; |
| 537 |
TabAutoLoadAction: TAction; |
TabAutoLoadAction: TAction; |
| 538 |
ListColumnPopupMenu: TPopupMenu; |
ListColumnPopupMenu: TPopupMenu; |
| 539 |
JumpToNumOfResAction: TAction; |
JumpToNumOfResAction: TAction; |
| 540 |
FavoriteTreeViewCollapseAction: TAction; |
FavoriteTreeViewCollapseAction: TAction; |
| 541 |
RightTabCloseAction: TAction; |
RightTabCloseAction: TAction; |
| 542 |
LeftTabCloseAction: TAction; |
LeftTabCloseAction: TAction; |
| 543 |
N70: TMenuItem; |
N70: TMenuItem; |
| 544 |
SameIDResAnchorAction: TAction; |
SameIDResAnchorAction: TAction; |
| 554 |
IndividualAbonID0Action: TAction; |
IndividualAbonID0Action: TAction; |
| 555 |
N71: TMenuItem; |
N71: TMenuItem; |
| 556 |
MuteAction: TAction; |
MuteAction: TAction; |
|
ToolButton22: TToolButton; |
|
| 557 |
N72: TMenuItem; |
N72: TMenuItem; |
| 558 |
N73: TMenuItem; |
N73: TMenuItem; |
| 559 |
SortActiveColumnAction: TAction; |
SortActiveColumnAction: TAction; |
| 560 |
SortNextColumnAction: TAction; |
SortNextColumnAction: TAction; |
| 561 |
SortPrevColumnAction: TAction; |
SortPrevColumnAction: TAction; |
| 562 |
BeLogInOutAction: TAction; |
BeLogInOutAction: TAction; |
| 563 |
procedure FormCreate(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
| 877 |
procedure TabsOpenActionExecute(Sender: TObject); |
procedure TabsOpenActionExecute(Sender: TObject); |
| 878 |
procedure OnlyAHundredResActionExecute(Sender: TObject); |
procedure OnlyAHundredResActionExecute(Sender: TObject); |
| 879 |
procedure OnlyKokoResActionExecute(Sender: TObject); |
procedure OnlyKokoResActionExecute(Sender: TObject); |
| 880 |
procedure OnlyNewResActionExecute(Sender: TObject); |
procedure OnlyNewResActionExecute(Sender: TObject); |
| 881 |
procedure BrowsBoradHeadActionExecute(Sender: TObject); |
procedure BrowsBoradHeadActionExecute(Sender: TObject); |
| 882 |
procedure BrowsBoradHeadActionUpdate(Sender: TObject); |
procedure BrowsBoradHeadActionUpdate(Sender: TObject); |
| 883 |
procedure EditNGActionExecute(Sender: TObject); |
procedure EditNGActionExecute(Sender: TObject); |
| 917 |
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; |
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; |
| 918 |
Stage: TCustomDrawStage; var DefaultDraw: Boolean); |
Stage: TCustomDrawStage; var DefaultDraw: Boolean); |
| 919 |
procedure BeLogInOutActionExecute(Sender: TObject); |
procedure BeLogInOutActionExecute(Sender: TObject); |
| 920 |
procedure BeLogInOutActionUpdate(Sender: TObject); |
procedure BeLogInOutActionUpdate(Sender: TObject); |
| 921 |
private |
private |
| 922 |
{ Private 宣言 } |
{ Private 宣言 } |
| 923 |
//RoundList : TRoundList; |
//RoundList : TRoundList; |
| 1214 |
|
|
| 1215 |
uses |
uses |
| 1216 |
About, Option, Round, Splash, Sort, ListSelect, Imm, |
About, Option, Round, Splash, Sort, ListSelect, Imm, |
| 1217 |
NewBoard, MojuUtils, Clipbrd, GikoBayesian; |
NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter; |
| 1218 |
|
|
| 1219 |
const |
const |
| 1220 |
CAPTION_NAME: string = 'ギコナビ'; |
CAPTION_NAME: string = 'ギコナビ'; |
| 1303 |
Writeln(' 終了時は、ギコナビウィンドウを閉じてください'); |
Writeln(' 終了時は、ギコナビウィンドウを閉じてください'); |
| 1304 |
Writeln('============================================================'); |
Writeln('============================================================'); |
| 1305 |
{$ENDIF} |
{$ENDIF} |
| 1306 |
|
FTreeType := gttNone; |
| 1307 |
|
// 起動時に保存されてしまう対策 |
| 1308 |
FStartUp := true; |
FStartUp := true; |
| 1309 |
// LockWindowUpdate(Self.Handle); |
// LockWindowUpdate(Self.Handle); |
| 1310 |
Application.OnDeactivate := AppFormDeactivate; |
Application.OnDeactivate := AppFormDeactivate; |
| 1311 |
//Self.OnDeactivate := AppFormDeactivate; |
//Self.OnDeactivate := AppFormDeactivate; |
| 1312 |
Application.HookMainWindow(Hook); |
Application.HookMainWindow(Hook); |
| 1313 |
// Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ |
// Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ |
| 1314 |
FTreeType := gttNone; |
FIsIgnoreResize := rtResizing; |
| 1315 |
|
|
| 1316 |
FSearchDialog := nil; |
FSearchDialog := nil; |
| 1317 |
BrowserNullTab := TBrowserRecord.Create; |
BrowserNullTab := TBrowserRecord.Create; |
| 1319 |
BrowserNullTab.Browser.Navigate(BLANK_HTML); |
BrowserNullTab.Browser.Navigate(BLANK_HTML); |
| 1320 |
FBrowsers := TList.Create; |
FBrowsers := TList.Create; |
| 1321 |
for i := 0 to BROWSER_COUNT -1 do begin |
for i := 0 to BROWSER_COUNT -1 do begin |
| 1322 |
FBrowsers.Add(TWebBrowser.Create(nil)); |
FBrowsers.Add(TWebBrowser.Create(BrowserPanel)); |
| 1323 |
newBrowser := FBrowsers[FBrowsers.Count - 1]; |
newBrowser := FBrowsers[FBrowsers.Count - 1]; |
| 1324 |
TOleControl(newBrowser).Parent := BrowserPanel; |
TOleControl(newBrowser).Parent := BrowserPanel; |
| 1325 |
TOleControl(newBrowser).Align := alNone; |
TOleControl(newBrowser).Align := alNone; |
| 1326 |
TOleControl(newBrowser).Left := 0; |
TOleControl(newBrowser).Left := 0; |
| 1327 |
TOleControl(newBrowser).Top := 0; |
TOleControl(newBrowser).Top := 0; |
|
//newBrowser.StatusBar := false; |
|
|
//newBrowser.MenuBar := false; |
|
|
//newBrowser.AddressBar := false; |
|
| 1328 |
newBrowser.OnDocumentComplete := BrowserDocumentComplete; |
newBrowser.OnDocumentComplete := BrowserDocumentComplete; |
| 1329 |
newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
| 1330 |
newBrowser.OnEnter := BrowserEnter; |
newBrowser.OnEnter := BrowserEnter; |
| 1332 |
newBrowser.OnStatusTextChange := BrowserStatusTextChange; |
newBrowser.OnStatusTextChange := BrowserStatusTextChange; |
| 1333 |
newBrowser.Navigate(BLANK_HTML); |
newBrowser.Navigate(BLANK_HTML); |
| 1334 |
ShowWindow(newBrowser.Handle, SW_HIDE); |
ShowWindow(newBrowser.Handle, SW_HIDE); |
|
|
|
| 1335 |
end; |
end; |
| 1336 |
BrowserNullTab.Browser.BringToFront; |
BrowserNullTab.Browser.BringToFront; |
| 1337 |
ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW); |
ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW); |
| 1338 |
|
|
| 1339 |
// 起動時に保存されてしまう対策 |
|
| 1340 |
FIsIgnoreResize := rtResizing; |
//メニューフォント |
| 1341 |
|
SetMenuFont; |
| 1342 |
|
|
| 1343 |
//手のカーソル |
//手のカーソル |
| 1344 |
Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND'); |
Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND'); |
| 1345 |
|
|
|
|
|
| 1346 |
//アドレス履歴読み込み |
//アドレス履歴読み込み |
| 1347 |
AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount); |
AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount); |
| 1348 |
|
|
| 1349 |
EnabledCloseButton := True; |
EnabledCloseButton := True; |
| 1350 |
|
|
| 1351 |
//リストスタイル |
//リストスタイル |
| 1352 |
ListView.ViewStyle := GikoSys.Setting.ListStyle; |
ListView.ViewStyle := GikoSys.Setting.ListStyle; |
| 1353 |
|
|
|
//メインクールバー位置 |
|
|
// MainCoolBar.Top := 0; |
|
|
// MainCoolBar.Left := 0; |
|
|
|
|
| 1354 |
//アニメパネル位置 |
//アニメパネル位置 |
| 1355 |
AnimePanel.Top := 0; |
AnimePanel.Top := 0; |
| 1356 |
AnimePanel.Left := 0; |
AnimePanel.Left := 0; |
| 1378 |
TreeView.Font.Size := GikoSys.Setting.CabinetFontSize; |
TreeView.Font.Size := GikoSys.Setting.CabinetFontSize; |
| 1379 |
TreeView.Font.Color := GikoSys.Setting.CabinetFontColor; |
TreeView.Font.Color := GikoSys.Setting.CabinetFontColor; |
| 1380 |
TreeView.Color := GikoSys.Setting.CabinetBackColor; |
TreeView.Color := GikoSys.Setting.CabinetBackColor; |
|
{TreeView.Font.Style := []; |
|
|
if GikoSys.Setting.CabinetFontBold then |
|
|
TreeView.Font.Style := [fsBold]; |
|
|
if GikoSys.Setting.CabinetFontItalic then |
|
|
TreeView.Font.Style := TreeView.Font.Style + [fsItalic]; |
|
|
} |
|
|
//FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName; |
|
|
//FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize; |
|
|
//FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor; |
|
| 1381 |
FavoriteTreeView.Font.Assign(TreeView.Font); |
FavoriteTreeView.Font.Assign(TreeView.Font); |
| 1382 |
FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor; |
FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor; |
| 1383 |
|
|
| 1413 |
BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic]; |
BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic]; |
| 1414 |
FDragWFirst := false; |
FDragWFirst := false; |
| 1415 |
SetContent(BrowserNullTab); //ブラウザを空白表示 |
SetContent(BrowserNullTab); //ブラウザを空白表示 |
|
// TreeView.TopItem.Expanded := True; //ツリートップ項目だけを開く |
|
|
// TreeView.Selected := TreeView.Items[0]; //ツリーのトップ項目を選択する |
|
| 1416 |
|
|
| 1417 |
|
//プログレスバーの初期化 |
| 1418 |
|
ProgressBar.Parent := StatusBar; |
| 1419 |
|
ProgressBar.Top := 2; |
| 1420 |
|
ProgressBar.Left := 0; |
| 1421 |
|
ProgressBar.Width := StatusBar.Panels[0].Width; |
| 1422 |
|
ProgressBar.Height := StatusBar.Height - 2; |
| 1423 |
|
ProgressBar.Position := 0; |
| 1424 |
|
|
| 1425 |
|
// 外部板プラグインをロード(ReadBoardFile, LoadHistory より先に行うこと) |
| 1426 |
|
InitializeBoardPlugIns; |
| 1427 |
|
|
| 1428 |
|
// ボードファイル列挙(ReadFavorite より先に行うこと) |
| 1429 |
|
GikoSys.ListBoardFile; |
| 1430 |
|
|
| 1431 |
|
// スプラッシュウィンドウのプログレスバーの設定 |
| 1432 |
|
SplashWindow.ProgressBar.Max := Length(BBSs) * 20; |
| 1433 |
|
|
| 1434 |
|
// すべてのBBSを読み込んでおく |
| 1435 |
|
for i := Length(BBSs) - 1 downto 0 do begin |
| 1436 |
|
if not BBSs[i].IsBoardFileRead then |
| 1437 |
|
GikoSys.ReadBoardFile(BBSs[i]); |
| 1438 |
|
|
| 1439 |
|
if SplashWindow <> nil then begin |
| 1440 |
|
SplashWindow.ProgressBar.StepBy(20); |
| 1441 |
|
SplashWindow.Update; |
| 1442 |
|
end; |
| 1443 |
|
end; |
| 1444 |
|
//巡回データ読み込み |
| 1445 |
|
RoundList := TRoundList.Create; |
| 1446 |
|
RoundList.LoadRoundBoardFile; |
| 1447 |
|
RoundList.LoadRoundThreadFile; |
| 1448 |
|
|
| 1449 |
|
//TreeViewの邪魔臭いToolTipを非表示 |
| 1450 |
|
Style := GetWindowLong(TreeView.Handle, GWL_STYLE); |
| 1451 |
|
Style := Style or TVS_NOTOOLTIPS; |
| 1452 |
|
SetWindowLong(TreeView.Handle, GWL_STYLE, Style); |
| 1453 |
|
|
| 1454 |
|
// ツリーをメインだけ表示にして最大化 |
| 1455 |
|
TreeView.Align := alClient; |
| 1456 |
|
FavoriteTreeView.Align := alClient; |
| 1457 |
|
FavoriteTreeView.Visible := False; |
| 1458 |
|
|
| 1459 |
|
// メニューに追加 |
| 1460 |
|
SetBBSMenu; |
| 1461 |
|
|
| 1462 |
//最大化・ウィンドウ位置復元 |
//最大化・ウィンドウ位置復元 |
| 1463 |
wp.length := sizeof(wp); |
wp.length := sizeof(wp); |
| 1467 |
wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth; |
wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth; |
| 1468 |
wp.showCmd := SW_HIDE; |
wp.showCmd := SW_HIDE; |
| 1469 |
SetWindowPlacement(Handle, @wp); |
SetWindowPlacement(Handle, @wp); |
| 1470 |
|
//Self.Update; |
| 1471 |
|
|
|
// SetBounds(GikoSys.Setting.WindowLeft, GikoSys.Setting.WindowTop, |
|
|
// GikoSys.Setting.WindowWidth, GikoSys.Setting.WindowHeight); |
|
| 1472 |
if GikoSys.Setting.WindowMax then |
if GikoSys.Setting.WindowMax then |
| 1473 |
WindowState := wsMaximized; |
WindowState := wsMaximized; |
| 1474 |
|
|
| 1475 |
//ギコアニメ |
//ギコアニメ |
| 1476 |
try |
try |
| 1488 |
AllItemAction.Checked := True; |
AllItemAction.Checked := True; |
| 1489 |
AllResAction.Checked := True; |
AllResAction.Checked := True; |
| 1490 |
|
|
|
//TreeViewの邪魔臭いToolTipを非表示 |
|
|
Style := GetWindowLong(TreeView.Handle, GWL_STYLE); |
|
|
Style := Style or TVS_NOTOOLTIPS; |
|
|
SetWindowLong(TreeView.Handle, GWL_STYLE, Style); |
|
|
|
|
|
// ツリーをメインだけ表示にして最大化 |
|
|
TreeView.Align := alClient; |
|
|
FavoriteTreeView.Align := alClient; |
|
|
FavoriteTreeView.Visible := False; |
|
|
|
|
| 1491 |
//ブラウザサイズ変更の初期化 |
//ブラウザサイズ変更の初期化 |
|
// FBrowserSizeFlag := False; |
|
|
// FBrowserSizeHeight := ViewPanel.Height; |
|
|
|
|
| 1492 |
FBrowserSizeHeight := GikoSys.Setting.ListHeight; |
FBrowserSizeHeight := GikoSys.Setting.ListHeight; |
| 1493 |
FBrowserSizeWidth := GikoSys.Setting.ListWidth; |
FBrowserSizeWidth := GikoSys.Setting.ListWidth; |
| 1494 |
|
|
|
// 外部板プラグインをロード(ReadBoardFile, LoadHistory より先に行うこと) |
|
|
InitializeBoardPlugIns; |
|
|
|
|
|
//巡回データ読み込み |
|
|
RoundList := TRoundList.Create; |
|
|
RoundList.LoadRoundBoardFile; |
|
|
|
|
|
// ボードファイル列挙(ReadFavorite より先に行うこと) |
|
|
GikoSys.ListBoardFile; |
|
|
|
|
|
RoundList.LoadRoundThreadFile; |
|
|
|
|
|
if RoundList.OldFileRead or ( RoundList.Count[grtItem] > 0 ) then |
|
|
GikoSys.ListBoardFile; |
|
|
|
|
|
// メニューに追加 |
|
|
SetBBSMenu; |
|
| 1495 |
|
|
| 1496 |
// ヒストリリスト(LoadHistory よりも先に行うこと) |
// ヒストリリスト(LoadHistory よりも先に行うこと) |
| 1497 |
FHistoryList := TList.Create; |
FHistoryList := TList.Create; |
| 1500 |
LoadHistory; |
LoadHistory; |
| 1501 |
|
|
| 1502 |
//お気に入り読み込み |
//お気に入り読み込み |
|
// FFavorite := TFavorite.Create(FavoriteTreeView); |
|
| 1503 |
FavoriteDM.SetFavTreeView(FavoriteTreeView); |
FavoriteDM.SetFavTreeView(FavoriteTreeView); |
| 1504 |
FavoriteDM.ReadFavorite; |
FavoriteDM.ReadFavorite; |
| 1505 |
|
|
| 1544 |
end; |
end; |
| 1545 |
end; |
end; |
| 1546 |
|
|
|
//プログレスバーの初期化 |
|
|
// ProgressBar.Visible := False; |
|
|
ProgressBar.Parent := StatusBar; |
|
|
ProgressBar.Top := 2; |
|
|
ProgressBar.Left := 0; |
|
|
ProgressBar.Width := StatusBar.Panels[0].Width; |
|
|
ProgressBar.Height := StatusBar.Height - 2; |
|
|
ProgressBar.Position := 0; |
|
|
|
|
| 1547 |
//ダウンロードオブジェクト |
//ダウンロードオブジェクト |
| 1548 |
FControlThread := TThreadControl.Create(True); |
FControlThread := TThreadControl.Create(True); |
| 1549 |
FControlThread.MaxThreadCount := 1; |
FControlThread.MaxThreadCount := 1; |
| 1567 |
|
|
| 1568 |
FTabHintIndex := -1; |
FTabHintIndex := -1; |
| 1569 |
|
|
|
//リンクバー |
|
|
SetLinkBar; |
|
|
|
|
|
//メニューフォント |
|
|
SetMenuFont; |
|
|
|
|
| 1570 |
//ツールバーWrapable |
//ツールバーWrapable |
| 1571 |
ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable; |
ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable; |
| 1572 |
BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable; |
BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable; |
| 1573 |
|
|
|
KeepDefaultToolButton(StdToolBar, TmpToolBar); |
|
|
KeepDefaultToolButton(ListToolBar, TmpToolBar); |
|
|
KeepDefaultToolButton(BrowserToolBar, TmpToolBar); |
|
|
|
|
| 1574 |
MakeDefaultINIFile(); |
MakeDefaultINIFile(); |
| 1575 |
//ツールボタン読み込み |
//ツールボタン読み込み |
| 1576 |
ReadToolBarSetting(ActionList, StdToolBar); |
ReadToolBarSetting(ActionList, StdToolBar); |
| 1586 |
if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then |
if TToolButton( ListToolBar.Controls[ i + 1 ] ).Style = tbsSeparator then |
| 1587 |
ListToolBar.Controls[ i + 1 ].Visible := False; |
ListToolBar.Controls[ i + 1 ].Visible := False; |
| 1588 |
|
|
| 1589 |
|
|
| 1590 |
// スレッド絞込ボタンを隠す |
// スレッド絞込ボタンを隠す |
| 1591 |
ListToolBar.Controls[ i ].Visible := False; |
ListToolBar.Controls[ i ].Visible := False; |
| 1592 |
// スレッド絞込フィールドを挿入 |
// スレッド絞込フィールドを挿入 |
| 1593 |
|
|
| 1594 |
SelectComboBox.Parent := ListToolBar; |
SelectComboBox.Parent := ListToolBar; |
| 1595 |
SelectComboBox.Left := ListToolBar.Controls[ i ].Left; |
SelectComboBox.Left := ListToolBar.Controls[ i ].Left; |
| 1596 |
SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth; |
SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth; |
| 1597 |
|
SelectComboBox.Visible := True; |
| 1598 |
// スレッド絞込用独自セパレータを挿入 |
// スレッド絞込用独自セパレータを挿入 |
| 1599 |
SelectComboBoxSplitter.Parent := ListToolBar; |
SelectComboBoxSplitter.Parent := ListToolBar; |
| 1600 |
SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width; |
SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width; |
| 1601 |
|
SelectComboBoxSplitter.Visible := True; |
| 1602 |
break; |
break; |
| 1603 |
end; |
end; |
| 1604 |
end; |
end; |
| 1607 |
ReadToolBarSetting(ActionList, BrowserToolBar); |
ReadToolBarSetting(ActionList, BrowserToolBar); |
| 1608 |
SetToolBarPopup; |
SetToolBarPopup; |
| 1609 |
|
|
| 1610 |
|
//アドレスバー |
| 1611 |
|
AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop; |
| 1612 |
|
|
| 1613 |
|
//リンクバー |
| 1614 |
|
SetLinkBar; |
| 1615 |
|
|
| 1616 |
// レス表示範囲 |
// レス表示範囲 |
| 1617 |
FResRangeMenuSelect := GikoSys.ResRange; |
FResRangeMenuSelect := GikoSys.ResRange; |
| 1618 |
case GikoSys.ResRange of |
case GikoSys.ResRange of |
| 1654 |
end; |
end; |
| 1655 |
end; |
end; |
| 1656 |
|
|
|
//アドレスバー |
|
|
AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop; |
|
| 1657 |
|
|
| 1658 |
//クールバー復元はFormShowに移動した |
//クールバー復元はFormShowに移動した |
| 1659 |
|
|
| 1695 |
PostMessage( Handle, USER_TREECLICK, 0, 0 ); |
PostMessage( Handle, USER_TREECLICK, 0, 0 ); |
| 1696 |
end; |
end; |
| 1697 |
|
|
|
// 起動時に保存されてしまう対策 3 |
|
|
FIsIgnoreResize := rtResizing; |
|
|
|
|
| 1698 |
|
|
| 1699 |
//引数があったらスレを開く(未取得ならダウンロード) |
//引数があったらスレを開く(未取得ならダウンロード) |
| 1700 |
for i := 1 to ParamCount do begin |
for i := 1 to ParamCount do begin |
| 1701 |
MoveToURL(ParamStr(i)); |
MoveToURL(ParamStr(i)); |
| 1702 |
end; |
end; |
|
// SetStdToolBar; |
|
|
// SetLinkBar; |
|
| 1703 |
|
|
| 1704 |
s := GikoSys.FAbon.NGwordname; |
s := GikoSys.FAbon.NGwordname; |
| 1705 |
StatusBar.Panels[2].Text := s; |
StatusBar.Panels[2].Text := s; |
| 1728 |
if GikoSys.Setting.GestureEnabled then |
if GikoSys.Setting.GestureEnabled then |
| 1729 |
MouseGesture.SetHook( Handle ); |
MouseGesture.SetHook( Handle ); |
| 1730 |
|
|
|
//2ch言語読み出し |
|
|
GikoSys.Setting.SetMessages; |
|
|
{ |
|
| 1731 |
//2ch言語読み出し |
//2ch言語読み出し |
| 1732 |
if GikoSys.Setting.GengoSupport then begin |
GikoSys.Setting.SetMessages; |
| 1733 |
if GikoSys.Setting.Gengo = nil then |
|
|
GikoSys.Setting.Gengo := TStringList.Create; |
|
|
if FileExists(GikoSys.GetConfigDir + 'language.ini') then |
|
|
GikoSys.Setting.Gengo.LoadFromFile(GikoSys.GetConfigDir + 'language.ini') |
|
|
else |
|
|
GikoSys.Setting.GengoSupport := false; |
|
|
end; |
|
|
} |
|
| 1734 |
//オートログイン |
//オートログイン |
| 1735 |
if GikoSys.Setting.AutoLogin then |
if GikoSys.Setting.AutoLogin then |
| 1736 |
LoginAction.Execute; |
LoginAction.Execute; |
| 2060 |
//アドレス履歴保存 |
//アドレス履歴保存 |
| 2061 |
try |
try |
| 2062 |
//AddressHistoryDMは自動生成フォームなので、解放は自動的にされる。 |
//AddressHistoryDMは自動生成フォームなので、解放は自動的にされる。 |
| 2063 |
AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount); |
AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount); |
| 2064 |
except |
except |
| 2065 |
end; |
end; |
| 2066 |
|
|
| 2105 |
// TBBS は保持している TCategory, TBoard, TThreadItem すべてを開放する |
// TBBS は保持している TCategory, TBoard, TThreadItem すべてを開放する |
| 2106 |
// TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので |
// TBoard, TThreadItem のデストラクタはプラグインに破棄を伝えるので |
| 2107 |
// BoardPluteIns の開放より先に行うこと |
// BoardPluteIns の開放より先に行うこと |
| 2108 |
|
for i := Length(BoardGroups) - 1 downto 0 do begin |
| 2109 |
|
BoardGroups[i].Clear; |
| 2110 |
|
end; |
| 2111 |
|
|
| 2112 |
try |
try |
| 2113 |
for i := Length( BBSs ) - 1 downto 0 do begin |
for i := Length( BBSs ) - 1 downto 0 do begin |
| 2114 |
if BBSs[ i ] <> nil then |
if BBSs[ i ] <> nil then |
| 2118 |
except |
except |
| 2119 |
end; |
end; |
| 2120 |
|
|
| 2121 |
|
|
| 2122 |
try |
try |
| 2123 |
for i := Length( BoardPlugIns ) - 1 downto 0 do begin |
for i := Length( BoardPlugIns ) - 1 downto 0 do begin |
| 2124 |
if BoardPlugIns[ i ] <> nil then |
if BoardPlugIns[ i ] <> nil then |
| 2226 |
ActiveList := nil; |
ActiveList := nil; |
| 2227 |
|
|
| 2228 |
FTreeType := gttNone; |
FTreeType := gttNone; |
| 2229 |
GikoSys.FBoardURLList.Clear; |
//GikoSys.FBoardURLList.Clear; |
| 2230 |
|
for i := Length(BoardGroups) - 1 downto 0 do begin |
| 2231 |
|
BoardGroups[i].Clear; |
| 2232 |
|
end; |
| 2233 |
GikoSys.ListBoardFile; //ボードファイル読込 |
GikoSys.ListBoardFile; //ボードファイル読込 |
| 2234 |
|
|
| 2235 |
// BBS メニューの更新 |
// BBS メニューの更新 |
| 2249 |
|
|
| 2250 |
SetLinkBar; |
SetLinkBar; |
| 2251 |
|
|
| 2252 |
|
// すべてのBBSを読み込んでおく |
| 2253 |
|
for i := Length(BBSs) - 1 downto 0 do begin |
| 2254 |
|
if not BBSs[i].IsBoardFileRead then |
| 2255 |
|
GikoSys.ReadBoardFile(BBSs[i]); |
| 2256 |
|
end; |
| 2257 |
|
|
| 2258 |
|
//巡回リスト保存&破棄 |
| 2259 |
|
try |
| 2260 |
|
RoundList.SaveRoundFile; |
| 2261 |
|
except |
| 2262 |
|
end; |
| 2263 |
|
try |
| 2264 |
|
RoundList.Clear; |
| 2265 |
|
except |
| 2266 |
|
end; |
| 2267 |
|
RoundList.LoadRoundBoardFile; |
| 2268 |
|
RoundList.LoadRoundThreadFile; |
| 2269 |
|
|
| 2270 |
// |
// |
| 2271 |
TabsOpenAction.Execute; |
TabsOpenAction.Execute; |
| 2272 |
end; |
end; |
| 2291 |
if not inBBS.IsBoardFileRead then |
if not inBBS.IsBoardFileRead then |
| 2292 |
GikoSys.ReadBoardFile( inBBS ); |
GikoSys.ReadBoardFile( inBBS ); |
| 2293 |
try |
try |
| 2294 |
if SplashWindow <> nil then |
//if SplashWindow <> nil then |
| 2295 |
SplashWindow.ProgressBar.Max := inBBS.Count; |
//SplashWindow.ProgressBar.Max := inBBS.Count; |
| 2296 |
|
// SplashWindow.ProgressBar.Max := inBBS.Count + Length(BBSs) * 20; |
| 2297 |
except |
except |
| 2298 |
end; |
end; |
| 2299 |
|
|
| 2350 |
|
|
| 2351 |
CategoryNode.Expanded := Category.NodeExpand; |
CategoryNode.Expanded := Category.NodeExpand; |
| 2352 |
|
|
| 2353 |
if SplashWindow <> nil then begin |
//if SplashWindow <> nil then begin |
| 2354 |
SplashWindow.ProgressBar.StepIt; |
// SplashWindow.ProgressBar.StepIt; |
| 2355 |
Application.ProcessMessages; |
//Application.ProcessMessages; |
| 2356 |
end; |
// SplashWindow.Update; |
| 2357 |
|
//end; |
| 2358 |
end; |
end; |
| 2359 |
finally |
finally |
| 2360 |
TreeView.Items.EndUpdate; |
TreeView.Items.EndUpdate; |
| 2463 |
ListView.Items.Clear; |
ListView.Items.Clear; |
| 2464 |
ListView.Items.Count := Category.Count; |
ListView.Items.Count := Category.Count; |
| 2465 |
|
|
| 2466 |
|
for i := Category.Count - 1 downto 0 do begin |
| 2467 |
|
if( Category.Items[i].ParentCategory <> Category ) then begin |
| 2468 |
|
Category.Items[i].ParentCategory := Category; |
| 2469 |
|
Category.Items[i].No := i + 1; |
| 2470 |
|
end; |
| 2471 |
|
end; |
| 2472 |
// UpFolderAction.Enabled := True; |
// UpFolderAction.Enabled := True; |
| 2473 |
// AllItemAction.Enabled := False; |
// AllItemAction.Enabled := False; |
| 2474 |
// LogItemAction.Enabled := False; |
// LogItemAction.Enabled := False; |
| 2541 |
ListView.Items.Count := 0; |
ListView.Items.Count := 0; |
| 2542 |
ListView.Items.Clear; |
ListView.Items.Clear; |
| 2543 |
|
|
| 2544 |
case GikoForm.ViewType of |
{case GikoForm.ViewType of |
| 2545 |
gvtAll: ListView.Items.Count := Board.Count; |
gvtAll: ListView.Items.Count := Board.Count; |
| 2546 |
gvtLog: ListView.Items.Count := Board.GetLogThreadCount; |
gvtLog: ListView.Items.Count := Board.GetLogThreadCount; |
| 2547 |
gvtNew: ListView.Items.Count := Board.GetNewThreadCount; |
gvtNew: ListView.Items.Count := Board.GetNewThreadCount; |
| 2548 |
gvtUser: ListView.Items.Count := Board.GetUserThreadCount; |
gvtUser: ListView.Items.Count := Board.GetUserThreadCount; |
| 2549 |
end; |
end; |
| 2550 |
|
} |
| 2551 |
|
case GikoForm.ViewType of |
| 2552 |
|
gvtAll: ListView.Items.Count := Board.Count; |
| 2553 |
|
gvtLog: |
| 2554 |
|
begin |
| 2555 |
|
Board.LogThreadCount := Board.GetLogThreadCount; |
| 2556 |
|
ListView.Items.Count := Board.LogThreadCount; |
| 2557 |
|
end; |
| 2558 |
|
gvtNew: |
| 2559 |
|
begin |
| 2560 |
|
Board.NewThreadCount := Board.GetNewThreadCount; |
| 2561 |
|
ListView.Items.Count := Board.NewThreadCount; |
| 2562 |
|
end; |
| 2563 |
|
gvtUser: |
| 2564 |
|
begin |
| 2565 |
|
Board.UserThreadCount:= Board.GetUserThreadCount; |
| 2566 |
|
ListView.Items.Count := Board.UserThreadCount; |
| 2567 |
|
end; |
| 2568 |
|
end; |
| 2569 |
|
|
| 2570 |
ListNameLabel.Caption := Board.Title; |
ListNameLabel.Caption := Board.Title; |
| 2571 |
FolderImage.Picture := nil; |
FolderImage.Picture := nil; |
| 2649 |
|
|
| 2650 |
if ListNumberVisibleAction.Checked then |
if ListNumberVisibleAction.Checked then |
| 2651 |
Item.Caption := IntToStr(Board.No) + ': ' + Board.Title |
Item.Caption := IntToStr(Board.No) + ': ' + Board.Title |
| 2652 |
|
//Item.Caption := IntToStr(Item.Index + 1) + ': ' + Board.Title |
| 2653 |
else |
else |
| 2654 |
Item.Caption := Board.Title; |
Item.Caption := Board.Title; |
| 2655 |
|
|
| 2698 |
else |
else |
| 2699 |
ListView.StateImages := nil; |
ListView.StateImages := nil; |
| 2700 |
|
|
| 2701 |
|
|
| 2702 |
|
case GikoForm.ViewType of |
| 2703 |
|
gvtAll: BoardCnt := Board.Count; |
| 2704 |
|
gvtLog: BoardCnt := Board.LogThreadCount; |
| 2705 |
|
gvtNew: BoardCnt := Board.NewThreadCount; |
| 2706 |
|
gvtUser: BoardCnt := Board.UserThreadCount; |
| 2707 |
|
else |
| 2708 |
|
BoardCnt := 0; |
| 2709 |
|
end; |
| 2710 |
|
{ |
| 2711 |
case GikoForm.ViewType of |
case GikoForm.ViewType of |
| 2712 |
gvtAll: BoardCnt := Board.Count; |
gvtAll: BoardCnt := Board.Count; |
| 2713 |
gvtLog: BoardCnt := Board.GetLogThreadCount; |
gvtLog: BoardCnt := Board.GetLogThreadCount; |
| 2716 |
else |
else |
| 2717 |
BoardCnt := 0; |
BoardCnt := 0; |
| 2718 |
end; |
end; |
| 2719 |
|
} |
| 2720 |
// if Board = nil then Exit; |
// if Board = nil then Exit; |
| 2721 |
if (BoardCnt <= 0) or (Item = nil) or (Item.Index > BoardCnt) |
if (BoardCnt <= 0) or (Item = nil) or (Item.Index > BoardCnt) |
| 2722 |
or (ListView.Items.Count = 0) or (not (Board.Items[Item.Index] is TThreadItem)) then Exit; |
or (ListView.Items.Count = 0) or (not (Board.Items[Item.Index] is TThreadItem)) then Exit; |
|
//if Item = nil then Exit; |
|
|
//if Item.Index > BoardCnt then Exit; |
|
|
//if ListView.Items.Count = 0 then Exit; |
|
|
|
|
|
// if not (Board.Items[Item.Index] is TThreadItem) then Exit; |
|
| 2723 |
|
|
| 2724 |
|
//改善すべきブロック///////////////////////////////////////////////////// |
| 2725 |
ThreadItem := nil; |
ThreadItem := nil; |
| 2726 |
case GikoForm.ViewType of |
case GikoForm.ViewType of |
| 2727 |
gvtAll: if Item.Index >= Board.Count then Exit else |
gvtAll: if Item.Index >= Board.Count then Exit else |
| 2728 |
ThreadItem := TThreadItem(Board.Items[Item.Index]); |
ThreadItem := TThreadItem(Board.Items[Item.Index]); |
| 2729 |
gvtLog: ThreadItem := Board.GetLogThread(Item.Index); |
gvtLog: ThreadItem := Board.GetLogThread(Item.Index); |
| 2730 |
gvtNew: ThreadItem := Board.GetNewThread(Item.Index); |
gvtNew: ThreadItem := Board.GetNewThread(Item.Index); |
| 2731 |
gvtUser: ThreadItem := Board.GetUserThread(Item.Index); |
gvtUser: ThreadItem := Board.GetUserThread(Item.Index); |
| 2732 |
end; |
end; |
| 2733 |
|
////////////////////////////////////////////////////////////////////////// |
| 2734 |
|
|
| 2735 |
if ThreadItem = nil then Exit; |
if ThreadItem = nil then Exit; |
| 2736 |
|
|
|
// if ListNumberVisibleAction.Checked then |
|
|
// RepStr := IntToStr(ThreadItem.No) + ': ' + ThreadItem.Title |
|
|
// else |
|
|
//RepStr := ThreadItem.Title; |
|
| 2737 |
RepStr := CustomStringReplace(ThreadItem.Title, '<', '<' ); |
RepStr := CustomStringReplace(ThreadItem.Title, '<', '<' ); |
| 2738 |
RepStr := CustomStringReplace(RepStr, '>', '>' ); |
RepStr := CustomStringReplace(RepStr, '>', '>' ); |
| 2739 |
RepStr := CustomStringReplace(RepStr, '"', '"' ); |
RepStr := CustomStringReplace(RepStr, '"', '"' ); |
| 2740 |
RepStr := CustomStringReplace(RepStr, '&', '&' ); |
RepStr := CustomStringReplace(RepStr, '&', '&' ); |
| 2741 |
//RepStr := StringReplace(RepStr, '@`', ',', [rfReplaceAll]); |
//RepStr := StringReplace(RepStr, '@`', ',', [rfReplaceAll]); |
|
|
|
| 2742 |
if Item.SubItems.Count <> ListView.Columns.Count then begin |
if Item.SubItems.Count <> ListView.Columns.Count then begin |
| 2743 |
Item.SubItems.Clear; |
Item.SubItems.Clear; |
| 2744 |
Item.SubItems.Capacity := GikoSys.Setting.BoardColumnOrder.Count; |
Item.SubItems.Capacity := GikoSys.Setting.BoardColumnOrder.Count; |
| 2815 |
end; |
end; |
| 2816 |
Inc( idx ); |
Inc( idx ); |
| 2817 |
end; |
end; |
| 2818 |
|
|
| 2819 |
if ThreadItem.NewArrival then |
if ThreadItem.NewArrival then |
| 2820 |
Item.ImageIndex := ITEM_ICON_THREADNEW1 |
Item.ImageIndex := ITEM_ICON_THREADNEW1 |
| 2821 |
else |
else |
| 2856 |
else |
else |
| 2857 |
Item.ImageIndex := ITEM_ICON_THREAD1; |
Item.ImageIndex := ITEM_ICON_THREAD1; |
| 2858 |
end; |
end; |
| 2859 |
|
|
| 2860 |
Item.Data := ThreadItem; |
Item.Data := ThreadItem; |
| 2861 |
|
|
| 2862 |
end; |
end; |
| 2983 |
end; |
end; |
| 2984 |
end else begin |
end else begin |
| 2985 |
threadItem := GetActiveContent; |
threadItem := GetActiveContent; |
| 2986 |
URL := GetRespopupURL(Text, threadItem.URL); |
URL := GetRespopupURL(Text, threadItem.URL); |
| 2987 |
PathRec := Gikosys.Parse2chURL2(URL); |
PathRec := Gikosys.Parse2chURL2(URL); |
| 2988 |
if (PathRec.FNoParam) then begin |
if (PathRec.FNoParam) then begin |
| 2989 |
PathRec.FSt := 1; |
PathRec.FSt := 1; |
| 3029 |
|
|
| 3030 |
if threadItem <> nil then begin |
if threadItem <> nil then begin |
| 3031 |
//HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst); |
//HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst); |
| 3032 |
|
//URLの最後に/が付いていないとき用 |
| 3033 |
|
if ( IntToStr(wkIntSt) = ChangeFileExt(threadItem.FileName, '') ) then begin |
| 3034 |
|
wkIntSt := 1; |
| 3035 |
|
wkIntTo := 1; |
| 3036 |
|
end; |
| 3037 |
FHint.PopupType := gptThread; |
FHint.PopupType := gptThread; |
| 3038 |
SetResPopupText( threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst ); |
SetResPopupText( threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst ); |
| 3039 |
end; |
end; |
| 3388 |
end else if TObject(TreeView.Items[i].Data) is TBoard then begin |
end else if TObject(TreeView.Items[i].Data) is TBoard then begin |
| 3389 |
IsBoardNode := True; |
IsBoardNode := True; |
| 3390 |
Board := TBoard(TreeView.Items[i].Data); |
Board := TBoard(TreeView.Items[i].Data); |
| 3391 |
|
|
| 3392 |
Cnt := Board.UnRead; |
Cnt := Board.UnRead; |
| 3393 |
if Cnt <= 0 then |
if Cnt <= 0 then |
| 3394 |
continue; |
continue; |
| 3517 |
else |
else |
| 3518 |
ATitle := Item.ThreadItem.Title; |
ATitle := Item.ThreadItem.Title; |
| 3519 |
if ATitle = '' then |
if ATitle = '' then |
| 3520 |
ATitle := GikoSys.Setting.GetMessage(Ord(gmUnKnown)); |
ATitle := GikoSys.Setting.GetMessage(Ord(gmUnKnown)); |
| 3521 |
|
|
| 3522 |
if Item.State in [gdsComplete, gdsDiffComplete] then begin |
if Item.State in [gdsComplete, gdsDiffComplete] then begin |
| 3523 |
//正常終了 |
//正常終了 |
| 3524 |
if Item.DownType = gdtBoard then begin |
if Item.DownType = gdtBoard then begin |
| 3525 |
//板 |
//板 |
| 3526 |
Item.SaveListFile; |
Item.SaveListFile; |
| 3527 |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureItiran)), nil, gmiOK); |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureItiran)), nil, gmiOK); |
| 3528 |
if GetActiveList = Item.Board then begin |
if GetActiveList = Item.Board then begin |
| 3529 |
FActiveList := nil; |
FActiveList := nil; |
| 3530 |
SetActiveList(Item.Board); |
SetActiveList(Item.Board); |
| 3531 |
end; |
end; |
| 3536 |
//スレ |
//スレ |
| 3537 |
Item.SaveItemFile; |
Item.SaveItemFile; |
| 3538 |
Item.ThreadItem.NewArrival := True; |
Item.ThreadItem.NewArrival := True; |
| 3539 |
if (Item.ThreadItem.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin |
//if (Item.ThreadItem.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin |
| 3540 |
boardPlugIn := Item.ThreadItem.BoardPlugIn; |
if (Item.ThreadItem.ParentBoard.IsBoardPlugInAvailable) and (Item.ThreadItem.Title = '') then begin |
| 3541 |
|
//boardPlugIn := Item.ThreadItem.BoardPlugIn; |
| 3542 |
|
boardPlugIn := Item.ThreadItem.ParentBoard.BoardPlugIn; |
| 3543 |
Item.ThreadItem.Title := GikoSys.DivideStrLine(boardPlugIn.GetDat( DWORD( Item.ThreadItem ), 1 )).FTitle; |
Item.ThreadItem.Title := GikoSys.DivideStrLine(boardPlugIn.GetDat( DWORD( Item.ThreadItem ), 1 )).FTitle; |
| 3544 |
ATitle := Item.ThreadItem.Title; |
ATitle := Item.ThreadItem.Title; |
| 3545 |
end else if ATitle = '(名称不明)' then begin |
end else if ATitle = '(名称不明)' then begin |
| 3564 |
end; |
end; |
| 3565 |
end else begin |
end else begin |
| 3566 |
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
| 3567 |
InsertBrowserTab(Item.ThreadItem); |
InsertBrowserTab(Item.ThreadItem); |
| 3568 |
end; |
end; |
| 3569 |
|
|
| 3570 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 3571 |
|
|
| 3572 |
if Item.State = gdsComplete then begin |
if Item.State = gdsComplete then begin |
| 3573 |
PlaySound('New'); |
PlaySound('New'); |
| 3574 |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureSyutoku)), nil, gmiOK); |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureSyutoku)), nil, gmiOK); |
| 3575 |
//Add by Genyakun |
//Add by Genyakun |
| 3576 |
DiffComp := True; |
DiffComp := True; |
| 3577 |
end else begin |
end else begin |
| 3578 |
PlaySound('NewDiff'); |
PlaySound('NewDiff'); |
| 3579 |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureDiff)), nil, gmiOK); |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmSureDiff)), nil, gmiOK); |
| 3580 |
//Add by Genyakun |
//Add by Genyakun |
| 3581 |
DiffComp := True; |
DiffComp := True; |
| 3582 |
end; |
end; |
| 3583 |
|
|
| 3584 |
//巡回ありの場合&1000超は巡回削除 |
//巡回ありの場合&1000超は巡回削除 |
| 3585 |
if (Item.ThreadItem.Round) and (Item.ThreadItem.Count > 1000) then begin |
if (Item.ThreadItem.Round) and (Item.ThreadItem.Count > 1000) then begin |
| 3586 |
Item.ThreadItem.Round := False; |
Item.ThreadItem.Round := False; |
| 3587 |
Item.ThreadItem.RoundName := ''; |
//Item.ThreadItem.RoundName := ''; |
| 3588 |
AddMessageList('★1000発言を超えたので巡回を削除しました - [' + Item.ThreadItem.Title + ']', nil, gmiOK); |
AddMessageList('★1000発言を超えたので巡回を削除しました - [' + Item.ThreadItem.Title + ']', nil, gmiOK); |
| 3589 |
end; |
end; |
|
|
|
| 3590 |
TreeView.Refresh; |
TreeView.Refresh; |
| 3591 |
|
//ListViewでこのスレが含まれる板を表示しているときの更新処理 |
| 3592 |
|
if (ActiveList <> nil) and (ActiveList is TBoard) then begin |
| 3593 |
|
TBoard(ActiveList).LogThreadCount := TBoard(ActiveList).GetLogThreadCount; |
| 3594 |
|
TBoard(ActiveList).NewThreadCount := TBoard(ActiveList).GetNewThreadCount; |
| 3595 |
|
TBoard(ActiveList).UserThreadCount:= TBoard(ActiveList).GetUserThreadCount; |
| 3596 |
|
//ListViewのアイテムの個数も更新 |
| 3597 |
|
case GikoForm.ViewType of |
| 3598 |
|
gvtAll: ListView.Items.Count := TBoard(ActiveList).Count; |
| 3599 |
|
gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount; |
| 3600 |
|
gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount; |
| 3601 |
|
gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount; |
| 3602 |
|
end; |
| 3603 |
|
end; |
| 3604 |
end; |
end; |
| 3605 |
ListView.Refresh; |
ListView.Refresh; |
| 3606 |
end else if Item.State = gdsNotModify then begin |
end else if Item.State = gdsNotModify then begin |
| 3609 |
//SetContent(Item.ThreadItem); |
//SetContent(Item.ThreadItem); |
| 3610 |
InsertBrowserTab(Item.ThreadItem); |
InsertBrowserTab(Item.ThreadItem); |
| 3611 |
end;} |
end;} |
| 3612 |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmNotMod)), nil, gmiSAD); |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmNotMod)), nil, gmiSAD); |
| 3613 |
PlaySound('NoChange'); |
PlaySound('NoChange'); |
| 3614 |
Screen.Cursor := crDefault; |
Screen.Cursor := crDefault; |
| 3615 |
end else if Item.State = gdsAbort then begin |
end else if Item.State = gdsAbort then begin |
| 3616 |
//中断 |
//中断 |
| 3617 |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmAbort)), nil, gmiOK); |
AddMessageList(ATitle + ' ' + GikoSys.Setting.GetMessage(Ord(gmAbort)), nil, gmiOK); |
| 3618 |
end else if Item.State = gdsError then begin |
end else if Item.State = gdsError then begin |
| 3619 |
//エラー |
//エラー |
| 3620 |
s := Item.ErrText; |
s := Item.ErrText; |
| 3840 |
ThreadItem: TThreadItem; |
ThreadItem: TThreadItem; |
| 3841 |
Thread: TBrowserRecord; |
Thread: TBrowserRecord; |
| 3842 |
ThreadTitle, ThreadPTitle: string; |
ThreadTitle, ThreadPTitle: string; |
| 3843 |
ThreadScrollTop: Integer; |
//ThreadScrollTop: Integer; |
| 3844 |
ThreadIsLog, ThreadUnRead, ThreadNewArraical: boolean; |
ThreadIsLog, {ThreadUnRead,} ThreadNewArraical: boolean; |
| 3845 |
begin |
begin |
| 3846 |
// AddMessageList('SetContent', nil, gmiWhat); |
// AddMessageList('SetContent', nil, gmiWhat); |
| 3847 |
Thread := inThread; |
Thread := inThread; |
| 3891 |
|
|
| 3892 |
ThreadTitle := Thread.Thread.Title; |
ThreadTitle := Thread.Thread.Title; |
| 3893 |
ThreadPTitle := Thread.Thread.ParentBoard.Title; |
ThreadPTitle := Thread.Thread.ParentBoard.Title; |
| 3894 |
ThreadScrollTop := Thread.Thread.ScrollTop; |
//ThreadScrollTop := Thread.Thread.ScrollTop; |
| 3895 |
ThreadIsLog := Thread.Thread.IsLogFile; |
ThreadIsLog := Thread.Thread.IsLogFile; |
| 3896 |
ThreadItem := Thread.Thread; |
ThreadItem := Thread.Thread; |
| 3897 |
ThreadNewArraical := Thread.Thread.NewArrival; |
ThreadNewArraical := Thread.Thread.NewArrival; |
| 3898 |
ThreadUnRead := Thread.Thread.UnRead; |
//ThreadUnRead := Thread.Thread.UnRead; |
| 3899 |
BBSID := ThreadItem.ParentBoard.BBSID; |
BBSID := ThreadItem.ParentBoard.BBSID; |
| 3900 |
FileName := ThreadItem.FileName; |
FileName := ThreadItem.FileName; |
| 3901 |
|
|
| 4073 |
ViewType := AViewType; |
ViewType := AViewType; |
| 4074 |
if ActiveList is TBoard then begin |
if ActiveList is TBoard then begin |
| 4075 |
Board := TBoard(ActiveList); |
Board := TBoard(ActiveList); |
| 4076 |
|
case ViewType of |
| 4077 |
|
//gvtAll: ListView.Items.Count := Board.Count; |
| 4078 |
|
gvtLog: Board.LogThreadCount := Board.GetLogThreadCount; |
| 4079 |
|
gvtNew: Board.NewThreadCount := Board.GetNewThreadCount; |
| 4080 |
|
gvtUser: Board.UserThreadCount:= Board.GetUserThreadCount; |
| 4081 |
|
end; |
| 4082 |
|
|
| 4083 |
SetActiveList(Board); |
SetActiveList(Board); |
| 4084 |
|
// |
| 4085 |
//SetThreadListItem(Board); //SetActiveList内で呼ばれるから2重に呼び出す必要なし |
//SetThreadListItem(Board); //SetActiveList内で呼ばれるから2重に呼び出す必要なし |
| 4086 |
end; |
end; |
| 4087 |
end; |
end; |
| 4243 |
else |
else |
| 4244 |
FHistoryList.Add( favItem ); |
FHistoryList.Add( favItem ); |
| 4245 |
// SetContent(ThreadItem); |
// SetContent(ThreadItem); |
| 4246 |
while GikoSys.Setting.AddressHistoryCount < FHistoryList.Count do begin |
while GikoSys.Setting.MaxRecordCount < FHistoryList.Count do begin |
| 4247 |
i := FHistoryList.Count - 1; |
i := FHistoryList.Count - 1; |
| 4248 |
TObject( FHistoryList.Items[ i ] ).Free; |
TObject( FHistoryList.Items[ i ] ).Free; |
| 4249 |
FHistoryList.Delete( i ); |
FHistoryList.Delete( i ); |
| 4266 |
Node.ImageIndex := ITEM_ICON_THREADLOG1; |
Node.ImageIndex := ITEM_ICON_THREADLOG1; |
| 4267 |
Node.SelectedIndex := ITEM_ICON_THREADLOG2; |
Node.SelectedIndex := ITEM_ICON_THREADLOG2; |
| 4268 |
Node.Data := favItem; |
Node.Data := favItem; |
| 4269 |
while GikoSys.Setting.AddressHistoryCount < TreeView.Items.Count do begin |
while GikoSys.Setting.MaxRecordCount < TreeView.Items.Count do begin |
| 4270 |
i := TreeView.Items.Count - 1; |
i := TreeView.Items.Count - 1; |
| 4271 |
TreeView.Items.Item[ i ].Delete; |
TreeView.Items.Item[ i ].Delete; |
| 4272 |
end; |
end; |
| 5300 |
//// if FTreeType = gtt2ch then |
//// if FTreeType = gtt2ch then |
| 5301 |
// SelectTreeNode(TBoard(GetActiveList).ParentCategory, True); |
// SelectTreeNode(TBoard(GetActiveList).ParentCategory, True); |
| 5302 |
// //SetActiveList(TBoard(GetActiveList).ParentCategory); |
// //SetActiveList(TBoard(GetActiveList).ParentCategory); |
| 5303 |
if TreeView.Selected <> nil then begin |
//if TreeView.Selected <> nil then begin |
| 5304 |
if TObject(TreeView.Selected.Parent.Data) is TCategory then |
// if TObject(TreeView.Selected.Parent.Data) is TCategory then |
| 5305 |
SelectTreeNode(TCategory(TreeView.Selected.Parent.Data), True); |
// SelectTreeNode(TCategory(TreeView.Selected.Parent.Data), True); |
| 5306 |
end; |
//end; |
| 5307 |
|
if TBoard(GetActiveList).ParentCategory <> nil then |
| 5308 |
|
SelectTreeNode(TBoard(GetActiveList).ParentCategory, True); |
| 5309 |
end else if GetActiveList is TCategory then begin |
end else if GetActiveList is TCategory then begin |
| 5310 |
// if FTreeType = gtt2ch then |
// if FTreeType = gtt2ch then |
| 5311 |
SelectTreeNode(TCategory(GetActiveList).ParenTBBS, True); |
SelectTreeNode(TCategory(GetActiveList).ParenTBBS, True); |
| 6406 |
Text := ZenToHan(Text); |
Text := ZenToHan(Text); |
| 6407 |
|
|
| 6408 |
if(AnsiPos('>>', Text) = 1) then begin |
if(AnsiPos('>>', Text) = 1) then begin |
| 6409 |
Text := Copy(Text, 3, Length(Text) - 2); |
//Text := Copy(Text, 3, Length(Text) - 2); |
| 6410 |
|
Delete(Text, 1, 2); |
| 6411 |
end else begin |
end else begin |
| 6412 |
Text := Copy(Text, 2, Length(Text) - 1); |
//Text := Copy(Text, 2, Length(Text) - 1); |
| 6413 |
|
Delete(Text, 1, 1); |
| 6414 |
end; |
end; |
| 6415 |
if AnsiPos('-', Text) <> 0 then begin |
if AnsiPos('-', Text) <> 0 then begin |
| 6416 |
wkIntSt := StrToIntDef(Copy(Text, 1, AnsiPos('-', Text) - 1), 0); |
wkIntSt := StrToIntDef(Copy(Text, 1, AnsiPos('-', Text) - 1), 0); |
| 6435 |
URL := GikoSys.GetHRefText(Html); |
URL := GikoSys.GetHRefText(Html); |
| 6436 |
URL := GikoSys.HTMLDecode(URL); |
URL := GikoSys.HTMLDecode(URL); |
| 6437 |
if AnsiPos('BE:', URL) = 1 then begin |
if AnsiPos('BE:', URL) = 1 then begin |
| 6438 |
BNum := Copy(URL, 4, AnsiPos('/', URL) - 4); |
BNum := Copy(URL, 4, AnsiPos('/', URL) - 4); |
| 6439 |
BRes := Copy(URL, AnsiPos('/', URL) + 1, Length(URL)); |
BRes := Copy(URL, AnsiPos('/', URL) + 1, Length(URL)); |
| 6440 |
threadItem := FActiveContent.Thread; |
threadItem := FActiveContent.Thread; |
| 6441 |
if threadItem = nil then Exit; |
if threadItem = nil then Exit; |
| 6442 |
URL := BE_PHP_URL + BNum + '&u=d' |
URL := BE_PHP_URL + BNum + '&u=d' |
| 6872 |
Dlg.ShowModal; |
Dlg.ShowModal; |
| 6873 |
if Dlg.ModalResult <> mrCancel then begin |
if Dlg.ModalResult <> mrCancel then begin |
| 6874 |
s := Trim(Dlg.RoundNameEdit.Text); |
s := Trim(Dlg.RoundNameEdit.Text); |
| 6875 |
RoundList.RoundNameList.Add(s); |
//RoundList.RoundNameList.Add(s); |
| 6876 |
SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name); |
SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name); |
| 6877 |
ListView.Refresh; |
ListView.Refresh; |
| 6878 |
end; |
end; |
| 6882 |
end; |
end; |
| 6883 |
procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); |
procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); |
| 6884 |
var |
var |
| 6885 |
threadItem : TThreadItem; |
threadItem : TThreadItem; |
| 6886 |
|
// i: Integer; |
| 6887 |
begin |
begin |
| 6888 |
if ParentName <> 'dummy1' then begin |
if ParentName <> 'dummy1' then begin |
| 6889 |
SetSelectItemRound(RoundFlag, RoundName); |
SetSelectItemRound(RoundFlag, RoundName); |
| 6890 |
end else begin |
end else begin |
| 6891 |
threadItem := GetActiveContent; |
threadItem := GetActiveContent; |
| 6892 |
if threadItem <> nil then begin |
if threadItem <> nil then begin |
| 6893 |
threadItem.RoundName := RoundName; |
threadItem.RoundName := RoundName; |
| 6894 |
threadItem.Round := RoundFlag; |
RoundList.RoundNameList.Add(RoundName); |
| 6895 |
end; |
//RoundList.RoundNameList.Find(RoundName, i); |
| 6896 |
end; |
//threadItem.RoundName := PChar(RoundList.RoundNameList[i]); |
| 6897 |
|
threadItem.Round := RoundFlag; |
| 6898 |
|
end; |
| 6899 |
|
end; |
| 6900 |
end; |
end; |
| 6901 |
|
|
| 6902 |
procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string); |
procedure TGikoForm.SetSelectItemRound(RoundFlag: Boolean; RoundName: string); |
| 6903 |
var |
var |
| 6904 |
i: Integer; |
i{, idx}: Integer; |
| 6905 |
List: TList; |
List: TList; |
| 6906 |
begin |
begin |
| 6907 |
List := TList.Create; |
List := TList.Create; |
| 6910 |
for i := 0 to List.Count - 1 do begin |
for i := 0 to List.Count - 1 do begin |
| 6911 |
if TObject(List[i]) is TBoard then begin |
if TObject(List[i]) is TBoard then begin |
| 6912 |
TBoard(List[i]).RoundName := RoundName; |
TBoard(List[i]).RoundName := RoundName; |
| 6913 |
|
RoundList.RoundNameList.Add(RoundName); |
| 6914 |
|
//RoundList.RoundNameList.Find(RoundName, idx); |
| 6915 |
|
//TBoard(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]); |
| 6916 |
TBoard(List[i]).Round := RoundFlag; |
TBoard(List[i]).Round := RoundFlag; |
| 6917 |
end else if TObject(List[i]) is TThreadItem then begin |
end else if TObject(List[i]) is TThreadItem then begin |
| 6918 |
if TThreadItem(List[i]).IsLogFile then begin |
if TThreadItem(List[i]).IsLogFile then begin |
| 6919 |
TThreadItem(List[i]).RoundName := RoundName; |
TThreadItem(List[i]).RoundName := RoundName; |
| 6920 |
|
RoundList.RoundNameList.Add(RoundName); |
| 6921 |
|
//RoundList.RoundNameList.Find(RoundName, idx); |
| 6922 |
|
//TThreadItem(List[i]).RoundName := PChar(RoundList.RoundNameList[idx]); |
| 6923 |
TThreadItem(List[i]).Round := RoundFlag; |
TThreadItem(List[i]).Round := RoundFlag; |
| 6924 |
end; |
end; |
| 6925 |
end; |
end; |
| 7003 |
LoginAction.Checked := True; |
LoginAction.Checked := True; |
| 7004 |
AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK); |
AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK); |
| 7005 |
LoginAction.Caption := 'ログアウト(&L)'; |
LoginAction.Caption := 'ログアウト(&L)'; |
| 7006 |
LoginToolButton.Style := tbsCheck; |
//LoginToolButton.Style := tbsCheck; |
| 7007 |
end else begin |
end else begin |
| 7008 |
// MsgBox(Handle, 'ログイン出来ませんでした', 'エラー', MB_OK or MB_ICONSTOP); |
// MsgBox(Handle, 'ログイン出来ませんでした', 'エラー', MB_OK or MB_ICONSTOP); |
| 7009 |
AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG); |
AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG); |
| 7010 |
PlaySound('Error'); |
PlaySound('Error'); |
| 7011 |
LoginAction.Checked := False; |
LoginAction.Checked := False; |
| 7012 |
LoginToolButton.Down := False; |
//LoginToolButton.Down := False; |
| 7013 |
LoginToolButton.Style := tbsButton; |
///LoginToolButton.Style := tbsButton; |
| 7014 |
end; |
end; |
| 7015 |
end else begin |
end else begin |
| 7016 |
msg := '強制ログインモードでは,サーバの証明書の有効性をチェックしません。' + #13#10 |
msg := '強制ログインモードでは,サーバの証明書の有効性をチェックしません。' + #13#10 |
| 7033 |
LoginAction.Checked := True; |
LoginAction.Checked := True; |
| 7034 |
AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK); |
AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK); |
| 7035 |
LoginAction.Caption := 'ログアウト(&L)'; |
LoginAction.Caption := 'ログアウト(&L)'; |
| 7036 |
LoginToolButton.Style := tbsCheck; |
//LoginToolButton.Style := tbsCheck; |
| 7037 |
end else begin |
end else begin |
| 7038 |
// MsgBox(Handle, 'ログイン出来ませんでした', 'エラー', MB_OK or MB_ICONSTOP); |
// MsgBox(Handle, 'ログイン出来ませんでした', 'エラー', MB_OK or MB_ICONSTOP); |
| 7039 |
AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG); |
AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG); |
| 7040 |
PlaySound('Error'); |
PlaySound('Error'); |
| 7041 |
LoginAction.Checked := False; |
LoginAction.Checked := False; |
| 7042 |
LoginToolButton.Down := False; |
//LoginToolButton.Down := False; |
| 7043 |
LoginToolButton.Style := tbsButton; |
//LoginToolButton.Style := tbsButton; |
| 7044 |
end; |
end; |
| 7045 |
end else begin |
end else begin |
| 7046 |
LoginAction.Checked := False; |
LoginAction.Checked := False; |
| 7047 |
LoginToolButton.Down := False; |
//LoginToolButton.Down := False; |
| 7048 |
LoginToolButton.Style := tbsButton; |
//LoginToolButton.Style := tbsButton; |
| 7049 |
end; |
end; |
| 7050 |
end; |
end; |
| 7051 |
finally |
finally |
| 7599 |
URL, protocol2, host2, path2, document2, port2, bookmark2 : string; |
URL, protocol2, host2, path2, document2, port2, bookmark2 : string; |
| 7600 |
tmp1, tmp2: string; |
tmp1, tmp2: string; |
| 7601 |
BBSID, BBSKey: string; |
BBSID, BBSKey: string; |
| 7602 |
tmpBoard, Board: TBoard; |
{tmpBoard,} Board: TBoard; |
| 7603 |
ThreadItem: TThreadItem; |
ThreadItem: TThreadItem; |
| 7604 |
i, bi : Integer; |
i, bi : Integer; |
| 7605 |
boardURL : string; |
boardURL : string; |
| 7630 |
//===== プラグイン |
//===== プラグイン |
| 7631 |
try |
try |
| 7632 |
//作業中// |
//作業中// |
| 7633 |
bi := High( BoardPlugIns ); |
//bi := High( BoardPlugIns ); |
| 7634 |
for i := Low( BoardPlugIns ) to bi do begin |
bi := Length(BoardGroups) - 1; |
| 7635 |
if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin |
//for i := Low( BoardPlugIns ) to bi do begin |
| 7636 |
case BoardPlugIns[ i ].AcceptURL( inURL ) of |
for i := 1 to bi do begin |
| 7637 |
|
//if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin |
| 7638 |
|
if (BoardGroups[i].BoardPlugIn <> nil) and (Assigned(Pointer(BoardGroups[i].BoardPlugIn.Module))) then begin |
| 7639 |
|
case BoardGroups[i].BoardPlugIn.AcceptURL( inURL ) of |
| 7640 |
atThread: |
atThread: |
| 7641 |
begin |
begin |
| 7642 |
tmpThread := TThreadItem.Create( BoardPlugIns[ i ], inURL ); |
boardURL := BoardGroups[i].BoardPlugIn.ExtractBoardURL( inURL ); |
| 7643 |
boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) ); |
Board := BBSsFindBoardFromURL( boardURL ); |
| 7644 |
Board := BBSsFindBoardFromURL( boardURL ); |
|
| 7645 |
|
|
| 7646 |
if Board = nil then begin |
if Board = nil then begin |
| 7647 |
//break; |
//break; |
| 7648 |
// ※作っても追加するところが無いので激しく保留 |
// ※作っても追加するところが無いので激しく保留 |
| 7649 |
//GikoSys.OpenBrowser(inURL, gbtUserApp); |
//GikoSys.OpenBrowser(inURL, gbtUserApp); |
| 7650 |
//Exit; |
//Exit; |
| 7654 |
ShowBBSTree( BBSs[ 1 ] ); |
ShowBBSTree( BBSs[ 1 ] ); |
| 7655 |
} |
} |
| 7656 |
end else begin |
end else begin |
| 7657 |
|
tmpThread := TThreadItem.Create( BoardGroups[i].BoardPlugIn, Board, inURL ); |
| 7658 |
if not Board.IsThreadDatRead then begin |
if not Board.IsThreadDatRead then begin |
| 7659 |
GikoSys.ReadSubjectFile( Board ); |
GikoSys.ReadSubjectFile( Board ); |
| 7660 |
|
tmpThread.Free; |
| 7661 |
Exit; |
Exit; |
| 7662 |
end; |
end; |
| 7663 |
ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName ); |
ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName ); |
| 7664 |
if ThreadItem = nil then begin |
if ThreadItem = nil then begin |
| 7665 |
|
//tmpThreadをこっちは開放してはいけない |
| 7666 |
ThreadItem := tmpThread; |
ThreadItem := tmpThread; |
| 7667 |
Board.Insert( 0, ThreadItem ); |
Board.Insert( 0, ThreadItem ); |
| 7668 |
if ActiveList is TBoard then begin |
if ActiveList is TBoard then begin |
| 7694 |
|
|
| 7695 |
atBoard: |
atBoard: |
| 7696 |
begin |
begin |
| 7697 |
tmpBoard := TBoard.Create(BoardPlugIns[ i ], inURL); |
Board := BBSsFindBoardFromURL( |
| 7698 |
Board := BBSsFindBoardFromURL( tmpBoard.URL ); |
BoardGroups[i].BoardPlugIn.ExtractBoardURL( inURL ) |
| 7699 |
tmpBoard.Free; |
); |
| 7700 |
if Board <> nil then begin |
if Board <> nil then begin |
| 7701 |
if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
| 7702 |
ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
| 7715 |
if (Length( Trim(BBSKey) ) > 0) and (Length( Trim(BBSID) ) > 0) then begin |
if (Length( Trim(BBSKey) ) > 0) and (Length( Trim(BBSID) ) > 0) then begin |
| 7716 |
boardURL := GikoSys.Get2chThreadURL2BoardURL( inURL ); |
boardURL := GikoSys.Get2chThreadURL2BoardURL( inURL ); |
| 7717 |
Board := BBSsFindBoardFromURL( boardURL ); |
Board := BBSsFindBoardFromURL( boardURL ); |
| 7718 |
if Board = nil then |
//if Board = nil then |
| 7719 |
Board := BBSsFindBoardFromBBSID( BBSID ); |
// Board := BBSsFindBoardFromBBSID( BBSID ); |
| 7720 |
|
{ この部分もBBSsFindBoardFromURLに持たせた 20050523 |
| 7721 |
if Board = nil then begin |
if Board = nil then begin |
| 7722 |
// ※作っても追加するところが無いので激しく保留 |
// ※作っても追加するところが無いので激しく保留 |
| 7723 |
// 過去ログ倉庫から、ダウソしたスレが発見できないのでここで探すようにする (2004/01/22) |
// 過去ログ倉庫から、ダウソしたスレが発見できないのでここで探すようにする (2004/01/22) |
| 7724 |
Board := BBSs[ 0 ].FindBBSID( Copy(BBSID, 1 , Length(BBSID) - 1) ); |
Board := BBSs[ 0 ].FindBBSID( BBSID ); |
| 7725 |
end; |
end; |
| 7726 |
|
} |
| 7727 |
if Board = nil then begin |
if Board = nil then begin |
| 7728 |
// 入るべき板が見つからなかったので、普通のブラウザで開く |
// 入るべき板が見つからなかったので、普通のブラウザで開く |
| 7729 |
GikoSys.OpenBrowser(inURL, gbtUserApp); |
GikoSys.OpenBrowser(inURL, gbtUserApp); |
| 7759 |
GikoSys.OpenBrowser(URL1, gbtIE) |
GikoSys.OpenBrowser(URL1, gbtIE) |
| 7760 |
else begin |
else begin |
| 7761 |
} |
} |
| 7762 |
ThreadItem := TThreadItem.Create( nil, URL ); |
ThreadItem := TThreadItem.Create( nil, Board, URL ); |
| 7763 |
ThreadItem.FileName := ChangeFileExt(BBSKey, '.dat'); |
ThreadItem.FileName := ChangeFileExt(BBSKey, '.dat'); |
| 7764 |
if AnsiPos(Host, Board.URL) = 0 then |
if AnsiPos(Host, Board.URL) = 0 then |
| 7765 |
ThreadItem.DownloadHost := Host |
ThreadItem.DownloadHost := Host |
| 7796 |
end; |
end; |
| 7797 |
end else begin |
end else begin |
| 7798 |
Board := BBSsFindBoardFromURL( inURL ); |
Board := BBSsFindBoardFromURL( inURL ); |
| 7799 |
if Board = nil then begin |
if Board = nil then begin |
| 7800 |
GikoSys.OpenBrowser(inURL, gbtAuto); |
GikoSys.OpenBrowser(inURL, gbtAuto); |
| 7801 |
end else begin |
end else begin |
| 7802 |
if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
| 7803 |
ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
| 7804 |
SelectTreeNode( Board, True ); |
SelectTreeNode( Board, True ); |
| 7805 |
end; |
end; |
| 7806 |
end; |
end; |
| 7807 |
end; |
end; |
| 7808 |
|
|
| 8170 |
FHint.Title := ThreadItem.Title; |
FHint.Title := ThreadItem.Title; |
| 8171 |
|
|
| 8172 |
if ThreadItem <> nil then begin |
if ThreadItem <> nil then begin |
| 8173 |
if ThreadItem.IsBoardPlugInAvailable then begin |
//if ThreadItem.IsBoardPlugInAvailable then begin |
| 8174 |
|
if ThreadItem.ParentBoard.IsBoardPlugInAvailable then begin |
| 8175 |
//===== プラグインによる表示 |
//===== プラグインによる表示 |
| 8176 |
boardPlugIn := ThreadItem.BoardPlugIn; |
//boardPlugIn := ThreadItem.BoardPlugIn; |
| 8177 |
|
boardPlugIn := ThreadItem.ParentBoard.BoardPlugIn; |
| 8178 |
|
|
| 8179 |
// フォントやサイズの設定 |
// フォントやサイズの設定 |
| 8180 |
// 文字コードはプラグインに任せる |
// 文字コードはプラグインに任せる |
| 8335 |
LinkBarPopupMenu.Items.Clear; |
LinkBarPopupMenu.Items.Clear; |
| 8336 |
for i := LinkToolBar.ButtonCount - 1 downto 0 do |
for i := LinkToolBar.ButtonCount - 1 downto 0 do |
| 8337 |
//LinkToolBar.RemoveControl(LinkToolBar.Buttons[i]); |
//LinkToolBar.RemoveControl(LinkToolBar.Buttons[i]); |
| 8338 |
LinkToolBar.Buttons[i].Free; |
LinkToolBar.Buttons[i].Free; |
| 8339 |
for i := 0 to FavoriteTreeView.Items.Count - 1 do begin |
for i := 0 to FavoriteTreeView.Items.Count - 1 do begin |
| 8340 |
if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin |
if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin |
| 8341 |
for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin |
for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin |
| 8920 |
tssList: Dlg.ToolBarIndex := 1; |
tssList: Dlg.ToolBarIndex := 1; |
| 8921 |
tssBrowser: Dlg.ToolBarIndex := 2; |
tssBrowser: Dlg.ToolBarIndex := 2; |
| 8922 |
end; |
end; |
|
{ |
|
|
if ToolBarSettingAction.ActionComponent.GetParentComponent is TPopupMenu then begin |
|
|
Component := TPopupMenu( ToolBarSettingAction.ActionComponent.GetParentComponent ).PopupComponent; |
|
|
|
|
|
if Component = MainCoolBar then |
|
|
Dlg.ToolBarComboBox.ItemIndex := 0 |
|
|
else if Component = ListCoolBar then |
|
|
Dlg.ToolBarComboBox.ItemIndex := 1 |
|
|
else if Component = BrowserCoolBar then |
|
|
Dlg.ToolBarComboBox.ItemIndex := 2; |
|
|
end; |
|
|
} |
|
| 8923 |
if Dlg.ShowModal = mrOK then begin |
if Dlg.ShowModal = mrOK then begin |
| 8924 |
SetToolBarPopup; |
SetToolBarPopup; |
| 8925 |
|
|
| 8936 |
BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth + 1; |
BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth + 1; |
| 8937 |
BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1; |
BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1; |
| 8938 |
end; |
end; |
| 8939 |
|
|
| 8940 |
|
SelectComboBox.Visible := False; |
| 8941 |
|
SelectComboBoxSplitter.Visible := False; |
| 8942 |
|
|
| 8943 |
SaveToolBarSetting(StdToolBar); |
SaveToolBarSetting(StdToolBar); |
| 8944 |
SaveToolBarSetting(ListToolBar); |
SaveToolBarSetting(ListToolBar); |
| 8945 |
for i := ListToolBar.ControlCount - 1 downto 0 do |
for i := ListToolBar.ControlCount - 1 downto 0 do |
| 8958 |
SelectComboBox.Left := ListToolBar.Controls[ i ].Left; |
SelectComboBox.Left := ListToolBar.Controls[ i ].Left; |
| 8959 |
SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth; |
SelectComboBox.Width := GikoSys.Setting.SelectComboBoxWidth; |
| 8960 |
SelectComboBox.Parent := ListToolBar; |
SelectComboBox.Parent := ListToolBar; |
| 8961 |
|
SelectComboBox.Visible := True; |
| 8962 |
// スレッド絞込用独自セパレータを挿入 |
// スレッド絞込用独自セパレータを挿入 |
| 8963 |
SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width; |
SelectComboBoxSplitter.Left := SelectComboBox.Left + SelectComboBox.Width; |
| 8964 |
SelectComboBoxSplitter.Parent := ListToolBar; |
SelectComboBoxSplitter.Parent := ListToolBar; |
| 8965 |
|
SelectComboBoxSplitter.Visible := True; |
| 8966 |
break; |
break; |
| 8967 |
end; |
end; |
| 8968 |
end; |
end; |
| 9352 |
ResetBandInfo( ListCoolBar, ListToolBar ); |
ResetBandInfo( ListCoolBar, ListToolBar ); |
| 9353 |
End; |
End; |
| 9354 |
End; |
End; |
| 9355 |
|
|
| 9356 |
end; |
end; |
| 9357 |
|
|
| 9358 |
procedure TGikoForm.SelectComboBoxSplitterMouseDown(Sender: TObject; |
procedure TGikoForm.SelectComboBoxSplitterMouseDown(Sender: TObject; |
| 9364 |
pos.X := X; |
pos.X := X; |
| 9365 |
pos.Y := Y; |
pos.Y := Y; |
| 9366 |
DraggingSelectComboBoxPosition := SelectComboBoxSplitter.ClientToScreen( pos ); |
DraggingSelectComboBoxPosition := SelectComboBoxSplitter.ClientToScreen( pos ); |
| 9367 |
|
|
| 9368 |
end; |
end; |
| 9369 |
|
|
| 9370 |
procedure TGikoForm.SelectComboBoxSplitterMouseUp(Sender: TObject; |
procedure TGikoForm.SelectComboBoxSplitterMouseUp(Sender: TObject; |
| 9371 |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
| 9372 |
begin |
begin |
| 9373 |
IsDraggingSelectComboBox := False; |
IsDraggingSelectComboBox := False; |
| 9374 |
|
|
| 9375 |
end; |
end; |
| 9376 |
|
|
| 9377 |
procedure TGikoForm.StatusBarResize(Sender: TObject); |
procedure TGikoForm.StatusBarResize(Sender: TObject); |
| 10338 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 10339 |
|
|
| 10340 |
if ThreadItem <> nil then begin |
if ThreadItem <> nil then begin |
| 10341 |
if ThreadItem.IsBoardPlugInAvailable then begin |
//if ThreadItem.IsBoardPlugInAvailable then begin |
| 10342 |
|
if ThreadItem.ParentBoard.IsBoardPlugInAvailable then begin |
| 10343 |
//===== プラグインによる表示 |
//===== プラグインによる表示 |
| 10344 |
boardPlugIn := ThreadItem.BoardPlugIn; |
//boardPlugIn := ThreadItem.BoardPlugIn; |
| 10345 |
|
boardPlugIn := ThreadItem.ParentBoard.BoardPlugIn; |
| 10346 |
|
|
| 10347 |
// フォントやサイズの設定 |
// フォントやサイズの設定 |
| 10348 |
// 文字コードはプラグインに任せる |
// 文字コードはプラグインに任せる |
| 10360 |
Header := CustomStringReplace(Header, '</b>', '',true); |
Header := CustomStringReplace(Header, '</b>', '',true); |
| 10361 |
Header := CustomStringReplace(Header, '<b>', '',true); |
Header := CustomStringReplace(Header, '<b>', '',true); |
| 10362 |
end; |
end; |
| 10363 |
if ThreadItem.IsBoardPlugInAvailable then begin |
//if ThreadItem.IsBoardPlugInAvailable then begin |
| 10364 |
|
if ThreadItem.ParentBoard.IsBoardPlugInAvailable then begin |
| 10365 |
Body := CustomStringReplace(Res.FBody, '<br>', #13#10,true); |
Body := CustomStringReplace(Res.FBody, '<br>', #13#10,true); |
| 10366 |
Body := CustomStringReplace(Body, '<br>', #13#10,true); |
Body := CustomStringReplace(Body, '<br>', #13#10,true); |
| 10367 |
end else begin |
end else begin |
| 12018 |
msg : String; |
msg : String; |
| 12019 |
ReadList : TStringList; |
ReadList : TStringList; |
| 12020 |
wordCount : TWordCount; |
wordCount : TWordCount; |
| 12021 |
i : Integer; |
{i : Integer;} |
| 12022 |
begin |
begin |
| 12023 |
IndividualForm := TIndividualAbonForm.Create(Self); |
IndividualForm := TIndividualAbonForm.Create(Self); |
| 12024 |
try |
try |
| 12229 |
Result := ''; |
Result := ''; |
| 12230 |
if Pos('about:blank..', AText) = 1 then begin |
if Pos('about:blank..', AText) = 1 then begin |
| 12231 |
wkInt := LastDelimiter( '/', AThreadURL ); |
wkInt := LastDelimiter( '/', AThreadURL ); |
| 12232 |
if Pos( '?', Copy( AThreadURL, wkInt, MaxInt ) ) = 0 then begin |
if Pos( '?', Copy( AThreadURL, wkInt, MaxInt ) ) = 0 then begin |
| 12233 |
// Thread.URL は PATH_INFO 渡し |
// Thread.URL は PATH_INFO 渡し |
| 12234 |
Result := Copy( AThreadURL, 1, LastDelimiter( '/', AThreadURL ) ); |
Result := Copy( AThreadURL, 1, LastDelimiter( '/', AThreadURL ) ); |
| 12235 |
wkInt := LastDelimiter( '/', AText ); |
wkInt := LastDelimiter( '/', AText ); |