線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1219
推到 Plurk!
推到 Facebook!

如何快速輸出大量內容

尚未結案
jmj
一般會員


發表:2
回覆:2
積分:0
註冊:2003-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-01 09:12:38 IP:140.116.xxx.xxx 未訂閱
請教各位大大一個問題: 正在做一個查詢詩詞的系統,查詢結果也要將關鍵字標示出來 可是資料量很大,只是簡單的查詢,也可能跑出一堆資料(通常在五萬字左右) 資料放在Access,而目前的查詢結果是先寫入為HTML檔,再給TWebBrowser呈現,但是因為資料量大,寫入為HTML檔約耗時五秒,給TWebBrowser呈現也要五秒 用HTML呈現的原因,是因為我只會用它來為關鍵字上色...>_<" 也曾使用其他東西來輸出:用過TRichEdit,也使用了BeginUpdate and EndUpdate,可是竟然也要花費四秒鐘左右。也用過ReportBuilder,速度完全符合要求,但卻不知道怎麼為關鍵字上色。 想問各位大大,有什麼好方法能加速輸出嗎?
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-14 07:42:17 IP:192.168.xxx.xxx 未訂閱
用以下的指令直接將HTML資料傳給WEBBROWSER,而不要產生HTML檔案
procedure TForm1.Button1Click(Sender: TObject);
var
   vv: Variant;
   HTMLDocument: IHTMLDocument2;
   tmpStr,tmpfilepath:string;
   src:string;
begin
    src:='Delphi K.Top討論區';
    vv := VarArrayCreate([0,0],varVariant);
    vv[0] := src;
    HTMLDocument := webbrowser1.Document as IHTMLDocument2;
    HTML(pSafearray(TVarData(vv).VArray));
    HTMLDocument.close;
end;
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jmj
一般會員


發表:2
回覆:2
積分:0
註冊:2003-05-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-14 11:40:53 IP:140.116.xxx.xxx 未訂閱
感謝大大的回答 但是: HTML(pSafearray(TVarData(vv).VArray)); HTMLDocument.close; 這兩行會發生 EAccessViolation,目前還在努力嘗試當中
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-14 17:13:26 IP:192.168.xxx.xxx 未訂閱
引言: 感謝大大的回答 但是: HTML(pSafearray(TVarData(vv).VArray)); HTMLDocument.close; 這兩行會發生 EAccessViolation,目前還在努力嘗試當中
您用的Delphi幾版 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-14 17:40:35 IP:192.168.xxx.xxx 未訂閱
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OleCtrls, SHDocVw,mshtml,ActiveX;    type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    procedure TForm1.Button1Click(Sender: TObject);
var
   vv: Variant;
   HTMLDocument: IHTMLDocument2;
   tmpStr,tmpfilepath:string;
   src:string;
begin
    src:='Delphi K.Top討論區';
    vv := VarArrayCreate([0,0],varVariant);
    vv[0] := src;
    HTMLDocument := webbrowser1.Document as IHTMLDocument2;
    HTML(pSafearray(TVarData(vv).VArray));
    HTMLDocument.close;
end;    procedure TForm1.FormCreate(Sender: TObject);
begin
    webbrowser1.Navigate('about:blank');    end;    end.    
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jmj
一般會員


發表:2
回覆:2
積分:0
註冊:2003-05-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-15 09:55:03 IP:140.116.xxx.xxx 未訂閱
感謝天使大大的指導 約快了 25% 呢
kiu
一般會員


發表:2
回覆:13
積分:3
註冊:2003-03-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-29 15:24:40 IP:221.136.xxx.xxx 未訂閱
delphi7 IE5.0 這兩行會發生 EAccessViolation
kiu
一般會員


發表:2
回覆:13
積分:3
註冊:2003-03-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-29 15:38:11 IP:221.136.xxx.xxx 未訂閱
原來加上tmpStr,tmpfilepath:string;就可以了 ^_^;
系統時間:2024-11-23 3:49:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!