请问大家一个问题:我数据库中 有20多个列表,想根据 多个下拉菜单 来寻找数据库中的内容~!例如:数据库中表示: 人的行为1,2,3,4,5,6种 通过下拉菜单中选项中行为来判定是否是人???

解决方案 »

  1.   

    獲得下拉框的內容
    if 下拉框的Name.text='1'then
    else
    if 下拉框的Name.text='2'then
    else
    就這樣。
      

  2.   

    这个感觉要写死,就是约定好。如果数据库中1到6固定是人的行为,则可以判断下拉框选中的内容强制转化:
       i := strtointdef(combobox1.txt,0);
      如果i在1到6之间,则可以得出是人的行为
      

  3.   

    给个EDIT的例子给你看,我以前写的代码,应该是你想要的答案,我不改了,你就看着来改吧。关键是在查数据库的时候用AND结合你所说的多个下拉菜单里面的内容来查。代码不难,应该看得明白吧
    begin
       if trim(Edit4.Text)<>'' then
        begin
         selectrkdh:='and ckdh='''+trim(Edit4.Text)+'''';
        end
       else
        selectrkdh:='';   if trim(Edit5.Text)<>'' then
        begin
         selecttm:='and serialNO='''+trim(Edit5.Text)+'''';
        end
       else
        selecttm:='';   if trim(Edit6.Text)<>'' then
        begin
         proname:=trim(Edit6.Text);
         selectname:='and productname like ''%'+proname+'%''';
        end
       else
        selectname:='';   dt1:=DatetimeToStr(Date1.DateTime);
       dt2:=DatetimeToStr(Date2.DateTime);
       selectck2.Close;
       selectck2.sql.clear;
       selectck2.sql.add('select * from ck2 where cktime>='''+dt1+''' and cktime<='''+dt2+''''+selectrkdh+selecttm+selectname);
       selectck2.execsql;
       selectck2.Open;
       selectck2.Active :=true;
    end;
      

  4.   

    版主的问题有点象这样:procedure TForm2.ComboBox1Change(Sender: TObject);
    begin
      if(StrToInt(ComboBox1.Text) in[1..6])then
        ShowMessage('人');
    end;
      

  5.   

    if ... then
      else ...
    超过3种以上情况,应该使用
    case ... of 
    ...
    end
      

  6.   

    procedure TForm2.ComboBox1Change(Sender: TObject);
    begin
      if(ComboBox1.Text='直立行走')and
        (ComboBox2.Text='制造和使用简单的工具')and
        (ComboBox3.Text='学会使用火'){等等...}then
        ShowMessage('人');
    end;