EndIndex: Integer; OldState, NewState: TItemStates);
procedure BrowserStatusTextChange(Sender: TObject;
const Text: WideString);
- procedure BrowserTitleChange(Sender: TObject; const Text: WideString);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
newBrowser.OnEnter := BrowserEnter;
newBrowser.OnNewWindow2 := BrowserNewWindow2;
newBrowser.OnStatusTextChange := BrowserStatusTextChange;
- newBrowser.OnTitleChange := BrowserTitleChange;
+ //newBrowser.OnTitleChange := BrowserTitleChange;
newBrowser.Navigate(BLANK_HTML);
ShowWindow(newBrowser.Handle, SW_HIDE);
FBrowsers.Add(newBrowser);
board : TBoard;
Protocol, Host, Path, Document, Port, Bookmark: string;
- //wkInt: Integer;
+ wkInt: Integer;
wkIntSt: Integer;
wkIntTo: Integer;
ActiveFileName: string;
if PreviewTimer.Enabled then
PreviewTimer.Enabled := False;
Application.CancelHint;
- if GetActiveContent <> nil then
- ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
- else
- ActiveFileName := '';
+ try
+ if GetActiveContent <> nil then
+ ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
+ else
+ ActiveFileName := '';
+ except
+ FActiveContent := nil;
+ Exit;
+ end;
StatusBar.Panels[1].Text := Text;
end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
wkIntTo := wkIntSt;
end else if wkIntSt > wkIntTo then begin
- //wkInt := wkIntTo;
+ wkInt := wkIntTo;
wkIntTo := wkIntSt;
- wkIntSt := wkIntTo;
+ wkIntSt := wkInt;
end;
//if wkIntSt = 0 then
// wkIntSt := 1;
end;
end;
-procedure TGikoForm.BrowserTitleChange(Sender: TObject;
- const Text: WideString);
-var
- Title: string;
-begin
- if (Text = BLANK_HTML) or (Text = GikoSys.GetHtmlTempFileName) then
- Title := CAPTION_NAME
- else
- Title := CAPTION_NAME + ' - [' + Text + ']';
- Caption := Title;
- //Application.Title := Title;
-end;
-
procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
var
SysMenu: HMenu;
newBrowser.Repaint := true;
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
- if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin
- {
- if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then
- FActiveContent := nil;
- BrowserTab.Tabs.Objects[ 0 ].Free;
- BrowserTab.Tabs.Objects[ 0 ] := newBrowser;
- BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20);
- }
- DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) );
+ BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
+ if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin
+ DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 1 ] ) );
end;// else begin
- BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
//end;
BrowserTab.Repaint;
if ActiveTab then begin
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
newBrowser.Repaint := true;
- if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin
- {
- if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then
- FActiveContent := nil;
- BrowserTab.Tabs.Objects[ 0 ].Free;
- BrowserTab.Tabs.Objects[ 0 ] := newBrowser;
- BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20);
- }
+ i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
+ if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) );
- end;// else begin
- i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
+ end;
//end;
BrowserTab.Repaint;
if ActiveTab then begin
- BrowserTab.TabIndex := i;
+ if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then
+ BrowserTab.TabIndex := 0
+ else
+ BrowserTab.TabIndex := i;
end;
end;
if(ActiveTab) or (idx = -1) then begin
finally
end;
end;
- if inThread = nil then
- Exit
- else if inThread.Thread = nil then begin
+ if not (Assigned(inThread)) or (inThread.Thread = nil) then begin
inThread.Browser.Navigate(BLANK_HTML);
BrowserBoardNameLabel.Caption := '';
ItemBoardImage.Picture := nil;
ReleaseCapture;
Screen.Cursor := crHourGlass;
+
+
try
if inThread.FThread.UnRead then begin
inThread.FThread.ParentBoard.UnRead := inThread.FThread.ParentBoard.UnRead - 1;
if (not Assigned(inThread.Browser.Document)) then begin
inThread.Browser.Navigate('about:blank');
end;
- //if inThread.Browser <> BrowserNullTab.Browser then begin
- while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and
- (inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
- Application.ProcessMessages;
- if idx <> BrowserTab.TabIndex then begin
- BrowserTab.OnChange(nil);
- Exit;
- end;
+ while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and
+ (inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
+ Application.ProcessMessages;
+ if idx <> BrowserTab.TabIndex then begin
+ FActiveContent := inThread;
+ //BrowserTab.OnChange(nil);
+ Exit;
end;
- //end;
+ end;
+ if not (Assigned(inThread)) or not (Assigned(inThread.Thread)) then begin
+ FActiveContent := nil;
+ Exit;
+ end;
if not inThread.FThread.IsLogFile then begin
+ Caption := CAPTION_NAME ;
try
s := '<HTML><BODY><CENTER>\82±\82Ì\83X\83\8c\83b\83h\82Í\8eæ\93¾\82µ\82Ä\82¢\82Ü\82¹\82ñ</CENTER></BODY></HTML>';
doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2;
finally
end;
end else begin
+ Caption := CAPTION_NAME + ' - [' + inThread.Thread.Title + ']';
//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(inThread.Repaint) or (inThread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin
//\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)
-
- if inThread.FThread.UnRead then
- BrowserMovement('new', inThread)
- else if inThread.FThread.ScrollTop <> 0 then begin
- try
- doc.Body.ScrollTop := inThread.FThread.ScrollTop;
- except
- on E: Exception do
- MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
+ try
+ if (Assigned(inThread)) and (Assigned(inThread.Thread))then begin
+ if inThread.FThread.UnRead then
+ BrowserMovement('new', inThread)
+ else if inThread.FThread.ScrollTop <> 0 then begin
+ try
+ doc.Body.ScrollTop := inThread.FThread.ScrollTop;
+ except
+ on E: Exception do
+ MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
+ end;
+ end;
+ end else begin
+ FActiveContent := nil;
+ BrowserTab.Repaint;
+ Exit;
end;
+ except
+ FActiveContent := nil;
+ BrowserTab.Repaint;
+ Exit;
end;
finally
// Application.ProcessMessages;
if (FActiveContent.Browser <> BrowserNullTab.Browser) then
ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
end;
- FActiveContent := inThread;
+ if (Assigned(inThread)) and (Assigned(inThread.Thread)) then begin
+ FActiveContent := inThread;
- BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title;
- ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
- BrowserNameLabel.Caption := inThread.FThread.Title;
- ItemImage.Picture := nil;
- if inThread.FThread.IsLogFile then
- if inThread.FThread.NewArrival then
- ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)
+ BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title;
+ ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
+ BrowserNameLabel.Caption := inThread.FThread.Title;
+ ItemImage.Picture := nil;
+ if inThread.FThread.IsLogFile then
+ if inThread.FThread.NewArrival then
+ ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)
+ else
+ ItemImageList.GetBitmap(0, 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;
+ ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap);
+ ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
+ BrowserNameLabel.Left := ItemImage.Left + 20;
+ end else begin
+ FActiveContent := nil;
+ end;
finally
Screen.Cursor := crDefault;
end;
function TGikoForm.GetActiveContent: TThreadItem;
begin
- if( FActiveContent <> nil) and (FActiveContent.Thread <> nil)then
- Result := FActiveContent.Thread
- else
+ try
+ if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))then
+ Result := FActiveContent.Thread
+ else begin
+ FActiveContent := nil;
+ Result := nil;
+ end;
+ except
+ FActiveContent := nil;
Result := nil;
+ end;
end;
procedure TGikoForm.SetActiveList(Obj: TObject);
FBrowsers.Move(4, 0);
end;
BrowserTab.Tabs.EndUpdate;
- BrowserTab.OnChange(nil);
+ if( FActiveContent = nil) then
+ BrowserTab.OnChange(nil);
Exit;
end;
end;
end;
BrowserTab.Tabs.EndUpdate;
- BrowserTab.OnChange(nil);
+ if( FActiveContent = nil) then
+ BrowserTab.OnChange(nil);
Exit;
end;
end;
end else begin
URL := GikoSys.GetHRefText(Html);
URL := GikoSys.HTMLDecode(URL);
- //\83A\83h\83\8c\83X\83o\81[\82Ì\97\9a\97ð
- if GikoSys.Setting.LinkAddAddressBar then begin
- idx := AddressComboBox.Items.IndexOf(URL);
- if idx = -1 then begin
- AddressComboBox.Items.Insert(0, URL);
- if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
- AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1);
- end else begin
- AddressComboBox.Items.Delete(idx);
- AddressComboBox.Items.Insert(0, URL);
+ if( AnsiPos('http://', URL) = 1) or (AnsiPos('https://', URL) = 1) or
+ ( AnsiPos('ftp://', URL) = 1) then begin
+ //\83A\83h\83\8c\83X\83o\81[\82Ì\97\9a\97ð
+ if GikoSys.Setting.LinkAddAddressBar then begin
+ idx := AddressComboBox.Items.IndexOf(URL);
+ if idx = -1 then begin
+ AddressComboBox.Items.Insert(0, URL);
+ if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
+ AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1);
+ end else begin
+ AddressComboBox.Items.Delete(idx);
+ AddressComboBox.Items.Insert(0, URL);
+ end;
end;
+ MoveToURL( URL );
end;
- MoveToURL( URL );
end;
end;
OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));
- if GikoSys.Setting.URLDisplay then
- AddressComboBox.Text := ThreadItem.URL;
+ if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then
+ AddressComboBox.Text := GetActiveContent.URL;
end;
end;
if not GikoSys.Setting.BrowserTabVisible then
if Item <> nil then
- if TObject( Item.Data ) is TThreadItem then
- SelectTimer.Enabled := True;
+ if (TObject( Item.Data ) is TThreadItem) then begin
+ if not SelectTimer.Enabled then begin
+ SelectTimer.Tag := 0;
+ SelectTimer.Enabled := True;
+ end else begin
+ SelectTimer.Tag := 0;
+ SelectTimer.Enabled := false;
+ SelectTimer.Enabled := True;
+ end;
+ end;
end;
procedure TGikoForm.SelectTimerTimer(Sender: TObject);
begin
- SelectTimer.Enabled := False;
- ListClick;
+ if SelectTimer.Tag = 0 then
+ SelectTimer.Tag := 1
+ else begin
+ SelectTimer.Tag := 0;
+ SelectTimer.Enabled := False;
+ ListClick;
+ end;
end;
initialization