Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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 Жаль что совета не услышал.

Последний раз редактировалось MotoArhangel, 14.02.2015 в 20:05.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025