数据库有两个字段id和name,用dbgrid或者其他控件实现以下功能:
 1:把id和name字段的数据让单行显示底色为白色,双行的显示为浅灰色.
 2:让某一列的数字为1时显示为字符"字符1"  为2时显示为"字符2",(
这是故意增加难度,如id为001,显示字符为:字符oo1).
 3:允许数据网格进行多选, 然后将全部选中的行的信息都保存到一个文本文件中去. 
 各位大侠帮忙,在先等.

解决方案 »

  1.   

    晕。这么多要求啊。如果在VB就帮你搞,但Delphi不是太熟...^_^
      

  2.   

    用StringGrid来显示,在OnDrawCell中自己判断并自行绘制.
    至于1显示为001 ,可以使用Format('%.3d',[1])
      

  3.   

    inherited;
      with DBGrid1 do
      begin
       if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
        begin
         Canvas.Font.Color :=ClYellow;
         Canvas.Brush.Color :=ClNavy;
        end
        else
        begin
          if  DataSource1.DataSet.RecNo mod 2<>0 then {判断行是奇数还是偶数行}
            Canvas.brush.Color :=ClWhite        {奇数行背景以白色显示}
          else
            Canvas.brush.Color :=$00BFC873;      {偶数行背景以浅蓝色显示}
        end;
        DefaultDrawColumnCell(Rect, DataCol, Column, State); {绘出背景}
      end;
      

  4.   

    2:让某一列的数字为1时显示为字符"字符1"  为2时显示为"字符2",(
    这是故意增加难度,如id为001,显示字符为:字符oo1).如果速度不是很慢可以用计算字段,
    如果用的是SQL Sever ,id为int类型时 用SQL语句,
    select ('字符'+ cast(id as varchar(12))) as id from table就可以了.
      

  5.   

    var
      i:integer;
      tmpBookMark:TBookMark;  with Grid,table do
      begin
        DisableControls;
        for i:=0 to Grid.SelectedRows.Count-1 do //从选中的数据移动
        begin
           table .Book:=Grid.SelectedRows.Items[i];
           tmpBookMark :=GetBook;
           // do something here : 行的信息都保存到一个文本文件中去
           GotoBook(tmpBookMark);
        end;
        EnableControls;
      end;
      

  6.   

    对于第三个问题:在DBGridEh1中或DBGrid中选择,保存到memo1中。怎么办?谢谢!