procedure LogFolderOpenActionUpdate(Sender: TObject);
procedure TabsSaveActionExecute(Sender: TObject);
procedure TabsOpenActionExecute(Sender: TObject);
- procedure TabsSaveToFileActionExecute(Sender: TObject);
- procedure TabsOpenFromFileActionExecute(Sender: TObject);
procedure OnlyAHundredResActionExecute(Sender: TObject);
procedure OnlyKokoResActionExecute(Sender: TObject);
procedure OnlyNewResActionExecute(Sender: TObject);
procedure SortActiveColumnActionExecute(Sender: TObject);
procedure SortNextColumnActionExecute(Sender: TObject);
procedure SortPrevColumnActionExecute(Sender: TObject);
+ procedure BrowserExit(Sender: TObject);
private
{ Private \90é\8c¾ }
//RoundList : TRoundList;
procedure IndividualAbonID(Atype : Integer);
//\82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ
procedure IndividualAbon(Atag, Atype : Integer);
+ //ID\83A\83\93\83J\81[\92Ç\89Á
+ procedure IDAnchorPopup(Abody :string);
published
property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
end;
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 );
idx: Integer;
wkIntSt: Integer;
wkIntTo: Integer;
- firstElement: IHTMLElement;
document: IHTMLDocument2;
begin
if wkIntSt <> 0 then begin
document := FActiveContent.Browser.Document as IHTMLDocument2;
- if Assigned(document) then
- firstElement := document.all.item('idSearch', 0) as IHTMLElement;
- if Assigned(firstElement) then
- if firstElement.style.visibility <> 'hidden' then
- firstElement.style.visibility := 'hidden';
-
+ IDAnchorPopup('');
BrowserMovement(IntToStr(wkIntSt));
end;
if ThreadItem = nil then begin
ThreadItem := Board.FindThreadFromFileName( BBSKey + '.dat' );
end;
-
if ThreadItem = nil then begin
//shift -> \90Ý\92è\83u\83\89\83E\83U\81i\96³\82¯\82ê\82ÎIE\81j
//ctrl -> IE
ThreadItem: TThreadItem;
begin
Result := False;
+ IDAnchorPopup('');
Doc := FactiveContent.FBrowser.Document as IHtmlDocument2;
if Assigned(Doc) then begin
Range := Doc.selection.createRange as IHTMLTxtRange;
procedure TGikoForm.AllResActionUpdate(Sender: TObject);
begin
- AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
+// AllResAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
end;
procedure TGikoForm.ReloadClick(Sender: TObject);
procedure TGikoForm.ResRangeActionUpdate(Sender: TObject);
begin
- ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
+// ResRangeAction.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);
end;
function TGikoForm.WebBrowserClick(Sender: TObject): WordBool;
+var
+ p : TPoint;
+ doc : Variant;
+ e: IHTMLElement;
+ AID: string;
+ stlist : TStringList;
+ i : Integer;
+ body : String;
begin
result := true;
try
if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then
- FActiveContent.FBrowser.SetFocus;
+ FActiveContent.Browser.SetFocus;
+ try
+ GetCursorPos(p);
+ p.x := p.x - FActiveContent.Browser.ClientOrigin.x;
+ p.y := p.y - FActiveContent.Browser.ClientOrigin.y;
+ e := IHTMLDocument2(FActiveContent.Browser.Document).elementFromPoint(p.x, p.y);
+ if (Assigned(e)) then begin
+ if (e.className = 'date') or (e.id = 'date') then begin
+ AID := e.innerText;
+ if AnsiPos('id', AnsiLowerCase(AID)) > 0 then
+ AID := Copy(AID, AnsiPos('id', AnsiLowerCase(AID)) - 1, 11)
+ else begin
+ stlist := TStringList.Create;
+ try
+ stList.DelimitedText := AID;
+ for i := 0 to stList.Count - 1 do
+ if Length(WideString(stList[i])) = 8 then begin
+ if GikoSys.NotDateorTimeString(stList[i]) then begin
+ AID := stList[i];
+ break;
+ end;
+ end;
+ finally
+ stList.Free;
+ end;
+ end;
+ body := GikoSys.GetSameIDResAnchor(AID, FActiveContent.Thread);
+ IDAnchorPopup(body);
+ end;
+ end;
+ except
+ end;
except
end;
end;
if not SaveTabURLs then begin
if TabsSaveAction.Tag = 0 then
- ShowMessage('\95Û\91¶\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ');
+ ShowMessage('\95Û\91¶\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ')
+ else if TabsSaveAction.Tag = 1 then
+ GikoForm.TabsOpenAction.Tag := -1;
end;
end;
var
SaveStringList: TStringList;
begin
- Result := false;
- if FileExists( GikoSys.GetAppDir + Filename) then begin
- if FileExists( GikoSys.GetAppDir + bFilename) then
- DeleteFile(GikoSys.GetAppDir + bFilename);
-
- //\83o\83b\83N\83A\83b\83v\82ð\8dì\82é\81B
- RenameFile(GikoSys.GetAppDir + Filename, GikoSys.GetAppDir + bFilename);
- end;
+ Result := false;
SaveStringList := TStringList.Create;
try
if GetTabURLs(SaveStringList) then begin
+ if FileExists( GikoSys.GetAppDir + Filename) then begin
+ if FileExists( GikoSys.GetAppDir + bFilename) then
+ DeleteFile(GikoSys.GetAppDir + bFilename);
+
+ //\83o\83b\83N\83A\83b\83v\82ð\8dì\82é\81B
+ RenameFile(GikoSys.GetAppDir + Filename, GikoSys.GetAppDir + bFilename);
+ end;
SaveStringList.SaveToFile(GikoSys.GetAppDir + Filename);
Result := true;
end;
procedure TGikoForm.TabsOpenActionExecute(Sender: TObject);
begin
- if not LoadTabURLs then begin
- if TabsOpenAction.Tag = 0 then
- ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
+ if TabsOpenAction.Tag <> -1 then begin
+ if not LoadTabURLs then begin
+ if TabsOpenAction.Tag = 0 then
+ ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
+ end;
end;
end;
GikoTab : TGikoTabAppend;
fileName : string;
begin
+
fileName := ExtractFilePath(Application.ExeName) + 'tab.sav';
URLs := TStringList.Create();
GikoTab := GikoSys.Setting.BrowserTabAppend;
try
try
- if FileExists(fileName) then
+ Result := True;
+ if FileExists(fileName) then begin
URLs.LoadFromFile(fileName);
+ bound := URLs.Count - 1;
+ if bound > -1 then begin
+ GikoSys.Setting.BrowserTabAppend := gtpLast;//TGikoTabAppend(1);
+ for i := 0 to bound do begin
+ item := BBSsFindThreadFromURL( URLs[ i ] );
+ if item <> nil then
+ InsertBrowserTab( item, false );
+ end;
+ end else
+ Result := False;
+ end else
+ Result := False;
except
- on EFOpenError do
+ on EFOpenError do begin
ShowMessage('\83^\83u\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ');
- end;
- bound := URLs.Count - 1;
- if bound = -1 then begin
- Result := False;
- Exit;
- end;
-
-
- GikoSys.Setting.BrowserTabAppend := gtpLast;//TGikoTabAppend(1);
- for i := 0 to URLs.Count - 1 do begin
- item := BBSsFindThreadFromURL( URLs[ i ] );
- if item <> nil then
- InsertBrowserTab( item, false );
+ end;
end;
finally
GikoSys.Setting.BrowserTabAppend := GikoTab;
URLs.Free;
end;
- Result := True;
-end;
-procedure TGikoForm.TabsSaveToFileActionExecute(Sender: TObject);
-var
- SaveTabList: TStringList;
- Result: Boolean;
-begin
- SaveTabList := TStringList.Create;
- try
- Result := GetTabURLs(SaveTabList);
-// if TabSaveDialog.Execute then begin
-// SaveTabList.SaveToFile(TabSaveDialog.FileName);
-// end;
- finally
- SaveTabList.Free;
- end;
-end;
-
-procedure TGikoForm.TabsOpenFromFileActionExecute(Sender: TObject);
-var
- i : Integer;
- item : TThreadItem;
- URLs : TStringList;
- GikoTab: TGikoTabAppend;
-begin
- URLs := TStringList.Create();
- GikoTab := GikoSys.Setting.BrowserTabAppend;
- try
- try
-// if TabOpenDialog.Execute then begin
-// URLs.LoadFromFile(TabOpenDialog.FileName);
-// end;
- except
- on EFOpenError do ShowMessage('\83^\83u\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ');
- end;
-
- GikoSys.Setting.BrowserTabAppend := gtpLast;//TGikoTabAppend(1);
- for i := 0 to URLs.Count - 1 do begin
- item := BBSsFindThreadFromURL( URLs[ i ] );
- if item <> nil then
- InsertBrowserTab( item, false );
- end;
- finally
- GikoSys.Setting.BrowserTabAppend := GikoTab;
- URLs.Free;
- end;
end;
procedure TGikoForm.OnlyAHundredResActionExecute(Sender: TObject);
var
ThreadItem : TThreadItem;
No : Integer;
- body, nCSS : string;
- firstElement: IHTMLElement;
- document: IHTMLDocument2;
- docAll: IHTMLElementCollection;
- doc : Variant;
+ body : string;
begin
No := KokoPopupMenu.Tag;
if No = 0 then Exit;
ThreadItem := GetActiveContent;
if ThreadItem = nil then Exit;
body := GikoSys.GetSameIDResAnchor(No, ThreadItem);
+ IDAnchorPopup(body);
+end;
+//ID\83A\83\93\83J\81[\92Ç\89Á
+procedure TGikoForm.IDAnchorPopup(Abody :string);
+var
+ firstElement: IHTMLElement;
+ document: IHTMLDocument2;
+ docAll: IHTMLElementCollection;
+ doc : Variant;
+ nCSS : string;
+begin
try
document := FActiveContent.Browser.Document as IHTMLDocument2;
docAll := document.all;
firstElement := docAll.item('idSearch', 0) as IHTMLElement;
if (Assigned(firstElement)) then begin
- if Length(body) > 0 then begin
+ if Length(Abody) > 0 then begin
doc := Idispatch( olevariant(FActiveContent.Browser.ControlInterface).Document) as IHTMLDocument2;
nCSS := '<p id="idSearch" style="position:absolute;top:' + IntToStr(doc.Body.ScrollTop + 10) + 'px;right:5px;' //
+ 'background-color:window; border:outset 1px infobackground; z-index:10; overflow-y:auto; border-top:none">'
- + body + '</p>';
+ + Abody + '</p>';
firstElement.outerHTML := nCSS;
firstElement.style.visibility := 'visible';
end else begin
end;
except
end;
-
end;
//\82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ
procedure TGikoForm.IndividualAbon1ActionExecute(Sender: TObject);
end;
+procedure TGikoForm.BrowserExit(Sender: TObject);
+begin
+ IDAnchorPopup('');
+end;
+
initialization
OleInitialize(nil);
finalization