TThreadItem = class(TObject)
private
FContext: DWORD; // \83v\83\89\83O\83C\83\93\82ª\8e©\97R\82É\90Ý\92è\82µ\82Ä\82¢\82¢\92l(\8eå\82É\83C\83\93\83X\83^\83\93\83X\82ª\93ü\82é)
-
FNo: Integer; //\94Ô\8d\86
FFileName: string; //\83X\83\8c\83b\83h\83t\83@\83C\83\8b\96¼
FTitle: string; //\83X\83\8c\83b\83h\83^\83C\83g\83\8b
FSize: Integer; //\83X\83\8c\83b\83h\83T\83C\83Y
FRound: Boolean; //\8f\84\89ñ\83t\83\89\83O
FRoundName: string; //\8f\84\89ñ\96¼
- //FRoundName: PChar; //\8f\84\89ñ\96¼
FIsLogFile: Boolean; //\83\8d\83O\91¶\8dÝ\83t\83\89\83O
FParentBoard: TBoard; //\90e\83{\81[\83h
FKokomade: Integer; //\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\94Ô\8d\86
FScrollTop: Integer; //\83X\83N\83\8d\81[\83\8b\88Ê\92u
FDownloadHost: string; //\8d¡\82Ì\83z\83X\83g\82Æ\88á\82¤\8fê\8d\87\82Ì\83z\83X\83g
FAgeSage: TGikoAgeSage; //\83A\83C\83e\83\80\82Ì\8fã\82°\89º\82°
-// FSPID: string; //\8f\91\82«\8d\9e\82Ý\97pSPID
-
FUpdate: Boolean;
FExpand: Boolean;
FURL : string; // \82±\82Ì\83X\83\8c\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é\8dÛ\82Ì URL
- //FBoardPlugIn : TBoardPlugIn; // \82±\82Ì\83X\83\8c\82ð\83T\83|\81[\83g\82·\82é\83v\83\89\83O\83C\83\93
- //FFilePath : string; // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
-
+ FJumpAddress : Integer; //\83\8c\83X\94Ô\8d\86\8ew\92èURL\82ð\93¥\82ñ\82¾\82Æ\82«\82É\8ew\92è\82³\82ê\82é\83\8c\83X\82Ì\94Ô\8d\86\82ª\93ü\82é
procedure SetLastModified(d: TDateTime);
procedure SetRound(b: Boolean);
procedure SetRoundName(const s: string);
property CreateDate: TDateTime read GetCreateDate;
property URL : string read FURL write FURL;
property FilePath : string read GetFilePath;
+ property JumpAddress : Integer read FJumpAddress write FJumpAddress;
end;
TBoardGroup = class(TStringList)
browserRec := InsertBrowserTab(Item.ThreadItem, True)
else
browserRec := InsertBrowserTab(Item.ThreadItem, False);
- if browserRec.Thread = BrowserNullTab.Thread then begin
- browserRec.Movement := BrowserNullTab.Movement;
- BrowserNullTab.Movement := '';
- end;
+// if browserRec.Thread = BrowserNullTab.Thread then begin
+// browserRec.Move(BrowserNullTab.Movement);
+// BrowserNullTab.Movement := '';
+// end;
end else begin
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then
InsertBrowserTab(Item.ThreadItem);
BrowserNullTab := TBrowserRecord.Create;
BrowserNullTab.Browser := Browser;
end;
- if BrowserNullTab.thread <> ThreadItem then begin
- BrowserNullTab.Movement := '';
- end;
+// if BrowserNullTab.thread <> ThreadItem then begin
+// BrowserNullTab.Movement := '';
+// end;
BrowserNullTab.thread := ThreadItem;
Result := BrowserNullTab;
BrowserTab.TabIndex := -1;
(Assigned(FActiveContent.Browser.Document)) then begin
try
try
- Sleep(1);
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;
except
on E: Exception do
if (not Assigned(Thread.Browser.Document)) then begin
Thread.Browser.Navigate('about:blank');
end;
-
while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
(Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
Application.ProcessMessages;
end;
end;
- //ActiveContent\81@\82Ì\8dX\90V
- FActiveContent := Thread;
+ 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);
+
+ ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
+ BrowserNameLabel.Left := ItemImage.Left + 20;
+
+ end;
if not ThreadIsLog then begin
Self.Caption := GikoDataModule.CAPTION_NAME ;
- //\83X\83e\81[\83^\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\82Ì\97e\97Ê\82ð\8fÁ\8b\8e
+ //\83X\83e\81[\83^\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\82Ì\97e\97Ê\82ð\8fÁ\8b\8e
StatusBar.Panels[THREADSIZE_PANEL].Text := '';
try
s := '<HTML><BODY><CENTER>\82±\82Ì\83X\83\8c\83b\83h\82Í\8eæ\93¾\82µ\82Ä\82¢\82Ü\82¹\82ñ</CENTER></BODY></HTML>';
end;
end else begin
Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']';
- //\83X\83e\81[\83^\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\82Ì\97e\97Ê\82ð\95\\8e¦
+ //\83X\83e\81[\83^\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\82Ì\97e\97Ê\82ð\95\\8e¦
StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]);
StatusBar.Panels[THREADSIZE_PANEL].Width :=
Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70);
Thread.Repaint := false;
Thread.Browser.OnStatusTextChange := nil;
- LockWindowUpdate(Thread.Browser.Handle);
+ LockWindowUpdate(Thread.Browser.ParentWindow);
+ //LockWindowUpdate(Thread.Browser.Handle);
HTMLCreater.CreateHTML2(
Idispatch( olevariant(Thread.Browser.ControlInterface).Document),
ThreadItem, sTitle);
- while ( (Thread.Browser.Document as IHTMLDocument2).readyState <> 'complete' ) do begin
- Application.ProcessMessages;
+
+ // \92\86\90g\82ª\93Ç\82Ý\8fI\82í\82é\82Ì\82ð\91Ò\82Â
+ while ( (((Thread.Browser.Document as IHTMLDocument2).body as IHTMLElement).document
+ as IHTMLDocument2).readyState <> 'complete' ) do begin
Sleep(1);
+ Application.ProcessMessages;
end;
Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
- if ThreadItem = nil then begin
- FActiveContent := nil;
- BrowserTab.Repaint;
- Exit;
- end;
//PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
end else begin
// JUMP\82ð\8ew\92è\82³\82ê\82Ä\82¢\82½\82çJUMP\82·\82é
- if (Thread.Movement <> '') then begin
- Thread.Move(Thread.Movement);
- Thread.Movement := '';
- end;
+ //if (Thread.Movement <> '') then begin
+ // Thread.Move(Thread.Movement);
+ // Thread.Movement := '';
+ //end;
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);
- ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
- BrowserNameLabel.Left := ItemImage.Left + 20;
+ //ActiveContent\81@\82Ì\8dX\90V
+ FActiveContent := Thread;
- //Thread\82Ì\94Â\82Æ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ª\93¯\82¶\82È\82ç\95`\89æ\82ð\8dX\90V\82·\82é
- if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then
- ListView.Refresh;
- end else begin
- FActiveContent := nil;
+ //Thread\82Ì\94Â\82Æ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ª\93¯\82¶\82È\82ç\95`\89æ\82ð\8dX\90V\82·\82é
+ if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then begin
+ ListView.Refresh;
end;
+
finally
Screen.Cursor := crDefault;
end;
Assigned( BrowserRecord.Thread ) then begin
threadItem := BrowserRecord.Thread;
- if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin
+ if (threadItem.JumpAddress > 0) then begin
+ //if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin
if threadItem.UnRead then begin
threadItem.UnRead := False;
TreeView.Refresh;
ListView.Refresh;
end;
// \83X\83N\83\8d\81[\83\8b\90æ\82ª\8eæ\93¾\8aO\82Ì\83\8c\83X\82Ì\8e\9e\82Í\8fI\92[\82É\88Ú\93®
- if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin
- BrowserRecord.Move(BrowserRecord.Movement);
- BrowserRecord.Movement := '';
+ //if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin
+ if (threadItem.JumpAddress <= BrowserRecord.Thread.Count) then begin
+ BrowserRecord.Move(IntToStr(threadItem.JumpAddress));
+ threadItem.JumpAddress := 0;
end else begin
BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count));
end;
begin
stRes := 0;
edRes := 0;
+ Thread.JumpAddress := 0;
// \83^\83u\82ð\90¶\90¬
browserRec := InsertBrowserTab(Thread);
if (browserRec <> nil) then begin
end;
end;
if ( stRes > 0 ) then begin
- browserRec.Movement := IntToStr( stRes );
- end;
- // \83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\82© JUMP\82·\82×\82«\83\8c\83X\94Ô\8d\86\82Ü\82Å\8eæ\93¾\82µ\82Ä\82¢\82È\82¢\82Æ\82«\82ÍDL\82·\82é
- if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin
- DownloadContent(Thread);
- end else if (not browserRec.Repaint) and (browserRec.Movement <> '') then begin
- try
- //SetContent(browserRec);
- browserRec.Move(browserRec.Movement);
- browserRec.Movement := '';
- doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2;
- Thread.ScrollTop := doc.Body.ScrollTop;
- except
+ Thread.JumpAddress := stRes;
+
+ // \83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\82© JUMP\82·\82×\82«\83\8c\83X\94Ô\8d\86\82Ü\82Å\8eæ\93¾\82µ\82Ä\82¢\82È\82¢\82Æ\82«\82ÍDL\82·\82é
+ if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin
+ DownloadContent(Thread);
+ end else if (not browserRec.Repaint) then begin
+ try
+ browserRec.Move(IntToStr(stRes));
+ Thread.JumpAddress := 0;
+ doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2;
+ Thread.ScrollTop := doc.Body.ScrollTop;
+ except
+ end;
end;
end;
end;
s := MouseGesture.GetGestureStr;
Action := GikoSys.Setting.Gestures.GetGestureAction(s);
if Action <> nil then
+ MouseGesture.OnGestureStart(nil);
Action.Execute;
StatusBar.Panels[1].Text := '';
end;
TOleControl(newBrowser).Align := alNone;
TOleControl(newBrowser).Left := 0;
TOleControl(newBrowser).Top := 0;
+ newBrowser.RegisterAsDropTarget := False;
newBrowser.OnDocumentComplete := BrowserDocumentComplete;
newBrowser.OnBeforeNavigate2 := BrowserBeforeNavigate2;
newBrowser.OnEnter := BrowserEnter;