procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i, AmountInt, ComponentType : Integer;
  Amount : string;
begin
  ComponentType := ComboBox1.ItemIndex;
  Amount        := Trim(Edit1.Text);
  if Amount = '' then
    MessageDlg('"Amount" can not empty!', MTWarning, [MBOk], 0)
  else
    try AmountInt := StrToInt(Amount);
      if AmountInt > 0 then
        if AmountInt > 10 then
          MessageDlg('"Amount" is too big!', MTWarning, [MBOk], 0)
        else
          case ComponentType  of
            0:
               for i := 1 to AmountInt do
                 with TLabel.Create(Panel1) do
                   begin
                     Left   := 100;
                     Top    := 30 * i;
                     Tag    := 1;
                     Parent := Panel1;
                     Text   := 'Lable' + IntToStr(i);
                   end;
            1:
               for i := 1 to AmountInt do
                 with TEdit.Create(Panel1) do
                   begin
                     Left   := 100;
                     Top    := 30 * i;
                     Tag    := 1;
                     Parent := Panel1;
                     Text   := 'Edit' + IntToStr(i);
                   end
           else
             MessageDlg('No this Component Type!', MTWarning, [MBOk], 0);
           end
      else
        MessageDlg('"Amount" is only plus integer!', MTWarning, [MBOk], 0);
    except
      MessageDlg('"Amount" is only plus integer!', MTWarning, [MBOk], 0);
    end;
end;

解决方案 »

  1.   

    0:
                   for i := 1 to AmountInt do
                     with TLabel.Create(Panel1) do
                       begin
                         Left   := 100;
                         Top    := 30 * i;
                         Tag    := 1;
                         Parent := Panel1;
                         //Text   := 'Lable' + IntToStr(i);
                         Caption   := 'Lable' + IntToStr(i);
                       end;