我在程序中用到了ComboBox(DevStatus)控件分别做了两个Function,其中,Function TDevFindForm.Status: String;是在界面上显示ComboBox.text的内容,而Function TDevFindForm.DevStatuscheck: Integer;做数据库修改时,修改的值。
第一个是没有错误的。而第二个Function TDevFindForm.DevStatuscheck: Integer;在界面上显示后,没有修改ComboBox(就是没有动ComboBox中的内容)时,尽管ComboBox.text<>'' ,但它还是跳过程序有系统随机取值(不是返回Result=0)。为什么会这样,怎样改程序,或它的属性。
Function TDevFindForm.Status: String;
Var
  Str: String;
begin
  Str:=Trim(QueryResult.Fields[5].AsString);
  if Str<>'' then
  begin
    Case StrToInt(Str) of
    1 : Result:='等待设置';
    2 : Result:='正常使用';
    3 : Result:='参数修改';
    4 : Result:='设备故障';
    end;
  end
  else
    Result:='0';
end;Function TDevFindForm.DevStatuscheck: Integer;
begin
  if Trim(DevStatus.Text)<>'' then
  begin
    Case DevStatus.ItemIndex of
    0 : Result:=1;
    1 : Result:=2;
    2 : Result:=3;
    3 : Result:=4;
    end;
  end
  else
    Result:=0;
end;
各位大虾!!!拜托,帮个忙吧!!!急啊!~!~!啊~!~!

解决方案 »

  1.   

    在补充一下,如果ComboBox的内容被修改,那么程序就正确,如果没有修改ComboBox(就是没有动ComboBox中的内容)时,尽管ComboBox.text<>'' ,但它还是跳过程序有系统随机取值(不是返回Result=0)。
    知道我的意思吗?
    不理解,我再仔细说
      

  2.   

    或者改改这里吧:
    if Trim(DevStatus.Text)<>'' then
    ->
    if DevStatus.ItemIndex>0 then
      

  3.   

    Function TDevFindForm.DevStatuscheck: Integer;
    begin
      if Trim(DevStatus.Text)<>'' then
      begin
        Case DevStatus.ItemIndex of
        -1: Result :=1;
        0 : Result:=1;
        1 : Result:=2;
        2 : Result:=3;
        3 : Result:=4;
        end;
      end
      else
        Result:=0;
    end;  //   因为在未修改Combobox的值之前Combobox1的值为-1;或者你把Combobox1的ItemIndex值改为 0;
      

  4.   

    因为在未修改Combobox的值之前Combobox1的itemindex默认值为-1;
      

  5.   

    Result:=0;
        Case DevStatus.ItemIndex of
        0 : Result:=1;
        1 : Result:=2;
        2 : Result:=3;
        3 : Result:=4;
        end;最简单安全的代码
      

  6.   

    Function TDevFindForm.DevStatuscheck: Integer;
    begin
        Result:=0;
        Case DevStatus.ItemIndex of
        0 : Result:=1;
        1 : Result:=2;
        2 : Result:=3;
        3 : Result:=4;
        end;
    end;
      

  7.   

    To:coeltdit(每天多顶几下----->>>大虾就是这样练成的) 
    这样也不行啊!
    如果我原来的值不是Result:=1呢,那他不是改变了数据库的值了吗?
    怎样改就好??
    谢谢~~~!
      

  8.   

    Function TDevFindForm.DevStatuscheck: Integer;
    begin
      Case DevStatus.ItemIndex of
     -1 : Result:=0;
      0 : Result:=1;
      1 : Result:=2;
      2 : Result:=3;
      3 : Result:=4;
      end;
    end;           //  因为当Combobox1为空时,ItemIndex为-1