假如我的数据集ADOQuery_aaa内容如下:
打分者  被打分者   分数
张三    李四       5
王二    麻子       4
李四    小刚       3则richedit的内容如下;张三给李四打了5分.
王二给麻子打了4分.
李四给小刚打了3分.     (如果分数大于4分该行字体兰色,3分到4分之间黑色,小于三分红色)

解决方案 »

  1.   

    很久没用数据库了,给你写一段参考代码:(我测试过没问题)
    procedure TForm1.Button1Click(Sender: TObject);
    var
       SQLStr:string;
       StuName:string;
       StuSex:string;
       StrRE:string;
       StuMark,StartPos,i:integer;
    begin
       StartPos:=0; 
       i:=0;  //记录RICHEEDIT的行号   SQLStr:='select student_name,student_sex,student_Mark from student_info';
       ADOQStu.SQL.Add(SQLStr);
       ADOQStu.Open;   ADOQStu.First;
       repeat
          //往RICHEDIT加入数据库的一条记录
          StuName:=ADOQStu.FieldValues['student_name'];
          StuSex:=ADOQStu.FieldValues['student_sex'];
          //StuLibNum:=ADOQStu.FieldValues['student_libraryid'];
          StuMark:=ADOQStu.FieldValues['student_Mark'];
          StrRE:=StuName;
          StrRE:=StrRE+'is'+StuSex+'Mark is'+IntToStr(StuMark);
          RichEdit1.Lines.Add(StrRE);      //选择这行的字
          RichEdit1.SelStart:=StartPos;
          RichEdit1.SelLength:=length(RichEdit1.Lines.Strings[i]);
          StartPos:=StartPos+RichEdit1.SelLength+2;      //通过判断分数高低,改变这行字体颜色
          case StuMark of
          0..59:
             RichEdit1.SelAttributes.Color:=clRed;
          60..79:
             RichEdit1.SelAttributes.Color:=clBlack;
          80..100:
             RichEdit1.SelAttributes.Color:=clBlue;
          end;      ADOQStu.Next;  //往下移动一条记录
          i:=i+1;    //行号加1
       until ADOQStu.Eof;  //到记录尾就不做了
    end;
    这个应该不难的,自己要动手试试!