Combobox 如何从另一个组合框加载组合框?

Combobox 如何从另一个组合框加载组合框?,combobox,c++builder,Combobox,C++builder,我有一个组合框,列出我的DB的学校单元。我的代码: _fastcall TForm1::TFORM1T组件*所有者:TFormOwner{ QueryUnidade->Close; QueryUnidade->Open; 而queryUIDADE->Eof==false{ ComboBoxUn->Items->AddQueryUnidade->FieldByNameunidade->AsString; QueryUnidade->Next; } } 在我的“其他需要”组合框中,列出与第一个组合框

我有一个组合框,列出我的DB的学校单元。我的代码:

_fastcall TForm1::TFORM1T组件*所有者:TFormOwner{ QueryUnidade->Close; QueryUnidade->Open; 而queryUIDADE->Eof==false{ ComboBoxUn->Items->AddQueryUnidade->FieldByNameunidade->AsString; QueryUnidade->Next; } } 在我的“其他需要”组合框中,列出与第一个组合框中选择的单元相关的班次,但没有显示。我的代码如下所示:

void u fastcall TForm1::ComboBoxTurnoChangeTObject*发送方{ QueryTurno->Close; QueryTurno->ClearFields; QueryTurno->SQL->AddSELECT DISTINCT TURNO FROM ALUNO,其中UNIDADE='+trimcomboxun->Text+'; QueryTurno->Open; whileQueryTurno->Eof==false{ ComboBoxTurno->Items->AddQueryTurno->FieldByNameturno->AsString; QueryTurno->Next; } ComboBoxTurno->更新; }
问题是,我的查询应该属于选择ComboboxUn时的事件,而不是ComboxTerno。ComboboxUn的新代码,以ComboxTextorno显示结果,如我所希望的:

void __fastcall TForm1::ComboBoxUnSelect(TObject *Sender)
{
  QueryTurno->Close();
  QueryTurno->SQL->Add("SELECT DISTINCT TURNO FROM ALUNO WHERE 
  UNIDADE="+QuotedStr(Trim(ComboBoxUn->Text)));
  QueryTurno->Open();

 while(QueryTurno->Eof == false)
 {
    ComboBoxTurno->Items->Add(QueryTurno->FieldByName("turno")->AsString);
    QueryTurno->Next();
  }
}

1停止连接SQL。使用参数。2如果没有显示任何内容,则查询不返回任何行。除了我在上面1中提到的以外,您发布的代码没有任何问题。是的,我的查询有how,但没有显示。我不需要刷新来查看第二个组合框的项目?combobox->Upadate似乎不起作用。您是否认为事件处理程序ComboBoxTurnoChange属于ComboBoxUn?我原以为它是不变的。在ComboBoxUn中填充数据时,我也会禁用该事件。comboboxTurno的列表取决于ComboBoxUn中选择的项目。我同意kobik的观点,这段代码确实使OP看起来像是在用户从comboboxTurno而不是ComboBoxUn中选择项目时尝试填充ComboxTurno。