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

📄 fm_rss.~pas

📁 realworld source code
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
         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
      break;
   XMLNode:=XMLNode.ChildNodes.Nodes[i+RzListView1.Selected.Index];
   for i:=0 to XMLnode.ChildNodes.Count-1 do
    if XMLNode.ChildNodes.Nodes[i].NodeName='read' then
      XMLNode.ChildNodes.Nodes[i].NodeValue:='Y';
   XMLDoc1.SaveToFile(ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml');
   j:=0;
   k:=0;
   for i:=0 to RzListView1.Items.Count-1 do
     if RzListView1.Items.Item[i].ImageIndex=1 then
        j:=j+1
     else
        k:=k+1;
   Item.SubItems.Strings[1]:='已读';
  // TempHTML(XMLtoHTML,Item.SubItems.Strings[0],XMLDoc1);
   RzStatusPane1.Caption:='频道:'+ChannelNames+'  总共有:'+inttostr(RzListView1.Items.Count)+'条新闻'+'  其中:'+inttostr(j)+'条已读  '+inttostr(k)+'条未读';
   RzStatusPane2.Caption:='地址:'+Item.SubItems.Strings[3];
   UrlList.Add(Item.SubItems.Strings[3]);
   A:=TRzTabsheet.Create(PageControl2);
   A.Caption:='正在打开网页...';
   A.ImageIndex:=11;
   A.ShowHint:=true;
   A.PopupMenu:=PopupMenu3;
   //A.Hint:=Item.SubItems.Strings[0];
   A.PageControl:=PageControl2;
   PageControl2.ActivePage:=A;
   wb:=TWEBBROWSER.Create(A);
   Twincontrol(wb).Parent := A;
   wb.Align:=alclient;
   wb.Navigate(Item.SubItems.Strings[3]);
   wb.OnDocumentComplete:=AOnDocumentComplete;
   wb.OnProgressChange:=BOnProgressChange;
   XMLDoc1.Free;
 end;
 except
 //
 end;
end;
procedure TFMRSS.AOnDocumentComplete(Sender: TObject; const pDisp: IDispatch;
  var URL: OleVariant);
var
  docX : Variant;
  titleX : Variant;
begin
 try
  docX := wb.Document;
  a.Caption:=CutString(docx.title)+'...';
  a.Hint:=docx.title;
  RzToolButton10.Enabled:=True;
 except
 end;
end;
procedure TFMRSS.BOnProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
begin
 try
  ProgressBar1.Max:=ProgressMax;
  ProgressBar1.Position:=Progress;
 except
 end;
end;
procedure TFMRSS.TempHTML(XMLFile: string;Title:string;XMLDoc1:TXMLDocument);
VAR
 i,j,k:integer;
 XMLNode:IXMLNode;
begin
  k:=0;
  TitleName1:=TStringList.Create;
  TitleName2:=TStringList.Create;
  TitleName3:=TStringList.Create;
  TitleName4:=TStringList.Create;
  TitleName1.Clear;
  TitleName2.Clear;
  TitleName3.Clear;
  TitleName4.Clear;
 for j:=0 to XMLDoc1.Node.ChildNodes.Count-1 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];
 k:=0;
 for i:=0 to XMLNode.ChildNodes.Count-1  do
   begin
    if lowercase(XMLNode.ChildNodes.Nodes[i].NodeName)='item' then
      for j:=0 to XMLNode.ChildNodes.Nodes[i].ChildNodes.Count-1 do
       if lowercase(XMLNode.ChildNodes.Nodes[i].ChildNodes.Nodes[j].NodeName)='title' then
         if XMLNode.ChildNodes.Nodes[i].ChildNodes.Nodes[j].ChildNodes.Nodes[0].NodeValue=title then
            k:=i;

   end;
 for i:=0 to XMLNode.ChildNodes.Nodes[K].ChildNodes.Count-1 do
  begin
   RStringList1(XMLNode,K,i,TitleName1);
   RStringList2(XMLNode,K,i,TitleName2);
   RStringList3(XMLNode,K,i,TitleName3);
   RStringList4(XMLNode,K,i,TitleName4);
  end;
 Cou:=TitleName1.Count;
 T_Name:='';
 CSSMenu();
end;

procedure TFMRSS.WebBrowser1ProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
begin
 ProgressBar1.Max:=ProgressMax;
 ProgressBar1.Position:=Progress;
end;

procedure TFMRSS.dxBarButton8Click(Sender: TObject);
var
 FMRAbout:TFMAbout;
begin
 FMRAbout:=TFMAbout.Create(self);
 FMRABOUT.ShowModal;
end;   

procedure TFMRSS.N11Click(Sender: TObject);
begin
 SaveTempHTML(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N11.Checked:=True;
end;
procedure TFMRSS.N12Click(Sender: TObject);
begin
 SaveTempHTML2(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N12.Checked:=True;
end;
procedure TFMRSS.N13Click(Sender: TObject);
begin
 SaveTempHTML3(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N13.Checked:=True;
end;
procedure TFMRSS.N14Click(Sender: TObject);
begin
 SaveTempHTML4(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N14.Checked:=True;
end;
procedure TFMRSS.N15Click(Sender: TObject);
begin
 SaveTempHTML5(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N15.Checked:=True;
end;
procedure TFMRSS.N16Click(Sender: TObject);
begin
 SaveTempHTML6(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N16.Checked:=True;
end;
procedure TFMRSS.N18Click(Sender: TObject);
begin
 SaveTempHTML8(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N17.Checked:=True;
end;
procedure TFMRSS.N17Click(Sender: TObject);
begin
 SaveTempHTML7(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N18.Checked:=True;
end;
procedure TFMRSS.N19Click(Sender: TObject);
begin
 SaveTempHTML9(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N19.Checked:=True;
end;
procedure TFMRSS.N20Click(Sender: TObject);
begin
 SaveTempHTML10(TitleName1,TitleName2,TitleName4,TitleName3,T_Name,Cou);
 N20.Checked:=True;
end;

procedure TFMRSS.dxBarButton29Click(Sender: TObject);
begin
 RzTreeView1.FullExpand;
end;

procedure TFMRSS.dxBarButton30Click(Sender: TObject);
begin
 RzTreeView1.FullCollapse;
end;

procedure TFMRSS.dxBarButton5Click(Sender: TObject);
var
 FOuptRss:TFMOuptRss;
begin
 FOuptRss:=TFMOuptRss.Create(self);
 FOuptRss.ShowModal;
end;

procedure TFMRSS.dxBarButton15Click(Sender: TObject);
VAR
 FInPutRss:TFMInPutRss;
begin
 FInPutRss:=TFMInPutRss.Create(self);
 FInPutRss.ShowModal; 
end;

procedure TFMRSS.dxBarButton23Click(Sender: TObject);
var
  ItemsParent,Item,Items:TTreeNode;
  XMLNode:IXMLNode;
  j,I,k:integer;
  SList:TStringList;
  Mark,XMLFileName:String;
  XMLDocu1:TXMLDocument;
begin
 if (RzTreeView1.Selected<>nil)and(RzTreeView1.Selected<>RzTreeView1.Items[0]) then
   begin
    i:=0;
    Item:=RzTreeView1.Selected;
    XML3.FileName:=ExtractFilePath(Application.ExeName)+'RSSChannel.xml';
    XML3.Active:=True;
    XMLNames:=XML3.Node.ChildNodes.Nodes[0];
    while Item<>nil do
     begin
      Item:=Item.GetNext;
      i:=i+1;
      try
       if Item.Parent=RzTreeView1.Selected.Parent then
        Break;
      except

      end;
     end;
    UpItem:=i;
    ItemCount:=RzTreeView1.Selected.AbsoluteIndex+i;
    for i:=0 to UpItem-1 do
     if LeftStr(RzTreeView1.Items[RzTreeView1.Selected.AbsoluteIndex+i].Text,1)=' ' then
      RzTreeView1.Items[RzTreeView1.Selected.AbsoluteIndex+i].Text:=MidStr(RzTreeView1.Items[RzTreeView1.Selected.AbsoluteIndex+i].Text,2,Length(RzTreeView1.Items[RzTreeView1.Selected.AbsoluteIndex+i].Text));
    for i:=0 to 3 do
     begin
      Thread1[i]:=TUpXMLChannel.Create(RzTreeView1.Selected.AbsoluteIndex+i);
     end;
   { 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;
         //  SList.Free;
  //  showmessage(inttostr(i));
   // application.MessageBox(pchar(inttostr(RzTreeView1.Selected.AbsoluteIndex)),'',mb_ok);

    try
     XMLDocu1:=TXMLDocument.Create(self);
     XMLDocu1.FileName:=ChannelNamesList;
     XMLDocu1.Active:=True;
     for j:=0 to XMLDocu1.Node.ChildNodes.Count-1 do
      if LowerCase(XMLDocu1.Node.ChildNodes.Nodes[j].NodeName)='rss' then
       Break;
     XMLNode:=XMLDocu1.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
       XMLNode.ChildNodes.Nodes[i].AddChild('read').NodeValue:='N';
     XMLtoHTML:=ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml';
     RzListView1.Items.Clear;
     ListViewLoadXML(XMLNode);
     XMLDocu1.SaveToFile(ExtractFilePath(Application.ExeName)+'Feed\'+XMLFileName+'.xml');
    except
     Application.MessageBox('数据读取错误','错误',MB_ok  OR MB_ICONWARNING);
    end;    }
    XMLDocu1.Free;
   end;
end;

procedure TFMRSS.dxBarButton22Click(Sender: TObject);
var
  ItemsParent:TTreeNode;
  XMLNode:IXMLNode;
  j,I:integer;
  SList:TStringList;
  XMLDocu1:TXMLDocument;
begin
 If RzTreeview1.Selected<>nil then
   begin
    j:=0;
    I:=0;
    SList:=TStringList.Create;
    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);
    XMLDocu1:=TXMLDocument.Create(self);
    XMLDocu1.FileName:=ExtractFilePath(Application.ExeName)+'RSSChannel.xml';
    XMLDocu1.Active:=True;
    XMLNode:=XMLDocu1.Node.ChildNodes.Nodes[0];
    if SList.Text<>'' then
      while SList.Text <>'' do
       begin
        XMLNode:=XMLNode.ChildNodes.Nodes[strtoint(SList.Strings[SList.Count-1])];
        SList.Delete(SList.Count-1);
       end;
    if Application.MessageBox(PChar('确实要删除'''+RzTreeView1.Selected.text+''''+'以及它以下的节点吗?'),'删除',MB_YesNo  OR MB_ICONQUESTION)=IDYes then
      begin
       XMLNode.ChildNodes.Delete(j);
       RzTreeVieW1.Selected.Delete;
      end;
   XMLDocu1.SaveToFile(ExtractFilePath(Application.ExeName)+'RSSChannel.xml');
   XMLDocu1.Free ;
 end;
end;

procedure TFMRSS.dxBarButton27Click(Sender: TObject);
var
  ItemsParent:TTreeNode;
  XMLNode:IXMLNode;
  j,I,k:integer;
  SList:TStringList;
  Mark,XMLFileName:String;
  XMLDoc1:TXMLDocument;
begin
 if (RzTreeView1.Selected.Text<>'')and(RzTreeView1.Selected.ImageIndex=3) then
   begin
    j:=0;
    I:=0;
    SList:=TStringList.Create;
    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;
     XMLDoc1.Free;
    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:='Y';
    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.dxBarButton28Click(Sender: TObject);
var
  ItemsParent:TTreeNode;
  XMLNode:IXMLNode;
  j,I,k:integer;
  SList:TStringList;
  Mark,XMLFileName:String;
  XMLDoc1:TXMLDocument;
begin
 if (RzTreeView1.Selected.Text<>'')and(RzTreeView1.Selected.ImageIndex=3) then
   begin
    j:=0;
    I:=0;
    SList:=TStringList.Create;

⌨️ 快捷键说明

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