TabAutoSaveAction: TAction;
TabAutoLoadAction: TAction;
ListColumnPopupMenu: TPopupMenu;
+ JumpToNumOfResAction: TAction;
+ FavoriteTreeViewCollapseAction: TAction;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CabinetPanelHide(Sender: TObject);
procedure TabAutoLoadActionExecute(Sender: TObject);
procedure ListViewColumnRightClick(Sender: TObject;
Column: TListColumn; Point: TPoint);
+ procedure JumpToNumOfResActionExecute(Sender: TObject);
+ procedure JumpToNumOfResActionUpdate(Sender: TObject);
+ procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
private
{ Private \90é\8c¾ }
//RoundList : TRoundList;
procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
- procedure SetActiveList(Obj: TObject);
+
procedure ListClick;
procedure ListDoubleClick(Shift: TShiftState);
procedure BrowserMovement(const AName: string); overload;
function LoadTabURLs : Boolean;
/// \83o\83\93\83h\95\9d\82ð\8dÄ\8cv\8eZ\81E\8dÄ\90Ý\92è\82·\82é
procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
- /// ListView \82Ì\83J\83\89\83\80\95\9d\82¨\82æ\82Ñ\88Ê\92u\82Ì\95Û\91¶
- procedure ActiveListColumnSave;
/// ListView \82Ì Column \82ð\90^\82Ì\83J\83\89\83\80\82É\95Ï\8a·
function ActiveListTrueColumn( column : TListColumn ) : TListColumn;
/// ListColumnPopupMenu \83A\83C\83e\83\80\82Ì\83N\83\8a\83b\83N\83C\83x\83\93\83g
{ Public \90é\8c¾ }
// FDownload: TDownload;
FControlThread: TThreadControl;
- procedure MoveToURL(URL: string);
- procedure InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);
+ procedure MoveToURL(const inURL: string);
+ function InsertBrowserTab(
+ ThreadItem : TThreadItem;
+ ActiveTab : Boolean = True
+ ) : TBrowserRecord;
procedure ReloadBBS;
function GetHttpState: Boolean;
procedure SetEnabledCloseButton(Enabled: Boolean);
function GetActiveContent: TThreadItem;
function GetActiveList: TObject;
- property ActiveList: TObject read GetActiveList write SetActiveList;
+
// property LastRoundTime: TDateTime read FLastRoundTime write FLastRoundTime;
procedure SetListViewType(AViewType: TGikoViewType); overload;
// property Favorite: TFavorite read FFavorite write FFavorite;
procedure SetToolBarPopup;
procedure ShowFavoriteAddDialog( Item : TObject );
- procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
- procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
+ procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
+ procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
property OddColor : TColor read FOddColor write FOddColor;
function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
procedure OnPlugInMenuItem( Sender : TObject );
- procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
-
+ procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
+ /// ListView \82Ì\83J\83\89\83\80\95\9d\82¨\82æ\82Ñ\88Ê\92u\82Ì\95Û\91¶ KuroutSetting\82©\82ç\82æ\82Ñ\82¾\82µ\82½\82¢\82Ì\82Å
+ procedure ActiveListColumnSave;
+ procedure SetActiveList(Obj: TObject);
+ property ActiveList: TObject read GetActiveList write SetActiveList;
published
property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
end;
TBrowserRecord = class( TObject )
private
FBrowser : TWebBrowser;
- FEvent: THTMLDocumentEventSink;//\83u\83\89\83E\83U\83h\83L\83\85\83\81\83\93\83g\83C\83x\83\93\83g
+ FEvent: THTMLDocumentEventSink; //!< \83u\83\89\83E\83U\83h\83L\83\85\83\81\83\93\83g\83C\83x\83\93\83g
FThread : TThreadItem;
FLastSize : Integer;
FRepaint : Boolean;
- // FOnlyHundred: Boolean;
+ FMovement : string; //!< \83X\83N\83\8d\81[\83\8b\90æ\83A\83\93\83J\81[
public
destructor Destroy; override;
property Browser : TWebBrowser read FBrowser write FBrowser;
property Thread : TThreadItem read FThread write FThread;
property LastSize : Integer read FLastSize write FLastSize;
property Repaint : Boolean read FRepaint write FRepaint;
-// property OnlyHundred : Boolean read FOnlyHundred write FOnlyHundred;
+ property Movement : string read FMovement write FMovement;
end;
var
USER_RESIZED = WM_USER + 2001;
USER_MINIMIZED = WM_USER + 2002;
USER_SETLINKBAR = WM_USER + 2003;
+ USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser
SELECTTIME_INTERBAL = 110;
BROWSER_COUNT = 5; //\83u\83\89\83E\83U\82Ì\90\94
//Samba24\82Ì\83t\83@\83C\83\8b\83`\83F\83b\83N
GikoSys.SambaFileExists();
- //\83^\83u\8e©\93®\93Ç\82Ý\8d\9e\82Ý (AV\94\90¶\82Ì\82½\82ß\88ê\8e\9e\95\95\88ó)
+ //\82É\82¿\82á\82ñ\8cê\83t\83@\83C\83\8b\93Ç\82Ý\8fo\82µ
end;
// CoolBar \82Ì\90Ý\92è\82ð\95Ï\90\94\82É\95Û\91¶
if GikoSys.Setting.TabAutoLoadSave then begin
TabAutoLoadAction.Execute;
end;
+ //\82É\82¿\82á\82ñ\8cê\88Ä\93à\83T\83|\81[\83g\8b@\94\
+ if GikoSys.Setting.GengoSupport then begin
+ //\97\\92è\92n
+ //Test\8cü\82¯
+ end;
+
FStartUp := true;
end;
end;
else
Item.SubItems[ idx ] := '';
- gbcLastModified:
- if ThreadItem.RoundDate = ZERO_DATE then begin
+ gbcRoundDate://gbcLastModified:
+ if (ThreadItem.RoundDate = ZERO_DATE) then begin
Item.SubItems[ idx ] := '';
end else
Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.RoundDate);
Item.SubItems[ idx ] := '';
end else
Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.CreateDate);
+
+ gbcLastModified:
+ if (ThreadItem.LastModified = ZERO_DATE) then begin
+ Item.SubItems[ idx ] := '';
+ end else
+ Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.LastModified);
+
+
end;
Inc( idx );
end;
gbcAllCount:
Item.SubItems[ idx ] := IntToStr(ThreadItem.AllResCount);
- gbcLastModified:
- if not GikoSys.Setting.CreationTimeLogs then
- if ThreadItem.CreateDate = ZERO_DATE then
- Item.SubItems[ idx ] := ''
- else
- Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.CreateDate);
+ gbcRoundDate://gbcLastModified:
+ Item.SubItems[ idx ] := '';
gbcCreated:
if ThreadItem.CreateDate = ZERO_DATE then begin
Item.SubItems[ idx ] := '';
end else
Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.CreateDate);
+
+ gbcLastModified:
+ Item.SubItems[ idx ] := '';
+
else
Item.SubItems[ idx ] := '';
end;
ActiveFileName: string;
e: IHTMLElement;
Ext: string;
- buf: string;
+ buf, buf2: string;
PathRec: TPathRec;
begin
if not( TObject(Sender) is TWebBrowser )then
end else begin
threadItem := GetActiveContent;
if Pos('about:blank..', Text) = 1 then begin
- if (AnsiPos('http://jbbs.livedoor.com/', threadItem.URL) <> 0) then begin
- URL := Copy(threadItem.URL, 1, LastDelimiter('/',threadItem.URL));
- Gikosys.GetPopupResNumber(Text,PathRec.FSt,PathRec.FTo);
- if ( PathRec.FSt <> 0 ) and ( PathRec.FTo <> 0 ) then
- buf := IntToStr(PathRec.FSt) + '-' + IntToStr(PathRec.FTo)
- else if( PathRec.FSt <> 0 ) then
- buf := IntToStr(PathRec.FSt);
- end else if AnsiPos('machi.to/bbs/', threadItem.URL) <> 0 then begin
- URL := threaditem.URL;
- buf := Copy(Text,AnsiPos('&st=',Text),Length(Text)-AnsiPos('&st=',Text) + 1);
+ wkInt := LastDelimiter( '/', threadItem.URL );
+ if Pos( '?', Copy( threadItem.URL, wkInt, MaxInt ) ) = 0 then begin
+ // Thread.URL \82Í PATH_INFO \93n\82µ
+ URL := Copy( threadItem.URL, 1, LastDelimiter( '/', threadItem.URL ) );
+ wkInt := LastDelimiter( '/', Text );
+ if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then
+ // Text \82à PATH_INFO \93n\82µ
+ URL := URL + Copy( Text, LastDelimiter( '/', Text ) + 1, MaxInt )
+ else
+ // Text \82Í QUERY_STRING \93n\82µ
+ URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt );
end else begin
- URL := Copy(threadItem.URL, 1, LastDelimiter('/',threadItem.URL));
- buf := Copy(Text,LastDelimiter('/',Text)+1,Length(Text)-LastDelimiter('/',Text));
+ // Thread.URL \82Í QUERY_STRING \93n\82µ
+ URL := Copy( threadItem.URL, 1, LastDelimiter( '?', threadItem.URL ) );
+ wkInt := LastDelimiter( '/', Text );
+ if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then begin
+ // Text \82Í PATH_INFO \93n\82µ
+ // URL \82É\94Â\82Æ\83L\81[\82ª\91«\82ç\82È\82¢\82Ì\82Å Text \82©\82ç\92¸\91Õ\82·\82é
+ wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) );
+ wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) );
+ URL := Copy( URL, 1, Length( URL ) - 1 ) + Copy( Text, wkInt, MaxInt );
+ end else begin
+ // Text \82à QUERY_STRING \93n\82µ
+ URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt )
+ end;
end;
- URL := URL + buf;
end else begin
URL := Text;
end;
+
PathRec := Gikosys.Parse2chURL2(URL);
if (PathRec.FNoParam) then begin
PathRec.FSt := 1;
PathRec.FTo := 1;
- end else
+ end else begin
Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
+ end;
GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
// wkIntTo := 1;
//if PathRec.FFirst then
// wkIntSt := 1;
- if PathRec.FStBegin then
- wkIntSt := 1;
- if PathRec.FToEnd then
- wkIntTo := 9999;
+ //if PathRec.FStBegin then //http://\81`\81`\81`\81`/-50\82Æ\82¢\82¤\82Æ\82«
+ // wkIntSt := 1; //
+ //if PathRec.FToEnd then //http://\81`\81`\81`\81`/50-\82Æ\82¢\82¤\82Æ\82«
+ // wkIntTo := 9999; // \82Ç\82¿\82ç\82Ì\8fê\8d\87\82à\81AGetPopupResNumber\82Å\82¤\82Ü\82\94Ô\8d\86\82ð\92²\90®\82·\82é\82Ì\82Å\82Ó\82æ\82¤\81B
//ATitle := ActiveFileName <> PathRec.FKey;
if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
procedure TGikoForm.ListViewKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
+var
+ pos : TPoint;
begin
if GetActiveList is TBoard then begin
- if Key = VK_BACK then begin
-// UpFolderButtonClick(Sender);
- end else if Key = VK_SPACE then begin
- ListDoubleClick(Shift);
- end else if Key = VK_RETURN then begin
- ListClick;
+ case Key of
+ VK_BACK:; // UpFolderButtonClick(Sender);
+ VK_SPACE: ListDoubleClick(Shift);
+ VK_RETURN: ListClick;
+ VK_APPS:
+ begin
+ if ListView.Selected <> nil then begin
+ pos.X := ListView.Column[ 0 ].Width;
+ pos.Y := ListView.Selected.Top;
+ end else begin
+ pos.X := ListView.Left;
+ pos.Y := ListView.Top;
+ end;
+ Windows.ClientToScreen( ListView.Handle, pos );
+ ListPopupMenu.Popup( pos.X, pos.Y );
+ end;
end;
end else begin // TBBS, TCategory
- if Key = VK_BACK then begin
-// UpFolderButtonClick(Sender);
- end else if Key = VK_SPACE then begin
- ListClick;
- end else if Key = VK_RETURN then begin
- ListDoubleClick(Shift);
+ case Key of
+ VK_BACK:; // UpFolderButtonClick(Sender);
+ VK_SPACE: ListClick;
+ VK_RETURN: ListDoubleClick(Shift);
+ VK_APPS:
+ begin
+ if ListView.Selected <> nil then begin
+ pos.X := ListView.Column[ 0 ].Width;
+ pos.Y := ListView.Selected.Top;
+ end else begin
+ pos.X := ListView.Left;
+ pos.Y := ListView.Top;
+ end;
+ Windows.ClientToScreen( ListView.Handle, pos );
+ ListPopupMenu.Popup( pos.X, pos.Y );
+ end;
end;
end;
end;
\90³\82µ\82¢\83J\83\89\83\80\82ª\93n\82³\82ê\82È\82¢\82½\82ß\81A\90³\82µ\82¢\83J\83\89\83\80\82É\95Ï\8a·\82µ\82Ü\82·\81B
*}
function TGikoForm.ActiveListTrueColumn( column : TListColumn ) : TListColumn;
+{*
var
i, idx : Integer;
orderList : TList;
+*}
begin
// \90³\82µ\82\95Ï\8a·\82·\82é\95û\96@\82ª\95ª\82©\82ç\82È\82¢\82Ì\82Å\95Û\97¯
GikoSys.Setting.BoardSortIndex := id;
GikoSys.Setting.BoardSortOrder := FSortOrder;
wkBoard.CustomSort(ThreadItemSortProc);
+ end else begin
+ id := 0;
end;
ListView.Refresh;
s: string;
boardPlugIn : TBoardPlugIn;
i: Integer;
+ browserRec : TBrowserRecord;
begin
try
if Item.DownType = gdtBoard then
ATitle := GikoSys.DivideStrLine(GikoSys.ReadThreadFile(Item.ThreadItem.GetThreadFileName, 1)).FTitle;
end;
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
- if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = Item.ThreadItem then
+ if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = Item.ThreadItem then begin
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
+ break;
+ end;
end;
if GikoSys.Setting.BrowserTabVisible then begin
if GetActiveContent = Item.ThreadItem then
- InsertBrowserTab(Item.ThreadItem)
+ browserRec := InsertBrowserTab(Item.ThreadItem)
else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then
- InsertBrowserTab(Item.ThreadItem, True)
+ browserRec := InsertBrowserTab(Item.ThreadItem, True)
else
- InsertBrowserTab(Item.ThreadItem, False);
+ browserRec := InsertBrowserTab(Item.ThreadItem, False);
+ if browserRec.Thread = BrowserNullTab.Thread then begin
+ browserRec.Movement := BrowserNullTab.Movement;
+ BrowserNullTab.Movement := '';
+ end;
end else begin
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then
InsertBrowserTab(Item.ThreadItem);
end;
-
+ Application.ProcessMessages;
if Item.State = gdsComplete then begin
PlaySound('New');
AddMessageList(ATitle + ' [\83X\83\8c\8eæ\93¾\8a®\97¹]', nil, gmiOK);
end;
end;}
-procedure TGikoForm.InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);
-
+function TGikoForm.InsertBrowserTab(
+ ThreadItem : TThreadItem;
+ ActiveTab : Boolean = True
+) : TBrowserRecord;
var
- i, j, idx: Integer;
- favItem : TFavoriteThreadItem;
+ i, j, idx : Integer;
+ favItem : TFavoriteThreadItem;
newBrowser : TBrowserRecord;
begin
+ Result := nil;
if Threaditem = nil then Exit;
if ThreadItem.IsLogFile then begin
for i := 0 to BrowserTab.Tabs.Count - 1 do begin
if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin
+ Result := TBrowserRecord( BrowserTab.Tabs.Objects[i] );
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = nil then begin
for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
BrowserTab.TabIndex := i;
end;
end;
+ Result := newBrowser;
if(ActiveTab) or (idx = -1) then begin
BrowserTab.OnChange(nil);
end;
BrowserNullTab.Browser := Browser;
end;
BrowserNullTab.thread := ThreadItem;
+ Result := BrowserNullTab;
BrowserTab.TabIndex := -1;
SetContent(BrowserNullTab);
end;
s: string;
// OldCursor: TCursor;
i: Integer;
- url: OleVariant;
idx: Integer;
ThreadItem: TThreadItem;
Thread: TBrowserRecord;
ThreadScrollTop: Integer;
ThreadIsLog, ThreadUnRead, ThreadNewArraical: boolean;
begin
+// AddMessageList('SetContent', nil, gmiWhat);
Thread := inThread;
idx := BrowserTab.TabIndex;
if (FActiveContent <> nil) and
try
+ {
if ThreadItem.UnRead then begin
ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;
TreeView.Refresh;
end;
+ }
if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin
if (FActiveContent.Browser <> BrowserNullTab.Browser) then
ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
Self.Caption := CAPTION_NAME + ' - [' + ThreadTitle + ']';
//Thread.Repaint\82Í\81A\83X\83L\83\93\93\99\82Ì\90Ý\92è\82ð\95Ï\8dX\82µ\82½\82Æ\82«\81AThread\82ð\83_\83E\83\93\83\8d\81[\83h\82µ\82½\82Æ\82«
//\90V\8bK\82ÉThread\82ð\8aJ\82¢\82½\82Æ\82«\82É\90^\82É\82È\82Á\82Ä\82¢\82é\81B
-// if(Thread.Repaint) or (Thread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin
if Thread.Repaint then begin
//Thread.LastSize := ThreadItem.Size;
Thread.Repaint := false;
- try
- Thread.Browser.OnStatusTextChange := nil;
- doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2;
- GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
-
- // if (Assigned(Thread.Browser)) and (Thread.Browser <> nil) then
- Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
- //\82È\82º\82©\82±\82±\82Å\96¾\8e¦\93I\82ÉDocumentComplete\82ð\8cÄ\82Î\82È\82¢\82Æ\82¤\82Ü\82\82¢\82©\82È\82¢
- //\92Ç\8bL\81@200406/19
- //Visible\82Ì\82Æ\82«\82µ\82©DocumentComplete\82Í\8cÄ\82Î\82ê\82È\82¢\82ç\82µ\82¢
- Thread.FBrowser.OnDocumentComplete(Thread.FBrowser, Thread.FBrowser.Parent, url);
-// Thread.OnlyHundred := GikoSys.OnlyAHundredRes;
- Application.ProcessMessages;
- //\82±\82±\82ÅApplication.ProcessMessages\82ð\8cÄ\82Ô\82±\82Æ\82É\82æ\82Á\82ÄWebBrowser\82ð\8dX\90V\82³\82¹\82é\81B
- //\91\8a\82µ\82È\82¢\82Æ\88ê\89æ\96Ê\95ª\82µ\82©\95`\89æ\82Å\82«\82Ä\82È\82¢\82Ì\82Å\82»\82ê\88È\8fã\82Ì\83X\83N\83\8d\81[\83\8b\97Ê\82ð\8ew\92è\82µ\82Ä\82à\96³\8cø\82É\82È\82é
- //\81@by\82à\82¶\82ã(2004/01/20)
- try
- //if (Assigned(Thread)) and (Assigned(ThreadItem))then begin
- if(Thread <> nil) and (ThreadItem <>nil) then begin
- if ThreadUnRead then
- BrowserMovement('new', Thread)
- else if ThreadScrollTop <> 0 then begin
- try
- doc.Body.ScrollTop := ThreadScrollTop;
- except
- on E: Exception do
- MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
- end;
- end;
- // end;
- end else begin
- FActiveContent := nil;
- BrowserTab.Repaint;
- Exit;
- end;
- except
- FActiveContent := nil;
- BrowserTab.Repaint;
- Exit;
- end;
- finally
- // Application.ProcessMessages;
+
+ Thread.Browser.OnStatusTextChange := nil;
+ doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2;
+ GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
+ Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
+ PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
+ if ThreadItem = nil then begin
+ FActiveContent := nil;
+ BrowserTab.Repaint;
+ Exit;
end;
end;
- ThreadItem.UnRead := False;
ListView.Refresh;
end;
if (Assigned(Thread)) and (Assigned(Thread.Thread)) and (Thread <> nil) and (ThreadItem <>nil) then begin
procedure TGikoForm.SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean);
var
Board: TBoard;
+ i: Integer;
begin
if ActiveList is TBoard then begin
+ for i := Length( BBSs ) - 1 downto 0 do begin
+ BBSs[i].SelectText := SelectText;
+ BBSs[i].KubetsuChk := KubetsuChk;
+ end;
Board := TBoard(ActiveList);
-
- Board.ParentCategory.ParenTBBS.SelectText := SelectText;
- Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk;
+// Board.ParentCategory.ParenTBBS.SelectText := SelectText;
+// Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk;
// Board.SelectText := SelectText;
// Board.KubetsuChk := KubetsuChk;
ViewType := AViewType;
var
listItem : TListItem;
threadItem : TThreadItem;
+ pos : TPoint;
// t: Cardinal;
begin
case Button of
else
ListClick;
end;
+ mbRight:
+ begin
+ pos.X := X;
+ pos.Y := Y;
+ Windows.ClientToScreen( ListView.Handle, pos );
+ ListPopupMenu.Popup( pos.X, pos.Y );
+ end;
end;
{ if ssDouble in Shift then begin
DoubleClickOccurred[Button] := True;
top := 0;
nm := AName;
item := OleVariant( activeBrower.Document as IHTMLDocument2).anchors.item(nm);
+ item.focus();
repeat
top := top + item.offsetTop;
item := item.offsetParent;
until AnsiCompareText(item.tagName, 'body' ) = 0;
-
OleVariant(activeBrower.Document as IHTMLDocument2).body.scrollTop := top;
except
end;
top := 0;
nm := AName;
item := OleVariant( activeBrower.Document as IHTMLDocument2).anchors.item(nm);
+ item.focus();
repeat
top := top + item.offsetTop;
item := item.offsetParent;
FDispHtmlDocument: DispHTMLDocument;
BrowserRecord :TBrowserRecord;
i :Integer;
+ doc : Variant;
+ threadItem : TThreadItem;
begin
-// AddMessageList('DocumentComplete', nil);
+// AddMessageList('DocumentComplete', nil, gmiWhat);
if TObject(Sender) is TWebBrowser then begin
+ BrowserRecord := nil;
if TWebBrowser(Sender) <> Browser then begin
- BrowserRecord := nil;
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(Sender) then begin
BrowserRecord := TBrowserRecord(BrowserTab.Tabs.Objects[i]);
BrowserRecord.FEvent.OnClick := WebBrowserClick; //\92Ç\89Á\82µ\82½OnClick\83C\83x\83\93\83g
end;
end else begin
- if GetActiveContent <> nil then begin
+ if GetActiveContent <> nil then begin
FDispHtmlDocument := Idispatch(OleVariant(Browser.ControlInterface).Document) as DispHTMLDocument;
if FEvent <> nil then
FEvent.Free;
FEvent.OnClick := WebBrowserClick; //\92Ç\89Á\82µ\82½OnClick\83C\83x\83\93\83g
end;
end;
+
+ if (BrowserRecord <> nil) and
+ Assigned( BrowserRecord.Thread ) then begin
+ threadItem := BrowserRecord.Thread;
+
+ if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin
+ if threadItem.UnRead then begin
+ threadItem.UnRead := False;
+ threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
+ if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0;
+ TreeView.Refresh;
+ ListView.Refresh;
+ end;
+ BrowserMovement( BrowserRecord.Movement, BrowserRecord );
+ BrowserRecord.Movement := '';
+ end else if threadItem.UnRead then begin
+ threadItem.UnRead := False;
+ threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
+ if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0;
+ TreeView.Refresh;
+ BrowserMovement( 'new', BrowserRecord );
+ ListView.Refresh;
+ end else if threadItem.ScrollTop <> 0 then begin
+ try
+ doc := Idispatch( OleVariant( BrowserRecord.Browser.ControlInterface ).Document ) as IHTMLDocument2;
+ doc.Body.ScrollTop := threadItem.ScrollTop;
+ except
+ on E: Exception do
+ MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
+ end;
+ end;
+ end;
end;
end;
end;
end;
-procedure TGikoForm.MoveToURL(URL: string);
-
+procedure TGikoForm.MoveToURL(const inURL: string);
var
protocol, host, path, document, port, bookmark : string;
- URL2, protocol2, host2, path2, document2, port2, bookmark2 : string;
+ URL, protocol2, host2, path2, document2, port2, bookmark2 : string;
tmp1, tmp2: string;
BBSID, BBSKey: string;
tmpBoard, Board: TBoard;
// boardNode : TTreeNode;
shiftDown : Boolean;
ctrlDown : Boolean;
+ stRes, edRes : Int64;
+ browserRec : TBrowserRecord;
begin
- GikoSys.ParseURI( URL, protocol, host, path, document, port, bookmark );
- GikoSys.Parse2chURL( URL, path, document, BBSID, BBSKey );
+ GikoSys.ParseURI( inURL, protocol, host, path, document, port, bookmark );
+ GikoSys.Parse2chURL( inURL, path, document, BBSID, BBSKey );
shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
- ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001);
- if shiftDown then begin
- GikoSys.OpenBrowser(URL, gbtUserApp);
- Exit;
- end else if ctrlDown then begin
- GikoSys.OpenBrowser(URL, gbtIE);
- Exit;
+ ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001);
+ if shiftDown then begin
+ GikoSys.OpenBrowser(inURL, gbtUserApp);
+ Exit;
+ end else if ctrlDown then begin
+ GikoSys.OpenBrowser(inURL, gbtIE);
+ Exit;
end;
//===== \83v\83\89\83O\83C\83\93
bi := High( BoardPlugIns );
for i := Low( BoardPlugIns ) to bi do begin
if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin
- case BoardPlugIns[ i ].AcceptURL( URL ) of
+ case BoardPlugIns[ i ].AcceptURL( inURL ) of
atThread:
begin
- tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL );
+ tmpThread := TThreadItem.Create( BoardPlugIns[ i ], inURL );
boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
Board := BBSsFindBoardFromURL( boardURL );
if Board = nil then begin
+ //break;
// \81¦\8dì\82Á\82Ä\82à\92Ç\89Á\82·\82é\82Æ\82±\82ë\82ª\96³\82¢\82Ì\82Å\8c\83\82µ\82\95Û\97¯
- //GikoSys.OpenBrowser(URL, gbtUserApp);
+ //GikoSys.OpenBrowser(inURL, gbtUserApp);
//Exit;
{
Board := GikoSys.GetUnknownBoard( tmpThread.BoardPlugIn, boardURL );
GikoSys.ReadSubjectFile( Board );
Exit;
end;
- end;
-
- ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName );
- if ThreadItem = nil then begin
- ThreadItem := tmpThread;
- Board.Insert( 0, ThreadItem );
- if ActiveList is TBoard then begin
- if TBoard(ActiveList) = Board then
- ListView.Items.Count := ListView.Items.Count + 1;
- end;
- InsertBrowserTab( ThreadItem );
- DownloadContent( ThreadItem );
- Exit;
- end else begin
- tmpThread.Free;
- InsertBrowserTab( ThreadItem );
- if not ThreadItem.IsLogFile then begin
+ ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName );
+ if ThreadItem = nil then begin
+ ThreadItem := tmpThread;
+ Board.Insert( 0, ThreadItem );
+ if ActiveList is TBoard then begin
+ if TBoard(ActiveList) = Board then
+ ListView.Items.Count := ListView.Items.Count + 1;
+ end;
+ GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+ browserRec := InsertBrowserTab( ThreadItem );
+ if (browserRec <> nil) and (stRes > 0) then
+ browserRec.Movement := IntToStr( stRes );
DownloadContent( ThreadItem );
+ Exit;
+ end else begin
+ tmpThread.Free;
+ GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+ browserRec := InsertBrowserTab( ThreadItem );
+ if ThreadItem.IsLogFile then begin
+ if (browserRec <> nil) and (stRes > 0) then
+ BrowserMovement( IntToStr( stRes ), browserRec );
+ end else begin
+ if (browserRec <> nil) and (stRes > 0) then
+ browserRec.Movement := IntToStr( stRes );
+ DownloadContent( ThreadItem );
+ end;
+ Exit;
end;
- Exit;
end;
-
- //Exit;
end;
atBoard:
begin
- tmpBoard := TBoard.Create(BoardPlugIns[ i ], URL);
+ tmpBoard := TBoard.Create(BoardPlugIns[ i ], inURL);
Board := BBSsFindBoardFromURL( tmpBoard.URL );
tmpBoard.Free;
if Board <> nil then begin
if (Length( Trim(BBSKey) ) > 0) and (Length( Trim(BBSID) ) > 0) then begin
- boardURL := GikoSys.Get2chThreadURL2BoardURL( URL );
+ boardURL := GikoSys.Get2chThreadURL2BoardURL( inURL );
Board := BBSsFindBoardFromURL( boardURL );
if Board = nil then
Board := BBSsFindBoardFromBBSID( BBSID );
end;
if Board = nil then begin
// \93ü\82é\82×\82«\94Â\82ª\8c©\82Â\82©\82ç\82È\82©\82Á\82½\82Ì\82Å\81A\95\81\92Ê\82Ì\83u\83\89\83E\83U\82Å\8aJ\82
- GikoSys.OpenBrowser(URL, gbtUserApp);
+ GikoSys.OpenBrowser(inURL, gbtUserApp);
Exit;
end else begin
// \8aO\95\94\82Ì\94Â\82È\82Ì\82É2ch\82ÌURL\82É\82³\82ê\82Ä\82µ\82Ü\82Á\82½\93z\82ð\82±\82±\82Å\8am\94F\82·\82é
- URL2 := Board.URL;
- GikoSys.ParseURI(URL2 , protocol2, host2, path2, document2, port2, bookmark2 );
+ URL := Board.URL;
+ GikoSys.ParseURI(URL , protocol2, host2, path2, document2, port2, bookmark2 );
tmp1 := Copy(host, AnsiPos('.', host) + 1, Length(host));
tmp2 := Copy(host2, AnsiPos('.', host2) + 1, Length(host2));
if ( not GikoSys.Is2chHost(tmp1)) and (tmp1 <> tmp2) then begin
- GikoSys.OpenBrowser(URL, gbtUserApp);
+ GikoSys.OpenBrowser(inURL, gbtUserApp);
Exit;
end;
end;
if not Board.IsThreadDatRead then
GikoSys.ReadSubjectFile(Board);
- URL := GikoSys.Get2chBrowsableThreadURL( URL );
+ URL := GikoSys.Get2chBrowsableThreadURL( inURL );
ThreadItem := Board.FindThreadFromURL( URL );
//\81@\89ß\8b\8e\83\8d\83O\91q\8cÉ\82©\82ç\81A\83_\83E\83\\82µ\82½\83X\83\8c\82ª\94\8c©\82Å\82«\82È\82¢\82Ì\82Å\82±\82±\82Å\92T\82·\82æ\82¤\82É\82·\82é (2004/01/22)
if ThreadItem = nil then begin
{shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001);
if shiftDown then
- GikoSys.OpenBrowser(URL, gbtUserApp)
+ GikoSys.OpenBrowser(URL1, gbtUserApp)
else if ctrlDown then
- GikoSys.OpenBrowser(URL, gbtIE)
+ GikoSys.OpenBrowser(URL1, gbtIE)
else begin
}
ThreadItem := TThreadItem.Create( nil, URL );
if TBoard(ActiveList) = Board then
ListView.Items.Count := ListView.Items.Count + 1;
end;
- InsertBrowserTab(ThreadItem);
+ GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+ browserRec := InsertBrowserTab(ThreadItem);
+ if (browserRec <> nil) and (stRes > 0) then
+ browserRec.Movement := IntToStr( stRes );
DownloadContent(ThreadItem);
{end;}
end else begin
- if ThreadItem.IsLogFile then
- InsertBrowserTab(ThreadItem)
- else begin
+ if ThreadItem.IsLogFile then begin
+ GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+ browserRec := InsertBrowserTab(ThreadItem);
+ if (browserRec <> nil) and (stRes > 0) then
+ browserRec.Movement := IntToStr( stRes );
+ end else begin
if AnsiPos(Host, Board.URL) = 0 then
ThreadItem.DownloadHost := Host
else
ThreadItem.DownloadHost := '';
- InsertBrowserTab(ThreadItem);
+ GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+ browserRec := InsertBrowserTab(ThreadItem);
+ if (browserRec <> nil) and (stRes > 0) then
+ browserRec.Movement := IntToStr( stRes );
DownloadContent(ThreadItem);
end;
end;
end else begin
- Board := BBSsFindBoardFromURL( URL );
+ Board := BBSsFindBoardFromURL( inURL );
if Board = nil then begin
- GikoSys.OpenBrowser(URL, gbtAuto);
+ GikoSys.OpenBrowser(inURL, gbtAuto);
end else begin
if FActiveBBS <> Board.ParentCategory.ParenTBBS then
ShowBBSTree( Board.ParentCategory.ParenTBBS );
end;
procedure TGikoForm.WndProc(var Message: TMessage);
+var
+ senderBrowser : TWebBrowser;
+ url : OleVariant;
begin
try
case Message.Msg of
OnMinimized;
USER_SETLINKBAR:
SetLinkBar;
+ USER_DOCUMENTCOMPLETE:
+ if (Message.WParam <> 0) and
+ (TObject(Message.WParam) is TWebBrowser) then begin
+ senderBrowser := TWebBrowser( Message.WParam );
+ BrowserDocumentComplete( senderBrowser, senderBrowser.Parent, url );
+ end;
end;
inherited;
end;
end;
// \90Ý\92è
- lResult := SendMessage( bar.Handle, RB_SETBANDINFO, i, Integer( pBandInfo ) );
+ lResult := SendMessage( bar.Handle, RB_SETBANDINFO, idx, Integer( pBandInfo ) );
end;
var
Wnd: THandle;
delta: Integer;
- browserPos : TPoint;
+// browserPos : TPoint;
const
ICON_SIZE = 16;
begin
- Wnd := WindowFromPoint(MousePos);
+ Wnd := WindowFromPoint(Mouse.CursorPos);
Handled := True;
if WheelDelta > 0 then
Delta := -1
Handled := False;
end else begin
FIsHandledWheel := True;
+ if (Wnd = TreeView.Handle) or (Wnd = FavoriteTreeView.Handle)
+ or (Wnd = ListView.Handle) or (Wnd = MessageListView.Handle)
+ then
+ SendMessage( Wnd, WM_MOUSEWHEEL, WheelDelta shl 16, (Mouse.CursorPos.X shl 16) or Mouse.CursorPos.Y )
+ else
+ Handled := False;
+
+{
// if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
// TWebBrowser \82Ì Handle \82Æ\94ä\8ar\82µ\82Ä\82à\88ê\92v\82µ\82È\82¢\82Ì\82Å\8dÀ\95W\82Å TWebBrowser \82©\82Ç\82¤\82©\94»\92è
browserPos.X := 0;
browserPos.Y := 0;
Windows.ClientToScreen( Browser.Handle, browserPos );
- if (Longword(MousePos.X - browserPos.X) >= Browser.Width)
- or (Longword(MousePos.Y - browserPos.Y) >= Browser.Height) then begin
+ if (Longword(Mouse.CursorPos.X - browserPos.X) >= Browser.Width)
+ or (Longword(Mouse.CursorPos.Y - browserPos.Y) >= Browser.Height)
+ or (Longword(Mouse.CursorPos.Y - browserPos.Y) < 0)
+ or (Longword(Mouse.CursorPos.Y - browserPos.Y) < 0) then begin
// or not FActiveContent.Browser.Focused then
// TWebBrowser \82Í\96³\8cÀ\83\8b\81[\83v\82·\82é\82Ì\82Å\82»\82ê\88È\8aO\82È\82ç\83R\83\93\83g\83\8d\81[\83\8b\82É\91\97\90M
- SendMessage( Wnd, WM_MOUSEWHEEL, WheelDelta shl 16, (MousePos.X shl 16) or MousePos.Y );
+ if (Wnd <> BrowserToolBar.Handle) and (Wnd <> BrowserNameToolBar.Handle) then
+ SendMessage( Wnd, WM_MOUSEWHEEL, WheelDelta shl 16, (Mouse.CursorPos.X shl 16) or Mouse.CursorPos.Y )
+ else
+ Handled := False;
end else begin
Handled := False;
end;
// end else begin
// SendMessage( Wnd, WM_MOUSEWHEEL, WheelDelta shl 16, (MousePos.X shl 16) or MousePos.Y );
// end;
- end;
+} end;
end;
end;
ModifySelectList;
end else if Length( SelectComboBox.Text ) = 0 then
begin
- AllItemAction.Checked := True;
- LogItemAction.Checked := False;
- NewItemAction.Checked := False;
+ {* SelectComboBox.Text\82ª\8bó\82Å\82à\81A\93ü\97Í\93r\92\86\82ÅEsc\82µ\82½\82Æ\82©
+ * \8bó\82Ì\82Æ\82«\82ÉDel\83L\81[\82ð\89\9f\82µ\82½\82Æ\82©\82È\82Ì\82Å\81A\83X\83\8c\82Ì\8di\8d\9e\82Ý\82ð\88Û\8e\9d\82·\82é\81B
+ * \81i\82±\82±\82Å\82Í\89½\82à\82µ\82È\82¢\81j
+ *}
end else begin
// \83`\83\89\82Â\82\82Æ\8c\99\82¾\82©\82ç\81A\88ê\89\9e\89\9f\82µ\82Ä\82 \82é\82Æ\82«\82¾\82¯\8f\88\97\9d\82·\82é
if AllItemAction.Checked then
procedure TGikoForm.FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
-
- Case Key of
- VK_F2:
- begin
- FClickNode := FavoriteTreeView.Selected;
- FavoriteTreeViewRenameActionExecute( Sender );
- end;
- VK_DELETE:
- begin
- FClickNode := FavoriteTreeView.Selected;
- FavoriteTreeViewDeleteActionExecute( Sender );
- end;
- VK_RETURN:
- begin
- FavoriteClick( FavoriteTreeView.Selected );
- FavoriteTreeView.Selected.Expanded := not FavoriteTreeView.Selected.Expanded;
+ if not TTreeView(Sender).IsEditing then begin
+ Case Key of
+ VK_F2:
+ begin
+ FClickNode := FavoriteTreeView.Selected;
+ FavoriteTreeViewRenameActionExecute( Sender );
+ end;
+ VK_DELETE:
+ begin
+ FClickNode := FavoriteTreeView.Selected;
+ FavoriteTreeViewDeleteActionExecute( Sender );
+ end;
+ VK_RETURN:
+ begin
+ FavoriteClick( FavoriteTreeView.Selected );
+ FavoriteTreeView.Selected.Expanded := not FavoriteTreeView.Selected.Expanded;
+ end;
+ VK_SPACE:
+ FavoriteTreeViewDblClick( Sender );
end;
- VK_SPACE:
- FavoriteTreeViewDblClick( Sender );
end;
end;
ThreadItem := FavThread.Item;
try
- s := ThreadItem.URL + #13#10 + ThreadItem.Title + #13#10;
+ s := ThreadItem.Title + #13#10 + ThreadItem.URL + #13#10;
if s <> '' then
Clipboard.AsText := s;
finally
GikoSys.ReadSubjectFile(Board);
try
- s := Board.URL + #13#10 + Board.Title + #13#10;
+ s := Board.Title + #13#10 + Board.URL + #13#10;
if s <> '' then
Clipboard.AsText := s;
finally
begin
if FDragWFirst <> true then begin
FDragWFirst := false;
- end else if (X = FMouseDownPos.X) and (Y = FMouseDownPos.Y) then begin
+{
+ end else if (abs( X - FMouseDownPos.X ) < Mouse.DragThreshold)
+ and (abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin
+(*}
+ end else begin
+//*)
if GikoSys.Setting.ListOrientation = gloHorizontal then begin
if GikoSys.Setting.ListWidthState = glsMin then begin
BrowserMaxAndFocusAction.Execute;
end;
// TreeView \82ª\83N\83\8a\83b\83N\82³\82ê\82½
procedure TGikoForm.TreeClick( Node : TTreeNode );
-var
- i: Integer;
begin
if Node = nil then
SelectListItem(List);
for i := 0 to List.Count - 1 do begin
if TObject(List[i]) is TThreadItem then begin
- TThreadItem(List[i]).UnRead := false;
- TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
+ if (TThreadItem(List[i]).UnRead) then begin
+ TThreadItem(List[i]).UnRead := false;
+ TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
+ end;
end;
end;
if TreeView.Visible then
TreeView.Refresh;
+ if ListView.Visible then
+ ListView.Refresh;
finally
List.Free;
end;
SelectListItem(List);
for i := 0 to List.Count - 1 do begin
if TObject(List[i]) is TThreadItem then begin
- TThreadItem(List[i]).UnRead := true;
- TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
+ if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin
+ TThreadItem(List[i]).UnRead := true;
+ TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
+ end;
end;
end;
if TreeView.Visible then
TreeView.Refresh;
+ if ListView.Visible then
+ ListView.Refresh;
finally
List.Free;
end;
procedure TGikoForm.TabsSaveToFileActionExecute(Sender: TObject);
var
SaveTabList: TStringList;
- Result: Boolean;
+ Result: Boolean;
begin
SaveTabList := TStringList.Create;
try
SetActiveList( FActiveList );
end;
+//\8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82Éjump\82·\82éAction
+procedure TGikoForm.JumpToNumOfResActionExecute(Sender: TObject);
+var
+ str: string;
+ res: integer;
+begin
+ str := '1';
+ if( InputQuery('\8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô', '\94Ô\8d\86\82ð\93ü\97Í\82µ\82Ä\82\82¾\82³\82¢', str) ) then begin
+ str := ZenToHan(str);
+ res := StrToIntDef(str, -1);
+ if (res > 0) and (res <= GetActiveContent.Count) then begin
+ BrowserMovement(IntToStr(res), FActiveContent);
+ SetFocusForBrowserAction.Execute;
+ end else if res > GetActiveContent.Count then begin
+ BrowserMovement(IntToStr(GetActiveContent.Count), FActiveContent);
+ SetFocusForBrowserAction.Execute;
+ end;
+ end;
+end;
+
+procedure TGikoForm.JumpToNumOfResActionUpdate(Sender: TObject);
+begin
+ JumpToNumOfResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
+end;
+
+procedure TGikoForm.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
+var
+ node : TTreeNode;
+begin
+
+ node := FavoriteTreeView.Items.GetFirstNode;
+ while node <> nil do begin
+ if node.HasChildren then
+ node.Expanded := False;
+ node := node.GetNext;
+ end;
+
+end;
initialization
OleInitialize(nil);