Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1354364
  • 博文数量: 334
  • 博客积分: 10302
  • 博客等级: 上将
  • 技术积分: 2986
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 10:17
文章分类

全部博文(334)

文章存档

2013年(1)

2012年(9)

2011年(4)

2010年(10)

2009年(24)

2008年(64)

2007年(72)

2006年(150)

我的朋友

分类:

2006-07-26 00:53:43


  使用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;
阅读(957) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~