在我做的一套系统中,要求把选取的颜色顺序地存到表格中。我用Colorbox控件选取颜色,要放到DBGRID中,我不知道应该从何下手,请大家提个建议,谢谢。

解决方案 »

  1.   

    把颜色值存进数据库。
    再用dbgrid来显示数据库的数据就行了。
      

  2.   

    把颜色值存进数据库,在DBGRID中的DrawColumnCell事件中处理背景色
      

  3.   

    我有试过啊,我是这样做的,可系统不能正常运行啊
    1、把颜色值存入数据库中:
     query2.Parameters.ParamByName('色样').Value := colortostring(Colorbox1.Selected);
    2、在DBGrid1DrawColumnCell中设:
      { query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('select * from rkdtemp');
        query1.Open;
        while not query1.Eof do
        begin 
          if dbgrid1.Columns[11].FieldName='色样' then
             canvas.brush.color := stringtocolor(query1.fieldvalues['色样'];
          query1.Next;
        end;
        dbgrid1.defaultdrawcolumncell(Rect,datacol,column,state);
      

  4.   

    这样试试  DbGrid1.Canvas.Brush.color:=stringtocolor(query1.fieldvalues['色样'];
      DbGrid1.Canvas.pen.mode:=pmMask;
      DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
      

  5.   

    谢谢cdchq,用你的方法可行.可是它会把整行的颜色改为当前颜色,而我必须把颜色显示在一个表格内,请问该怎么实现.
    我用DBGRID1.columns[10].color =stringtocolor(query1.fieldvalues['色样']是可以显示在表格内,可是它们每次也有错误
      

  6.   

    请问DBGRID1.columns[10].color =stringtocolor(query1.fieldvalues['色样'])能否让它自动显示在后面,而不是前面