procedure TForm1.Button1Click(Sender: TObject);
var
  FileContent,FielName: String;
  f: TFileStream;
begin
  FileContent := '<html><img src="http://mydown.d2g.com/lb5000/usr/16/16_486.gif"></html>';0D
  FielName := 'TempStrFile.htm';
  f := TFileStream.Create(WebBrowser1.Path + FielName, fmCreate);
  f.Write(PChar(FileContent)^,Length(FileContent));
  FreeAndNil(f);
  WebBrowser1.Silent := true;
  WebBrowser1.Navigate(WebBrowser1.Path + FielName);
end;—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
    

解决方案 »

  1.   

    当然可以,看下面的代码。这个问题是老问题了,在程序员2001上就有,为什么不找一下。
    __fastcall TCriteriaDescForm::TCriteriaDescForm(TComponent* Owner)
    : TForm(Owner)
    {
      CriteriaBrowser->Navigate2(&TVariant("about:blank"));
    }
    //---------------------------------------------------------------------------
    void __fastcall TCriteriaDescForm::SetDescription(AnsiString DescContent)
    {
      IPersistStreamInit *psi;
      IStream *pContentStream;
      HGLOBAL hMemHandle;
      HRESULT hr;  // 在构造函数中调用函数Navigate2时,必须等待它启动成功
      while(CriteriaBrowser->Document==NULL)
      {
        Sleep(10);
        Application->ProcessMessages();
      }  hr=CriteriaBrowser->Document->QueryInterface(IID_IPersistStreamInit,(void**)&psi);
      if(SUCCEEDED(hr))
      {
        hMemHandle=GlobalAlloc(GPTR,DescContent.Length());
        if(hMemHandle==NULL)
        {
          SetErrorResult((HRESULT)GetLastError());
          return;
        }
        CopyMemory((PVOID)hMemHandle,DescContent.c_str(),DescContent.Length());    hr=CreateStreamOnHGlobal(hMemHandle,true,&pContentStream);
        if(SUCCEEDED(hr))
        {
          hr=psi->InitNew();
          if(SUCCEEDED(hr))
          {
            hr=psi->Load(pContentStream);
            if(FAILED(hr))
              SetErrorResult(hr);
          }
          else SetErrorResult(hr);
        }
        else SetErrorResult(hr);    GlobalFree(hMemHandle);
        psi->Release();
      }
      else SetErrorResult(hr);
    }
    //---------------------------------------------------------------------------
    void __fastcall TCriteriaDescForm::SetErrorResult(HRESULT hr)
    {
      int WinErrCode=HRESULT_CODE(hr);  MessageBox(this->Handle,AnsiString(Msgconst_FailedSetHtml+" [ "+SysErrorMessage(WinErrCode)+" ]").c_str(),
            NULL,MB_OK | MB_APPLMODAL | MB_ICONWARNING);
    }
    //---------------------------------------------------------------------------
      

  2.   

    webbrowser1.Navigate('about:blank');
      vv:=VarArrayCreate([0,0],varVariant);
      vv[0]:=htmlstr;
      html:=WebBrowser1.Document as IHTMLDocument2;
      html.write(PSafeArray(TVarData(vv).VArray));  //这会出现异常
      html.Close;需要引用MSHTML,参考:
    http://www.csdn.net/expert/topic/755/755501.xml?temp=.2549707
      

  3.   

    var
      vWebDoc: OleVariant;vWebDoc := WebBrowser1.Document;
    vWebDoc.write('<html>');是不是这个意思
      

  4.   

    如果你的意思是想不通过硬盘而是通过内存显示html源代码,那么如下:WebBrowser.OleObject.document.body.innerHTML:=你象显示的html源代码string.
    但是只能解释html源代码并显示,不能自动显示里面标记的别的连接,比如图片。而且察看源代码里面看到的是你设置之前的内容。
      

  5.   

    我测试了一下,没有问题呀!当然,如果你的html有问题的话就会出现异常!
      

  6.   

    (WebBrowser.Document as IPersistStreamInit) //绝对强制转换
    //有点象这样的语句 IPersistStreamInit(WebBrowser.Document)//请参考//from
    http://kingron.myetang.com/zsfunc1a.htm(*//
    标题:显示超文本
    说明:在WebBrowser直接载入流,不通过文件
    设计:Zswang
    日期:2002-06-06
    支持:[email protected]
    //*)///////Begin Source
    uses ActiveX;function ShowHtml(mWebBrowser: TWebBrowser; mStrings: TStrings): Boolean;
    var
      vMemoryStream: TMemoryStream;
    begin
      Result := False;
      if not (Assigned(mStrings) and Assigned(mWebBrowser)) then Exit;
      mWebBrowser.Navigate('about:blank');
      if not Assigned(mWebBrowser.Document) then Exit;
      vMemoryStream := TMemoryStream.Create;
      try
        mStrings.SaveToStream(vMemoryStream);
        try
          vMemoryStream.Position := 0;
          Application.ProcessMessages; // :)
          (mWebBrowser.Document as IPersistStreamInit).Load(
            TStreamAdapter.Create(vMemoryStream));
        except
          Exit;
        end;
      finally
        vMemoryStream.Free;
      end;
      Result := True;
    end; { ShowHtml }
    ///////End Source///////Begin Demo
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowHtml(WebBrowser1, Memo1.Lines);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Memo1.Text :=
    '<html>'#13#10 +
    '<body bkcolor=#FF00FF><b>Hello Worlds!</b></body>'#13#10 +
    '</html>'#13#10;
    end;
    ///////End Demo