最近想写一个操作网页的程序.
找了一段返回网页代码的代码
但是有些函数不明白什么意思..
小弟我一点英语都不懂
请大家帮我解释下.先谢谢了 procedure 这个函数是干什么用的??

解决方案 »

  1.   

    没有返回值的时候用,
    要是有返回值就用function
      

  2.   

    unit   Unit1;   
        
      interface   
        
      uses   
          Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
          Dialogs,   ActiveX,   ComObj,   OleCtrls,   SHDocVw,   StdCtrls;   
        
      type
          TForm1   =   class(TForm)
        WebBrowser1: TWebBrowser;
        Button1: TButton;
              procedure   Button1Click(Sender:   TObject);   
              procedure   WebBrowser1DocumentComplete(Sender:   TObject;   
                  const   pDisp:   IDispatch;   var   URL:   OleVariant);   
          private
              {   Private   declarations   }   
          public   
              {   Public   declarations   }
          end;   
      var
          Form1:   TForm1;
      implementation
      {$R   *.dfm}   
      //首先来实现写,因为这是最迫切的要求:   
      procedure   SetHtml(const   WebBrowser:   TWebBrowser;   const   Html:   string);
      var
          Stream:   IStream;   
          hHTMLText:   HGLOBAL;
          psi:   IPersistStreamInit;   
      begin
          if   not   Assigned(WebBrowser.Document)   then   Exit;
          hHTMLText   :=   GlobalAlloc(GPTR,   Length(Html)   +   1);
          if   0   =   hHTMLText   then   RaiseLastWin32Error;   
        
          CopyMemory(Pointer(hHTMLText),
          PChar(Html),   Length(Html));   
          OleCheck(CreateStreamOnHGlobal
          (hHTMLText,   True,   Stream));
          try   
              OleCheck(WebBrowser.Document.   
              QueryInterface(IPersistStreamInit,   psi));   
              try
                  OleCheck(psi.InitNew);   
                  OleCheck(psi.Load(Stream));   
              finally
                  psi   :=   nil;
              end;   
          finally   
              Stream   :=   nil;   
          end;
      end;   
        
      function   GetHtml(const   WebBrowser:   TWebBrowser):   string;   
      const   
          BufSize   =   $10000;
      var   
          Size:   Int64;   
          Stream:   IStream;   
          hHTMLText:   HGLOBAL;   
          psi:   IPersistStreamInit;
      begin   
          if   not   Assigned(WebBrowser.Document)   then   Exit;   
          OleCheck(WebBrowser.Document.QueryInterface   
          (IPersistStreamInit,   psi));   
          try
              //OleCheck(psi.GetSizeMax(Size));
              hHTMLText   :=   GlobalAlloc(GPTR,   BufSize);   
              if   0   =   hHTMLText   then   RaiseLastWin32Error;   
              OleCheck(CreateStreamOnHGlobal(hHTMLText,   True,   Stream));   
              try   
                  OleCheck(psi.Save(Stream,   False));
                  Size   :=   StrLen(PChar(hHTMLText));   
                  SetLength(Result,   Size);   
                  CopyMemory(PChar(Result),   Pointer(hHTMLText),   Size);   
              finally   
                  Stream   :=   nil;
              end;   
          finally   
              psi   :=   nil;
          end;
      end;  procedure   TForm1.Button1Click(Sender:   TObject);
      begin
          Self.WebBrowser1.Navigate('http://www.google.com');
      end;
      procedure   TForm1.WebBrowser1DocumentComplete(Sender:   TObject;
          const   pDisp:   IDispatch;   var   URL:   OleVariant);
      begin
          ShowMessage(GetHtml(Self.WebBrowser1));
      end;
      end.
    procedure   SetHtml(const   WebBrowser:   TWebBrowser;   const   Html:   string);这一段的这个 procedure 是什么意思?
      

  3.   

    过程:是关键字,保留字,用于定义无返回值的过程(同C的void function)