⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm_rss.~pas

📁 realworld source code
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
    SList.Clear;
    ItemsParent:=RzTreeView1.Selected.Parent;
    j:=RzTreeView1.Selected.Index;
    while ItemsParent<>nil do
     begin
      SList.Add(inttostr(ItemsParent.index));
      ItemsParent:=ItemsParent.Parent;
     end;
    SList.Delete(SList.Count-1);
    XMLDoc1:=TXMLDocument.Create(self);
    XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'RSSChannel.xml';
    XMLDoc1.Active:=True;
    XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[0];
    SearchXML(XMLNode,SList,j);
    SList.Free;
    for i:=1 to Length(ChannelNamesList) do
     begin
      Mark:=MidStr(ChannelNamesList,i,1);
      if (Mark<>'=')and(Mark<>'/')and(Mark<>'\')and(Mark<>':')and(Mark<>'?')and(Mark<>'*')and(Mark<>'&')and(Mark<>'%')  then
        XMLFileName:=XMLFileName+Mark;
     end;
    try
     XMLDoc1:=TXMLDocument.Create(self);
     XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml';
     XMLDoc1.Active:=True;
     for j:=0 to XMLDoc1.Node.ChildNodes.Count do
       if LowerCase(XMLDoc1.Node.ChildNodes.Nodes[j].NodeName)='rss' then
         Break;
    XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[j];
    for k:=0 to XMLNode.ChildNodes.Count-1 do
     if LowerCase(XMLNode.ChildNodes.Nodes[k].NodeName)='channel' then
      break;
    XMLNode:=XMLNode.ChildNodes.Nodes[k];
    for i:=0 to XMLNode.ChildNodes.Count-1  do
     if LowerCase(XMLNode.ChildNodes.Nodes[i].NodeName)='item' then
      for j:=0 to XMLNode.ChildNodes.Nodes[i].ChildNodes.Count-1 do
       if XMLNode.ChildNodes.Nodes[i].ChildNodes.Nodes[j].NodeName='read' then
            XMLNode.ChildNodes.Nodes[i].ChildNodes.Nodes[j].NodeValue:='N';
    XMLDoc1.SaveToFile(ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml');
    RzListView1.Clear;
    XMLtoHtml:=ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml';
    ListViewLoadXML(XMLNode);
    except
     Application.MessageBox('数据读取错误','错误',MB_ok  OR MB_ICONWARNING);
    end;
    XMLDoc1.Free;
   end;
end;

procedure TFMRSS.dxBarLargeButton15Click(Sender: TObject);
begin
{if dxBarCombo1.Text='Google' then
 ShellExecute(handle,'open',PChar('http://www.google.com/search?hl=zh-CN&ie=GB2312&q='+dxBarEdit1.Text),nil,nil,sw_show);
if dxBarCombo1.Text='百度' then
 ShellExecute(handle,'open',PChar('http://www.baidu.com/s?wd='+dxBarEdit1.Text+'&cl=3'),nil,nil,sw_show); }
end;

procedure TFMRSS.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  docX : Variant;
  titleX : Variant;
begin
  docX := WebBrowser1.Document;
  tabsheet3.Caption:=docx.title;
end;

procedure TFMRSS.RzTreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
 if RightStr(node.Text,1)=#10 then
   with (sender as trztreeview).Canvas do
     begin
      Font.Color :=clBlack;
      Font.Style:=[fsbold];
     end;
 if  cdsSelected  in state then
  begin
   (sender as trztreeview).Canvas.Font.Color :=clwindow;
  end;                                                         
end;

procedure TFMRSS.RzToolButton7Click(Sender: TObject);
begin
 if rzpanel3.Visible then
   Rzpanel3.Visible:=False
 else
   Rzpanel3.Visible:=True;
end;


procedure TFMRSS.btnEditsClick(Sender: TObject);
var
 i,j:integer;
begin
RzTreeView1.SetFocus;
if btnEdits.Caption='全部更新' then
 begin
  XML3.Active:=False;
  XML3.FileName:=ExtractFilePath(Application.ExeName)+'RSSChannel.xml';
  XML3.Active:=True;
  XMLNames:=XML3.Node.ChildNodes.Nodes[0];
  btnEdits.Caption:='停止更新';
  btnEdits.ImageIndex:=6;
  btnEdits.HotIndex:=6;
  btnEdits.DisabledIndex:=6;
  btnEdits.DownIndex:=6;
  UpItem:=RzTreeView1.Items.Count;
  ItemCount:=UpItem;
  for i:=0 to RzTreeView1.Items.Count-1 do
   if LeftStr(RzTreeView1.Items[i].Text,1)=' ' then
     RzTreeView1.Items[i].Text:=MidStr(RzTreeView1.Items[i].Text,2,Length(RzTreeView1.Items[i].Text));
  for i:=0 to 3 do
   begin
    Sleep(200);
    Thread1[i]:=TUpXMLChannel.Create(i+1);
   end;
  end
else
 begin
  for i:=0 to 3 do
   begin
   // Thread1[i].WaitFor;
   // Thread1[i].Suspend;
   // Thread1[i].Free;
   end;
  btnEdits.Caption:='全部更新';
  btnEdits.ImageIndex:=2;
  btnEdits.HotIndex:=2;
  btnEdits.DisabledIndex:=2;
  btnEdits.DownIndex:=2;
 end;
end;

procedure TFMRSS.N37Click(Sender: TObject);
begin
try
 if PageControl2.ActivePage.Name='' then
  begin
   uRLList.Delete(PageControl2.ActivePageIndex-1);
   PageControl2.ActivePage.Free;
   Pagecontrol2.SelectNextPage(False);
  end;
except
end;
end;

procedure TFMRSS.N49Click(Sender: TObject);
var
 i:integer;
begin
try
 for i:=1 to PageControl2.PageCount-1 do
  begin
   pagecontrol2.ActivePageIndex:=PageControl2.PageCount-1;
   PageControl2.ActivePage.Free;
  end;
 pagecontrol2.ActivePageIndex:=0;
 urllist.Clear;
except
end;
end;

procedure TFMRSS.RzTreeView1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 if Button=mbRight then
   (Sender AS TrzTreeView).Selected:=(Sender AS TrzTreeView).GetNodeAt(X,y);
end;

procedure TFMRSS.N51Click(Sender: TObject);
begin
 if N51.Checked then
   RzToolBar2.Visible:=True
 else
   RzToolBar2.Visible:=False;
end;

procedure TFMRSS.N52Click(Sender: TObject);
begin
 if N52.Checked then
   RzStatusBar1.Visible:=True
 else
   RzStatusBar1.Visible:=False;
end;

procedure TFMRSS.RzToolbar1Resize(Sender: TObject);
begin
 RzStandard.Width:=Rztoolbar1.Width-338;
end;

procedure TFMRSS.RzToolButton10Click(Sender: TObject);
var
 Favorite:TFMFavorite ;
// LocationA,LocationB:integer;
begin
 if (PageControl2.PageCount>1)and(PageControl2.ActivePageIndex<>0) then
   begin
   // showmessage(Urllist.Text);
    Favorite:=TFMFavorite.Create(Self);
   // LocationA:=Length(UrlList.Strings[PageControl2.ActivePageIndex-1]);
   // LocationB:=Pos('#10', UrlList.Strings[PageControl2.ActivePageIndex-1]);
    Favorite.Edit1.Text:=PageControl2.ActivePage.Hint;
    Favorite.Edit2.Text:=UrlList.Strings[PageControl2.ActivePageIndex-1];
    Favorite.ShowModal;
   end;
end;

procedure TFMRSS.N55Click(Sender: TObject);
var
 Folder:TFMNFolder;
begin
if RzTreeView2.Selected<>nil then
 begin
 if (RzTreeView2.Selected.ImageIndex<>11) then
  begin
   ShowForm:=True;
   Folder:=TFMNFolder.Create(Self);
   Folder.ShowModal;
  end
 else
  Application.MessageBox('不可以在文件节点添加文件夹','错误',MB_OK OR MB_ICONWARNING);
 end
else
   Application.MessageBox('请选择一个节点','错误',MB_OK OR MB_ICONWARNING);
end;

procedure TFMRSS.RzToolButton11Click(Sender: TObject);
begin
 if (RzSplitter1.position<>0)or(RzSplitter2.position<>0) then
  begin
   RzSplitter1.position:=0;
   RzSplitter2.position:=0;
  end
 else
  begin
   RzSplitter1.position:=207;
   RzSplitter2.position:=142;
  end;
end;

procedure TFMRSS.FormResize(Sender: TObject);
begin
 RzSplitter1.Position:=207;
 RzSplitter2.Position:=142;
end;


procedure TFMRSS.N57Click(Sender: TObject);
var
  ItemsParent:TTreeNode;
  XMLNode:IXMLNode;
  j,I:integer;
  SList:TStringList;
  XMLDocu1:TXMLDocument;
begin
 If RzTreeview2.Selected<>nil then
   if Application.MessageBox('确实要删除吗?','删除',MB_YesNo  OR MB_ICONQUESTION)=IDYes then
    begin
    j:=0;
    I:=0;
    SList:=TStringList.Create;
    SList.Clear;
    ItemsParent:=RzTreeView2.Selected.Parent;
    j:=RzTreeView2.Selected.Index;
    while ItemsParent<>nil do
     begin
      SList.Add(inttostr(ItemsParent.index));
      ItemsParent:=ItemsParent.Parent;
     end;
    SList.Delete(SList.Count-1);
    XMLDocu1:=TXMLDocument.Create(self);
    XMLDocu1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
    XMLDocu1.Active:=True;
    XMLNode:=XMLDocu1.Node.ChildNodes.Nodes[0];
    if SList.Text<>'' then
     begin
      while SList.Text <>'' do
       begin
        XMLNode:=XMLNode.ChildNodes.Nodes[strtoint(SList.Strings[SList.Count-1])];
        SList.Delete(SList.Count-1);
       end;
      XMLNode.ChildNodes.Delete(j);
     end
    else
   XMLNode.ChildNodes.Delete(j);
   XMLDocu1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.xml');
   RzTreeVieW2.Selected.Delete;
   XMLDocu1.Free;
 end;
end;

procedure TFMRSS.N56Click(Sender: TObject);
var
 NName:TFMNewName;

begin
 NName:=TFMNewName.Create(Self);
 NName.Edit1.Text:=RzTreeView2.Selected.Text;
 NName.ShowModal;
end;

procedure TFMRSS.N60Click(Sender: TObject);
var
 SaveFavorite:TXMLDocument;
begin
 if SaveDialog1.Execute then
   begin
    SaveDialog1.Title:='导出收藏夹' ;
    SaveFavorite:=TXMLDocument.Create(Self);
    SaveFavorite.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
    SaveFavorite.Active:=True;
    SaveFavorite.SaveToFile(SaveDialog1.FileName);
    SaveFavorite.Free;
   end;
end;

procedure TFMRSS.N59Click(Sender: TObject);
var
 OpenFavorite,Favorite:TXMLDocument;
 XMLNode,XMLNode1:IXMLNode;
 i,j:integer;
begin
 if OpenDialog1.Execute then
  begin
   OpenDialog1.Title:='导入收藏夹';
   OpenFavorite:=TXMLDOCUMENT.Create(Self);
   OpenFavorite.FileName:=OpenDialog1.FileName;
   OpenFavorite.Active:=True;
   Favorite:=TXMLDOCUMENT.Create(Self);
   Favorite.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
   Favorite.Active:=True;
   XMLNode:=Favorite.ChildNodes.Nodes[0];
   for i:=0 to OpenFavorite.Node.ChildNodes.Count do
    if LowerCase(OpenFavorite.Node.ChildNodes.Nodes[i].NodeName)='tree' then
      Break;
    XMLNode1:=OpenFavorite.Node.ChildNodes.Nodes[i];
   if XMLNode1.NodeName='tree' then
    if Application.MessageBox('您是否要保留当前收藏夹中的内容','导入',MB_YESNO or MB_ICONQUESTION)=IDYes THEN
      begin
       for i:=0 to XMLNode1.ChildNodes.Count-1 do
        XMLNode.ChildNodes.Add(XMLNode1.ChildNodes.Nodes[i]);
       Favorite.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.xml');
       RzTreeView2.Items[0].DeleteChildren;
       TreeView2LoadXML(XMLNode,RzTreeView2.Items[0]);
      end
    else
      begin
       OpenFavorite.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.xml');
       RzTreeView2.Items[0].DeleteChildren;
       TreeView2LoadXML(XMLNode,RzTreeView2.Items[0]);
      end
   else
     Application.MessageBox('导入文件不是有效的收藏夹文件,请重新导入!','导入',MB_OK or MB_ICONWARNING);
  OpenFavorite.Free;
  Favorite.Free;
  end;
end;

procedure TFMRSS.RzTreeView2DblClick(Sender: TObject);
var
 Item,ItemsParent:TTreeNode;
 XMLDoc1:TXMLDocument;
 XMLNode,XMLNode1:IXMLNode;
 SList:TStringList;
 k:integer;
begin
if (RzTreeView2.Selected<>nil)and(RzTreeView2.Selected.ImageIndex=11) then
 begin
  XMLDoc1:=TXMLDocument.Create(Self);
  XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
  XMLDoc1.Active:=True;
  XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[0];
  SList:=TStringList.Create;
  SList.Clear;
  ItemsParent:=RzTreeView2.Selected.Parent;
  k:=RzTreeView2.Selected.Index;
  while ItemsParent<>nil do
   begin
    SList.Add(inttostr(ItemsParent.index));
    ItemsParent:=ItemsParent.Parent;
   end;
  SList.Delete(SList.Count-1);
  while SList.Text <>'' do
   begin
    XMLNode:=XMLNode.ChildNodes.Nodes[strtoint(SList.Strings[SList.Count-1])];
    SList.Delete(SList.Count-1);
   end;
   XMLNode1:=XMLNode.ChildNodes.Nodes[k];
   if RightStr(XMLNode1.ChildNodes.Nodes[1].NodeValue,3)=lowercase('xml') then
    begin
     try
      AddRss(XMLNode1.ChildNodes.Nodes[1].NodeValue);
     except
     end;
    end
   else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -