📄 fm_favorite.~pas
字号:
unit FM_Favorite;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, RzTreeVw, xmldom, XMLIntf, msxmldom, XMLDoc;
type
TFMFavorite = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
RzTreeView1: TRzTreeView;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit2: TEdit;
XMLDocument1: TXMLDocument;
procedure FormCreate(Sender: TObject);
procedure TreeViewLoadXML(XMLNode: IXMLNode; TreeNode: TTreeNode);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FMFavorite: TFMFavorite;
FavoriteName:String;
implementation
Uses
FM_RSS,FM_NewFolder;
{$R *.dfm}
procedure TFMFavorite.FormCreate(Sender: TObject);
var
XMLNode:IXMLNode;
begin
XMLDocument1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
XMLDocument1.Active:=true;
RzTreeView1.Items.Clear;
XMLNode:=XMLDocument1.Node.ChildNodes.Nodes[0];
RzTreeView1.Items.Add(nil,'我的收藏夹');
Application.ProcessMessages;
try
TreeViewLoadXML(XMLNode,RzTreeView1.Items[0]);
except
end;
RzTreeView1.Items[0].Expanded:=True;
XMLDocument1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
{ end
else
begin
XMLDocument1.Active:=True;
RzTreeView1.Items.Add(nil,'我的收藏夹');
XMLDocument1.AddChild('tree');
XMLDocument1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.xml');
XMLDocument1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
end; }
end;
procedure TFMFavorite.Button3Click(Sender: TObject);
var
Folder:TFMNFolder;
Item,ItemsParent:TTreeNode;
XMLDoc1:TXMLDocument;
XMLNode:IXMLNode;
SList:TStringList;
k:integer;
begin
if (RzTreeView1.Selected<>nil)and(RzTreeView1.Selected.ImageIndex<>11) then
begin
ShowForm:=False;
Folder:=TFMNFolder.Create(Self);
Folder.ShowModal;
XMLDoc1:=TXMLDocument.Create(Self);
XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.tmp';
XMLDoc1.Active:=True;
XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[0];
if RzTreeView1.Selected.Parent<>NIL THEN
BEGIN
SList:=TStringList.Create;
SList.Clear;
ItemsParent:=RzTreeView1.Selected.Parent;
k:=RzTreeView1.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;
XMLNode.ChildNodes.Nodes[k].AddChild('folder').Attributes['name']:=FavoriteName;
Item:=RzTreeView1.Items.AddChild(RzTreeView1.Selected,FavoriteName);
Item.SelectedIndex:=0;
Item.ImageIndex:=0;
end
else
begin
Item:=RzTreeView1.Items.AddChild(RzTreeView1.Selected,FavoriteName);
Item.SelectedIndex:=0;
Item.ImageIndex:=0;
XMLDoc1.Node.ChildNodes.Nodes[0].AddChild('folder').Attributes['name']:=FavoriteName;
end;
XMLDoc1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
XMLDoc1.Free;
end
else
Application.MessageBox('请选择添加节点','选择',MB_OK or MB_ICONWARNING)
end;
procedure TFMFavorite.TreeViewLoadXML(XMLNode: IXMLNode;
TreeNode: TTreeNode);
var
Item:TTreeNode;
i:integer;
XMLNode1:IXMLNode;
begin
for i:=0 to XMLNode.ChildNodes.Count-1 do
begin
if lowercase(XMLNode.ChildNodes.Nodes[i].NodeName)='folder' then
begin
Item:=RzTreeView1.Items.Addchild(TreeNode,XMLNode.ChildNodes.Nodes[i].Attributes['name']);
Item.SelectedIndex:=0;
Item.ImageIndex:=0;
TreeViewLoadXML(XMLNode.ChildNodes.Nodes[i],Item);
end;
if lowercase(XMLNode.ChildNodes.Nodes[i].NodeName)='favorite' then
begin
XMLNode1:=XMLNode.ChildNodes.Nodes[i];
XMLNode1:=XMLNode1.ChildNodes.Nodes[0];
Item:=RzTreeView1.Items.Addchild(TreeNode,XMLNode1.NodeValue);
Item.SelectedIndex:=11;
Item.ImageIndex:=11;
end;
end;
end;
procedure TFMFavorite.Button2Click(Sender: TObject);
begin
DeleteFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
Close;
end;
procedure TFMFavorite.Button1Click(Sender: TObject);
var
ItemsParent:TTreeNode;
XMLDoc1:TXMLDocument;
XMLNode,XMLNode1:IXMLNode;
SList:TStringList;
k:integer;
begin
if (RzTreeView1.Selected<>nil)and(RzTreeView1.Selected.ImageIndex<>11)and
(Edit1.Text<>'')and(Edit2.Text<>'') then
begin
XMLDoc1:=TXMLDocument.Create(Self);
XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.tmp';
XMLDoc1.Active:=True;
XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[0];
if RzTreeView1.Selected.Parent<>NIL THEN
BEGIN
SList:=TStringList.Create;
SList.Clear;
ItemsParent:=RzTreeView1.Selected.Parent;
k:=RzTreeView1.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].AddChild('favorite');
XMLNode1.AddChild('name').NodeValue:=Edit1.Text;
XMLNode1.AddChild('link').NodeValue:=Edit2.Text;
end
else
begin
XMLNode1:=XMLDoc1.Node.ChildNodes.Nodes[0].AddChild('favorite');
XMLNode1.AddChild('name').NodeValue:=Edit1.Text;
XMLNode1.AddChild('link').NodeValue:=Edit2.Text;
end;
XMLDoc1.SaveToFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
XMLDoc1.Free;
CopyFile(Pchar(ExtractFilePath(Application.ExeName)+'Favorite.tmp'),
pchar(ExtractFilePath(Application.ExeName)+'Favorite.xml'),false);
DeleteFile(ExtractFilePath(Application.ExeName)+'Favorite.tmp');
FMRSS.RzTreeView2.Items[0].DeleteChildren;
XMLDoc1:=TXMLDocument.Create(Self);
XMLDoc1.FileName:=ExtractFilePath(Application.ExeName)+'Favorite.xml';
XMLDoc1.Active:=True;
XMLNode:=XMLDoc1.Node.ChildNodes.Nodes[0];
FMrss.TreeView2LoadXML(XMLNode,FMRSS.RzTreeView2.Items[0]);
Close;
end
else
Application.MessageBox('请选择节点或填写名称','选择',MB_OK or MB_ICONWARNING)
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -