程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> NativeXml (5):事件

NativeXml (5):事件

編輯:Delphi

unit Unit1; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, NativeXML{!}; 
 
type 
  TForm1 = class(TForm) 
    Button1: TButton; 
    Button2: TButton; 
    Memo1: TMemo; 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
  private 
    procedure XmlEvent(Sender: TObject; ANode: TXmlNode); //TsdXMLNodeEvent 事件 
  public 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
const 
  xmlFile = 'C:\Temp\xml_test_files\CDATA_section.XML'; //測試文件 
 
{測試 OnNodeNew 事件:開始載入節點時發生} 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  xml: TNativeXML; 
begin 
  Memo1.Clear; 
  xml := TNativeXML.Create(nil); 
  xml.OnNodeNew := XMLEvent; 
  xml.LoadFromFile(XMLFile); 
  XML.Free; 
end; 
 
{測試 OnNodeLoaded 事件:節點載入完成時發生} 
procedure TForm1.Button2Click(Sender: TObject); 
var 
  xml: TNativeXML; 
begin 
  Memo1.Clear; 
  xml := TNativeXML.Create(nil); 
  xml.OnNodeLoaded := XMLEvent; 
  xml.LoadFromFile(XMLFile); 
  XML.Free; 
end; 
 
{將被調用的事件, OnNodeNew 和 OnNodeLoaded 事件的參數格式是一樣的} 
procedure TForm1.XmlEvent(Sender: TObject; ANode: TXMLNode); 
var 
  depth: string; 
begin 
  if ANode.ElementType = xeElement then        //xeElement 是 TsdElementType 枚舉的類型之一 
  begin 
    depth := StringOfChar(#9, ANode.TreeDepth); //TreeDepth 是節點深度 
    Memo1.Lines.Add(depth + ANode.Name); 
  end; 
end; 
 
end. 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved