我动态创建了很多combobox组件(具体个数是可知的),请问在用户对combobox操作后,我如何取得这些
combobox值呢?

解决方案 »

  1.   

    private
        { Private declarations }
        procedure RelationFindF2Routing;
    procedure TRelationInfo_Frm.RelationFindF2Routing;
    var
      k:Integer;
    begin
      with dm.adoq_workplan_find do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select WorkModelName from ShopFloor_WorkModel');
        Open;
      end;
      if DM.adoq_workplan_find.RecordCount=0 then
        Exit;
      cbb_ModelF2.Items.Clear;
      DM.adoq_workplan_find.First;
      for k:=0 to DM.adoq_workplan_find.RecordCount -1 do
      begin
        if DM.adoq_workplan_find.FieldByName('WorkModelName').AsString<>'' then
          cbb_ModelF2.Items.Add(DM.adoq_workplan_find.FieldByName('WorkModelName').AsString);
        DM.adoq_workplan_find.Next;
      end;
    end;procedure TRelationInfo_Frm.cbb_ModelF2Enter(Sender: TObject);
    begin
      RelationFindF2Routing;
    end;
      

  2.   

    楼上的可以吗,只怕不行吧!
    var
     i:Integer;
    begin
      for i := 0 to Self.ComponentCount-1 do
      begin
        if self.Components[i].ClassName = 'TComboBox' then
            showmessage(TComboBox(Components[i]).text);
      end;
    end;
      

  3.   

    怎么解决这个问题,取决于你是怎么样动态创建combobox组件的
      

  4.   

    在创建时指定 parent 之后遍历这个parent 上所有控件 凡是 TCombobox 的即取出其值。
      

  5.   

    先写好事件...Change事件
    例如:
    procedure  TForm1.ChangeCombobox(Sender :TObject);
    var
      Cb :TCombobox;
    begin
      if Not (Sender is TCombobox) then exit;
      Cb := TCombobox(Sender);
      Caption := CB.Text;
    end;然后在创建时指定
      Combobox.onChange := ChangeComboBox;
    就行了
      

  6.   

    通过tag找到combobox
    在去取值
      

  7.   

    创建combobox时把每个创建的combobox保存在一个对象数组中,以后用的时候遍历那个数组不就行了。