站内搜索

delphi学习:两种方法使用xml文档

使用xml broker, 是delphi 内置的。例: 
  unit ShowXML; 
  interface 
  uses Classes HTTPApp Db DbClient Midas 
  XMLBrokr WebComp MidItems; 
  type 
  TCustomShowXMLButton = class(TXMLButton IScriptComponent) 
  protected 
  XMLMethodName: string; 
  { IScriptComponent } 
  procedure AddElements(AddIntf: IAddScriptElements); 
  function GetSubComponents: TObject; 
  { IWebContent implementation } 
  function ImplContent(Options: TWebContentOptions; 
  ParentLayout: TLayout): string; override; 
  end; 
  TShowXMLButton = class(TCustomShowXMLButton) 
  public 
  constructor Create(AOwner: TComponent); override; 
  published 
  property Custom; 
  property Style; 
  property StyleRule; 
  property Caption; 
  property XMLBroker; 
  property XMLUseParent; 
  end; 
  TShowDeltaButton = class(TCustomShowXMLButton) 
  public 
  constructor Create(AOwner: TComponent); override; 
  published 
  property Custom; 
  property Style; 
  property StyleRule; 
  property Caption; 
  property XMLBroker; 
  property XMLUseParent; 
  end; 
  implementation 
  uses sysutils MidProd; 
  resourcestring 
  sShowXML = 'Show XML'; 
  sShowDelta = 'Show Delta'; 
  procedure TCustomShowXMLButton.AddElements( 
  AddIntf: IAddScriptElements); 
  begin 

AddIntf.AddIncludeFile('xmlshow.js'); 
  end; 
  function TCustomShowXMLButton.GetSubComponents: TObject; 
  begin 
  Result := nil; 
  end; 
  function TCustomShowXMLButton.ImplContent(Options: TWebContentOptions; 
  ParentLayout: TLayout): string; 
  var 
  Attrs: string; 
  Intf: ILayoutWebContent; 
  FormVarName: string; 
  RowSetVarName: string; 
  begin 
  AddQuotedAttrib(Attrs 'NAME' Name); 
  AddQuotedAttrib(Attrs 'STYLE' Style); 
  AddQuotedAttrib(Attrs 'CLASS' StyleRule); 
  AddQuotedAttrib(Attrs 'VALUE' Self.Caption); 
  AddCustomAttrib(Attrs Custom); 
  if Assigned(XMLData.XMLBroker) then 
  begin 
  FormVarName := XMLData.XMLBroker.SubmitFormVarName; 
  RowSetVarName := XMLData.XMLBroker.RowSetVarName(nil); // Row row set var name 
  end; 
  if not (coNoScript in Options.Flags) then 
  Result := 
  Format(''#13#10 
  [Attrs RowSetVarName XMLMethodName sXMLReadyVar]) 
  else 
  Result := 
  Format(''#13#10 
  [Attrs]); 
  if Assigned(ParentLayout) and ParentLayout.GetInterface(ILayoutWebContent Intf) then 
  Result := Intf.LayoutButton(Result GetLayoutAttributes); 
  end; 
  { TShowXMLButton } 
  constructor TShowXMLButton.Create(AOwner: TComponent); 
  begin 
  inherited; 
  DefaultCaption := sShowXML; 
  XMLMethodName := 'root'; 

end; 
  { TShowDeltaButton } 
  constructor TShowDeltaButton.Create(AOwner: TComponent); 
  begin 
  inherited; 
  DefaultCaption := sShowDelta; 
  XMLMethodName := 'getDelta()'; 
  end; 
  另一种方法使用msxml.dll 如下: 
  .... 
  .... 
  procedure TDHEDForm.OpenBtnClick(Sender: TObject); 
  var 
  pVIn : OleVariant; 
  Prompt : OleVariant; 
  begin 
  pVIn := ''; 
  Prompt := True; 
  DHtmlEdit1.LoadDocument(pVIn Prompt); 
  end; 
  procedure TDHEDForm.SaveBtnClick(Sender: TObject); 
  var 
  vo vb : OleVariant; 
  begin 
  vo := DHTMLEdit1.CurrentDocumentPath; 
  if (vo <> '') then 
  begin 
  vb := false; 
  end 
  else 
  begin 
  vo := ''; 
  vb := true; 
  end; 
  DHTMLEdit1.SaveDocument(vo vb); 
  end; 
  procedure TDHEDForm.SaveAsClick(Sender: TObject); 
  var 
  vo vb : OleVariant; 
  begin 
  vo := ''; 
  vb := true; 
  DHTMLEdit1.SaveDocument(vo vb); 
  end; 
  ...
  //本文为转贴,作者不详,仅供大家参考

  • 上一篇:Delph基础学习:编程规范1.0.0.0
  • 下一篇:Delphi如何控制Excel操作