zoukankan      html  css  js  c++  java
  • NativeXml (5):事件


    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.
    

  • 相关阅读:
    UIImageView
    正则表达式
    控制器生命周期和 UIView
    Storyboard
    1218.2——property关键字
    1218.1——OC中的常见关键字及一些基本方法
    1217.2——定义一个类+方法声明调用
    1217.1——OC准备
    1216.2——文件操作
    1216.1——双链表
  • 原文地址:https://www.cnblogs.com/del/p/1994102.html
Copyright © 2011-2022 走看看