Показать сообщение отдельно
  #1  
Старый 13.02.2015, 21:24
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
Вопрос TFrame помогите пожалуйста разобраться

Задался вопросом немного больше познать Delphi. Но пока не получается, прошу совета.
С созданием вроди немного разобрался. Создает все нормально по шаблону. А вот как очистить не могу разобраться.

Код:
FrameList1:TObjectList;
Сама функция добавления табов
Код:
function TForm1._CreateFrame(Index:integer; CreateTab:Boolean=True):TFrame1;
var
  tabs:TTabSheet;
  frame:TFrame1;
begin
if (CreateTab) then begin
    tabs := TTabSheet.Create(Self);
    tabs.PageControl := PageControl1;
    tabs.Name := 'tsTabs' + IntToStr(Index);
    tabs.Caption := 'Tabs ' + IntToStr(Index);
    tabs.Visible := True;
    tabs.TabVisible := True;
  end
else tabs := PageControl1.Pages[Index];

  frame := TFrame1.Create(Self);
  frame.Name := 'frInfo' + IntToStr(Index);
  frame.Parent := tabs;
  frame.Align := alClient;
  Result := frame;
  FrameList1.Add(frame);
end;
Создаем список фреймов и создаем фрейм.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  FrameList1:= TObjectList.Create();
  _CreateFrame(0, False);
end;
Заполняем данными
Код:
procedure TForm1.FrameAddInfo;
var
  i:Integer;
  frame:TFrInfo;
begin
 //Компонент. В итоге содержит список.
 Info1.Active := True;

  frame := TFrInfo(FrameList1.Items[0]);
  //заполняем фрем данными(едиты)
  addinformation(frame);
  //пробегаемся по всему списку что предстоит добавить
  for i := 1 to (Info1.ObjectsCount - 1) do begin
    //новая вкладка
    frame := _CreateFrame(i, True);
    PageControl1.ActivePageIndex := i;
    //указываем индекс
    Info1.ObjectsIndex := i+1;
    //заполняем фрем данными(едиты)
    addinformation(frame);
  end;
  PageControl1.ActivePage := tsTabs0;
end;

В процессе создается несколько табов, которые в итоге необходимо очистить и создать заново. В идеале используя другой фрейм.

Как я понимаю необходимо очистить FrameList1 и TTabSheet. Пытался, вроди очищает по крайней мере визуально, но при создании новых, после очистки, выдает ошибку. Может быть на первоначальном этапе ошибка или все же в завершении?

Решено Не правильно очищал список объектов было Free, а надо Clear Жаль что совета не услышал.
Ответить с цитированием