richedit实现逐行显示~~
下面是源程序~~~~
var
  i:integer;
RichEdit1.Clear;
ADOQuery1.First
i:=1;
while not ADOQuery1.EOF do
  begin
    richedit1.Lines.Add(IntToStr(i)+','+ADOQuery1.FieldByName('字段名').asString);
    inc(i);
    ADOQuery1.Next; 
  end;
如何只在richedit中添加最新的数据而不需要全部刷新,求代码。。

解决方案 »

  1.   

    基本应该类似如下的代码:
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
        i,j:integer;
        bFind:boolean;
    begin
        ADOQuery1.First;
        i:=RichEdit1.Lines.Count;
        while not ADOQuery1.EOF do
        begin
            bFind:=false;
            for j:=0 to RichEdit1.Lines.Count-1 do
                if copy(RichEdit1.Lines[i],3,Length(RichEdit1.Lines[i]))=ADOQuery1.FieldByName('字段名').asString then
                    bFind:=true;
    ////////////检查RichEdit1中是否已经有了这条记录
            if bFind then
            begin
                ADOQuery1.Next;
    ///////如果有,继续下一条
            end else
            begin
                richedit1.Lines.Add(IntToStr(i)+','+ADOQuery1.FieldByName('字段名'').asString);
    ////////如果没有,增加到RichEdit中
                inc(i);
            end;
            ADOQuery1.Next;
        end;
    end;
      

  2.   

    循环逻辑错了
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
        i,j:integer;
        bFind:boolean;
    begin
        ADOQuery1.First;
        i:=RichEdit1.Lines.Count;
        while not ADOQuery1.EOF do
        begin
            bFind:=false;
            for j:=0 to RichEdit1.Lines.Count-1 do
                if copy(RichEdit1.Lines[i],3,Length(RichEdit1.Lines[i]))=ADOQuery1.FieldByName('字段名').asString then
                    bFind:=true;
    ////////////检查RichEdit1中是否已经有了这条记录
            if not bFind then
            begin
                richedit1.Lines.Add(IntToStr(i)+','+ADOQuery1.FieldByName('字段名'').asString);
    ////////如果没有,增加到RichEdit中
                inc(i);
            end;
            ADOQuery1.Next;
    ///////如果有,继续下一条
        end;
    end;
      

  3.   

    i,和j又搞错了。
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
        i,j:integer;
        bFind:boolean;
    begin
        ADOQuery1.First;
        i:=RichEdit1.Lines.Count;
        while not ADOQuery1.EOF do
        begin
            bFind:=false;
            for j:=0 to RichEdit1.Lines.Count-1 do
                if copy(RichEdit1.Lines[j],3,Length(RichEdit1.Lines[j]))=ADOQuery1.FieldByName('字段名').asString then
                    bFind:=true;
    ////////////检查RichEdit1中是否已经有了这条记录
            if not bFind then
            begin
                richedit1.Lines.Add(IntToStr(i)+','+ADOQuery1.FieldByName('字段名'').asString);
    ////////如果没有,增加到RichEdit中
                inc(i);
            end;
            ADOQuery1.Next;
    ///////如果有,继续下一条
        end;
    end;