Combo Box参数在delphi中没有默认值

时间:2013-04-08 15:15:03

标签: delphi delphi-xe3

我正在处理的程序使用if语句为SQL添加一行代表另一个组合框的内容

procedure TFmNewGarage.ComboBoxCountryEnter(Sender: TObject);
begin
  ADOQueryCountry.SQL.Clear;
  ADOQueryCountry.SQL.Add('SELECT DISTINCT Country');
  ADOQueryCountry.SQL.Add(' FROM TblBaseCar');
  ADOQueryCountry.Open;
  while not ADOQueryCountry.Eof do
  begin
  ComboBoxCountry.Items.Add(ADOQueryCountry['Country']);
  ADOQueryCountry.Next;
  end;
end;

procedure TFmNewGarage.ComboBoxCountryChange(Sender: TObject);
begin
  SelA:=True;
  ComboBoxManufacturer.Show;
  ComboBoxCountry.Hide;
end;

procedure TFmNewGarage.ComboBoxManufacturerEnter(Sender: TObject);
begin
  ADOQueryManufacturer.SQL.Clear;
  ADOQueryManufacturer.SQL.Add('SELECT DISTINCT Manufacturer');
  ADOQueryManufacturer.SQL.Add(' FROM TblBaseCar');
  if SelA=true then
  ADOQueryManufacturer.SQL.Add(' WHERE Country=(ComboBoxCountry.seltext)');
  ADOQueryManufacturer.Open;
  while not ADOQueryManufacturer.Eof do
  begin
  ComboBoxManufacturer.Items.Add(ADOQueryManufacturer['Manufacturer']);
  ADOQueryManufacturer.Next;
  end;
end;

在运行时,这会导致错误ComboBoxCountry.seltext没有默认值,任何人都可以帮我纠正这个错误吗?

1 个答案:

答案 0 :(得分:1)

SelText不是您应该使用的属性。您需要所选Items的组合框ItemIndex

var
 Country: string;
begin
  ...
  if ComboBoxCountry.ItemIndex <> -1 then
  begin
    Country := ComboBoxCountryItems[ComboBoxCountry.ItemIndex];
    ADOQueryManufacturer.SQL.Add('WHERE Country = ' + QuotedStr(Country));
  end;
end;