Показать сообщение отдельно
  #4  
Старый 10.04.2012, 21:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Естественно, массивы должны быть как минимум на уровне формы.

Код:
type
  TForm1 = class(TForm)
  ...
  private
     FEdits : Array Of TEdit;
     procedure CreateMyEdits(N : Integer);
  end;

procedure TForm1.CreateMyEdits(N : Integer);
var
  C, I : Integer;
begin
  C := Length(FEdits);

  // Чистим все контролы
  For I := Low(FEdits) To High(FEdits) Do FEdits[i].Text := '';

  // Если у нас лишние контролы
  If C > N Then
     Begin
       For I := N To High(FEdits) Do
         Begin
            FreeAndNil(FEdits[i]);
         End;
       SetLength(FEdits,N);
     End;

  // Если у нас не хватает контролов
  If C < N Then
    Begin
      SetLength(FEdits,N);
      For I := C-1 To High(FEdits) Do
        Begin
          FEdits[i] := TEdit.Create(Self);
          ...
    End;
end;
Ответить с цитированием