📄 fm_rss.~pas
字号:
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 + -