最近在使用delphi的时候遇到了一个问题,请大家帮帮忙。
我使用dbgrid来显示数据库中的数据,需要在每一行后面加一个功能类似checkbox的列(在数据库中不存在与之对应的字段),这一列起标记的作用,如果打勾表示我已经选择了该行,用户选择完毕之后,单击“确定”按钮对选中的行进行操作。请问应该怎么做?多谢!

解决方案 »

  1.   

    在数据库中不存在这样的列所以不能在dbgrid中添加,或者我不懂。可以考虑将要显示的数据添加到另一个查询或临时表中,当然要加入一个Bool列。这样就可以用dbgrid中操作了。
      

  2.   

    把DBMusliSelected变为True之后,在按下ctrl时,单击鼠标才能选中一行,而且在松开ctrl键时,如果不小心点了别的行,所做得选择就没有了。如果能做到单击选中当前行得同时,又能同时保持选中原来所选则的行也行啊,只是不知道该怎么实现。
      

  3.   

    你的问题其实归结为两个方面:1:如何在DBgrid中显示checkbox;2:表中无此字段:
    解决办法:
    1:使用DbGrideh控件(何处下载、如何使用网上很多,很容易找到)
    2:在你的Select语句中,增加一伪列 如 select '0' selected, ... from ...
       之后,如果你用了DbGrideh控件的话,它的column有个Chekcboxes属性,设为True;并为这列的KeyList加上'0'和'1'。
    到这里就Ok了。
      

  4.   

    我已经装了dbGrideh,但是老板反对用第三方控件,我只能用delphi自带的控件。
      

  5.   

    有同感,这问题偶足足搞了四个小时还没搞定,希望高手能出现!
    偶用了
    select *,'X' AS 标签 from XXXX
    的方法不知和不行,反正还没搞定。
    以前看到有人问过,好像用以画的形式完成,现找不到这个单子,不知在哪?
      

  6.   

    朋友,我想 你何不换个角度思考呢?也就是说为了解决问题,为什么一条路走到头呢?我的意思是,你是想选择你想编辑的dbgrid中你想修改的某行,亦即编辑数据库中的数据,我的做法是不用dbgrid,而是用listview控件,如果你还是不知道怎么用,我可以给你发个实例,你可以看看,告诉我你的E-mail!
      

  7.   

    你用没用DBGridEH你的老板如何会知道???