当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·我照书写的这段程序错在哪里    »显示摘要«
    摘要: 我照书写的这段程序错在哪里,为什么运行到inc(fretries);时就停下了。 procedure tpassworddlg.okbtnclick(sender: tobject); var maxretries:integer; begin maxretries:=3;//3 次 inc(fretries); if password.text=pass then modalresult......
    摘要: 我的郵箱是 xu_piao@163.net ......


在线

用CheckBox进行多选,选中的就进行某种处理。问题是:现在有20个CheckBox,这么多,情况也就会很多。这么多的情况如果每种可能选项组合都写成程序,那简直太大了。  
  我该怎么办呢?有没有很巧妙的的算法?

NO.1   作者: starstargao

没有办法,循环

NO.2   作者: Atomictry

用循环,不过还是很变态哦。

NO.3   作者: halibut

把6个CheckBox的Tag设成0~5  
   
  6个CheckBox共用一个OnClick事件处理:  
  ...(TObject   *Sender)  
  {  
      CheckBox   *   chbArr[]={CheckBox1,CheckBox2,CheckBox3,CheckBox4,CheckBox5,CheckBox6};  
      int   index;  
      DWORD   dwVal=0;  
      for(index=0;index<6;index++)  
      {  
          if(chkbArr[index]->Checked)  
          {  
              dwVal   =   dwVal   |   (1<<chkArr[index]->Tag);  
          }  
      }  
      switch(dwVal)  
      {  
          case   0x00000000:  
              ...;break;  
          case   0x00000001:  
              ...;break;  
          ...  
          default:  
              ...;break;  
      }  
  }

NO.4   作者: tccsdn

用TList实现也可以

NO.5   作者: Rurama

是不是定数据表的查询条件啊。是的话可以这样  
  AnsiString   strSQLSelect;  
  strSQLSelect   =   "select   *   from   table_name   where   (1=1)"    
  if   (   CheckBox1->Checked   )  
  {  
  strSQLSelect   +=   "and   CheckBox1->Text"  
  }  
  .  
  .  
  .  
  .  
  .  
  .  
  不知会不会有帮助。


 ·rave报表,    »显示摘要«
    摘要: 在数据库不能修改的情况下,让datatext自动换行 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE