| 2337 |
browserRec := InsertBrowserTab(Item.ThreadItem, True) |
browserRec := InsertBrowserTab(Item.ThreadItem, True) |
| 2338 |
else |
else |
| 2339 |
browserRec := InsertBrowserTab(Item.ThreadItem, False); |
browserRec := InsertBrowserTab(Item.ThreadItem, False); |
| 2340 |
if browserRec.Thread = BrowserNullTab.Thread then begin |
// if browserRec.Thread = BrowserNullTab.Thread then begin |
| 2341 |
browserRec.Movement := BrowserNullTab.Movement; |
// browserRec.Move(BrowserNullTab.Movement); |
| 2342 |
BrowserNullTab.Movement := ''; |
// BrowserNullTab.Movement := ''; |
| 2343 |
end; |
// end; |
| 2344 |
end else begin |
end else begin |
| 2345 |
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 |
| 2346 |
InsertBrowserTab(Item.ThreadItem); |
InsertBrowserTab(Item.ThreadItem); |
| 2579 |
BrowserNullTab := TBrowserRecord.Create; |
BrowserNullTab := TBrowserRecord.Create; |
| 2580 |
BrowserNullTab.Browser := Browser; |
BrowserNullTab.Browser := Browser; |
| 2581 |
end; |
end; |
| 2582 |
if BrowserNullTab.thread <> ThreadItem then begin |
// if BrowserNullTab.thread <> ThreadItem then begin |
| 2583 |
BrowserNullTab.Movement := ''; |
// BrowserNullTab.Movement := ''; |
| 2584 |
end; |
// end; |
| 2585 |
BrowserNullTab.thread := ThreadItem; |
BrowserNullTab.thread := ThreadItem; |
| 2586 |
Result := BrowserNullTab; |
Result := BrowserNullTab; |
| 2587 |
BrowserTab.TabIndex := -1; |
BrowserTab.TabIndex := -1; |
| 2615 |
(Assigned(FActiveContent.Browser.Document)) then begin |
(Assigned(FActiveContent.Browser.Document)) then begin |
| 2616 |
try |
try |
| 2617 |
try |
try |
|
Sleep(1); |
|
| 2618 |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop; |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop; |
| 2619 |
except |
except |
| 2620 |
on E: Exception do |
on E: Exception do |
| 2672 |
if (not Assigned(Thread.Browser.Document)) then begin |
if (not Assigned(Thread.Browser.Document)) then begin |
| 2673 |
Thread.Browser.Navigate('about:blank'); |
Thread.Browser.Navigate('about:blank'); |
| 2674 |
end; |
end; |
|
|
|
| 2675 |
while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 2676 |
(Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
(Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 2677 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 2680 |
end; |
end; |
| 2681 |
end; |
end; |
| 2682 |
|
|
| 2683 |
//ActiveContent の更新 |
if (Thread <> nil) and (ThreadItem <>nil) then begin |
| 2684 |
FActiveContent := Thread; |
BrowserBoardNameLabel.Caption := ThreadPTitle; |
| 2685 |
|
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
| 2686 |
|
BrowserNameLabel.Caption := ThreadTitle; |
| 2687 |
|
ItemImage.Picture := nil; |
| 2688 |
|
if ThreadIsLog then |
| 2689 |
|
if ThreadNewArraical then |
| 2690 |
|
ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) |
| 2691 |
|
else |
| 2692 |
|
ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) |
| 2693 |
|
else |
| 2694 |
|
ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); |
| 2695 |
|
|
| 2696 |
|
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
| 2697 |
|
BrowserNameLabel.Left := ItemImage.Left + 20; |
| 2698 |
|
|
| 2699 |
|
end; |
| 2700 |
|
|
| 2701 |
if not ThreadIsLog then begin |
if not ThreadIsLog then begin |
| 2702 |
Self.Caption := GikoDataModule.CAPTION_NAME ; |
Self.Caption := GikoDataModule.CAPTION_NAME ; |
| 2703 |
//ステータスバーに表示しているスレの容量を消去 |
//ステータスバーに表示しているスレの容量を消去 |
| 2704 |
StatusBar.Panels[THREADSIZE_PANEL].Text := ''; |
StatusBar.Panels[THREADSIZE_PANEL].Text := ''; |
| 2705 |
try |
try |
| 2706 |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
| 2713 |
end; |
end; |
| 2714 |
end else begin |
end else begin |
| 2715 |
Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']'; |
Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']'; |
| 2716 |
//ステータスバーに表示しているスレの容量を表示 |
//ステータスバーに表示しているスレの容量を表示 |
| 2717 |
StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]); |
StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]); |
| 2718 |
StatusBar.Panels[THREADSIZE_PANEL].Width := |
StatusBar.Panels[THREADSIZE_PANEL].Width := |
| 2719 |
Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70); |
Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70); |
| 2723 |
Thread.Repaint := false; |
Thread.Repaint := false; |
| 2724 |
|
|
| 2725 |
Thread.Browser.OnStatusTextChange := nil; |
Thread.Browser.OnStatusTextChange := nil; |
| 2726 |
LockWindowUpdate(Thread.Browser.Handle); |
LockWindowUpdate(Thread.Browser.ParentWindow); |
| 2727 |
|
//LockWindowUpdate(Thread.Browser.Handle); |
| 2728 |
HTMLCreater.CreateHTML2( |
HTMLCreater.CreateHTML2( |
| 2729 |
Idispatch( olevariant(Thread.Browser.ControlInterface).Document), |
Idispatch( olevariant(Thread.Browser.ControlInterface).Document), |
| 2730 |
ThreadItem, sTitle); |
ThreadItem, sTitle); |
| 2731 |
while ( (Thread.Browser.Document as IHTMLDocument2).readyState <> 'complete' ) do begin |
|
| 2732 |
Application.ProcessMessages; |
// 中身が読み終わるのを待つ |
| 2733 |
|
while ( (((Thread.Browser.Document as IHTMLDocument2).body as IHTMLElement).document |
| 2734 |
|
as IHTMLDocument2).readyState <> 'complete' ) do begin |
| 2735 |
Sleep(1); |
Sleep(1); |
| 2736 |
|
Application.ProcessMessages; |
| 2737 |
end; |
end; |
| 2738 |
Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; |
Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; |
|
if ThreadItem = nil then begin |
|
|
FActiveContent := nil; |
|
|
BrowserTab.Repaint; |
|
|
Exit; |
|
|
end; |
|
| 2739 |
//PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 ); |
//PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 ); |
| 2740 |
end else begin |
end else begin |
| 2741 |
// JUMPを指定されていたらJUMPする |
// JUMPを指定されていたらJUMPする |
| 2742 |
if (Thread.Movement <> '') then begin |
//if (Thread.Movement <> '') then begin |
| 2743 |
Thread.Move(Thread.Movement); |
// Thread.Move(Thread.Movement); |
| 2744 |
Thread.Movement := ''; |
// Thread.Movement := ''; |
| 2745 |
end; |
//end; |
| 2746 |
end; |
end; |
| 2747 |
end; |
end; |
|
if (Thread <> nil) and (ThreadItem <>nil) then begin |
|
|
BrowserBoardNameLabel.Caption := ThreadPTitle; |
|
|
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
|
|
BrowserNameLabel.Caption := ThreadTitle; |
|
|
ItemImage.Picture := nil; |
|
|
if ThreadIsLog then |
|
|
if ThreadNewArraical then |
|
|
ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap) |
|
|
else |
|
|
ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap) |
|
|
else |
|
|
ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap); |
|
| 2748 |
|
|
| 2749 |
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
//ActiveContent の更新 |
| 2750 |
BrowserNameLabel.Left := ItemImage.Left + 20; |
FActiveContent := Thread; |
| 2751 |
|
|
| 2752 |
//Threadの板と表示している板が同じなら描画を更新する |
//Threadの板と表示している板が同じなら描画を更新する |
| 2753 |
if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then |
if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then begin |
| 2754 |
ListView.Refresh; |
ListView.Refresh; |
|
end else begin |
|
|
FActiveContent := nil; |
|
| 2755 |
end; |
end; |
| 2756 |
|
|
| 2757 |
finally |
finally |
| 2758 |
Screen.Cursor := crDefault; |
Screen.Cursor := crDefault; |
| 2759 |
end; |
end; |
| 4243 |
Assigned( BrowserRecord.Thread ) then begin |
Assigned( BrowserRecord.Thread ) then begin |
| 4244 |
threadItem := BrowserRecord.Thread; |
threadItem := BrowserRecord.Thread; |
| 4245 |
|
|
| 4246 |
if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin |
if (threadItem.JumpAddress > 0) then begin |
| 4247 |
|
//if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin |
| 4248 |
if threadItem.UnRead then begin |
if threadItem.UnRead then begin |
| 4249 |
threadItem.UnRead := False; |
threadItem.UnRead := False; |
| 4250 |
TreeView.Refresh; |
TreeView.Refresh; |
| 4251 |
ListView.Refresh; |
ListView.Refresh; |
| 4252 |
end; |
end; |
| 4253 |
// スクロール先が取得外のレスの時は終端に移動 |
// スクロール先が取得外のレスの時は終端に移動 |
| 4254 |
if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin |
//if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin |
| 4255 |
BrowserRecord.Move(BrowserRecord.Movement); |
if (threadItem.JumpAddress <= BrowserRecord.Thread.Count) then begin |
| 4256 |
BrowserRecord.Movement := ''; |
BrowserRecord.Move(IntToStr(threadItem.JumpAddress)); |
| 4257 |
|
threadItem.JumpAddress := 0; |
| 4258 |
end else begin |
end else begin |
| 4259 |
BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count)); |
BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count)); |
| 4260 |
end; |
end; |
| 4594 |
begin |
begin |
| 4595 |
stRes := 0; |
stRes := 0; |
| 4596 |
edRes := 0; |
edRes := 0; |
| 4597 |
|
Thread.JumpAddress := 0; |
| 4598 |
// タブを生成 |
// タブを生成 |
| 4599 |
browserRec := InsertBrowserTab(Thread); |
browserRec := InsertBrowserTab(Thread); |
| 4600 |
if (browserRec <> nil) then begin |
if (browserRec <> nil) then begin |
| 4609 |
end; |
end; |
| 4610 |
end; |
end; |
| 4611 |
if ( stRes > 0 ) then begin |
if ( stRes > 0 ) then begin |
| 4612 |
browserRec.Movement := IntToStr( stRes ); |
Thread.JumpAddress := stRes; |
| 4613 |
end; |
|
| 4614 |
// ログを持っていないか JUMPすべきレス番号まで取得していないときはDLする |
// ログを持っていないか JUMPすべきレス番号まで取得していないときはDLする |
| 4615 |
if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin |
if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin |
| 4616 |
DownloadContent(Thread); |
DownloadContent(Thread); |
| 4617 |
end else if (not browserRec.Repaint) and (browserRec.Movement <> '') then begin |
end else if (not browserRec.Repaint) then begin |
| 4618 |
try |
try |
| 4619 |
//SetContent(browserRec); |
browserRec.Move(IntToStr(stRes)); |
| 4620 |
browserRec.Move(browserRec.Movement); |
Thread.JumpAddress := 0; |
| 4621 |
browserRec.Movement := ''; |
doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2; |
| 4622 |
doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2; |
Thread.ScrollTop := doc.Body.ScrollTop; |
| 4623 |
Thread.ScrollTop := doc.Body.ScrollTop; |
except |
| 4624 |
except |
end; |
| 4625 |
end; |
end; |
| 4626 |
end; |
end; |
| 4627 |
end; |
end; |
| 7217 |
s := MouseGesture.GetGestureStr; |
s := MouseGesture.GetGestureStr; |
| 7218 |
Action := GikoSys.Setting.Gestures.GetGestureAction(s); |
Action := GikoSys.Setting.Gestures.GetGestureAction(s); |
| 7219 |
if Action <> nil then |
if Action <> nil then |
| 7220 |
|
MouseGesture.OnGestureStart(nil); |
| 7221 |
Action.Execute; |
Action.Execute; |
| 7222 |
StatusBar.Panels[1].Text := ''; |
StatusBar.Panels[1].Text := ''; |
| 7223 |
end; |
end; |
| 7685 |
TOleControl(newBrowser).Align := alNone; |
TOleControl(newBrowser).Align := alNone; |
| 7686 |
TOleControl(newBrowser).Left := 0; |
TOleControl(newBrowser).Left := 0; |
| 7687 |
TOleControl(newBrowser).Top := 0; |
TOleControl(newBrowser).Top := 0; |
| 7688 |
|
newBrowser.RegisterAsDropTarget := False; |
| 7689 |
newBrowser.OnDocumentComplete := BrowserDocumentComplete; |
newBrowser.OnDocumentComplete := BrowserDocumentComplete; |
| 7690 |
newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
| 7691 |
newBrowser.OnEnter := BrowserEnter; |
newBrowser.OnEnter := BrowserEnter; |