打印本文 打印本文 关闭窗口 关闭窗口
delphi学习:两种方法使用xml文档
作者:武汉SEO闵涛  文章来源:敏韬网  点击数658  更新时间:2009/4/23 18:25:38  文章录入:mintao  责任编辑:mintao

 使用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;
  ...
 
作者:oklemon 

打印本文 打印本文 关闭窗口 关闭窗口