Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как очистить ScrollBox от содержимого


brunnengi

Вопрос

Здравствуйте.

Помещаю в ScrollBox несколько Button'ов.

Подскажите пожалуйста, как мне удалить их всех разом?

 

Пробовал form1.ScrollBox1.DeleteChildren и form1.ScrollBox1.Children.Free;
Вываливается с ошибками.
 

Хотел еще в целом посмотреть сколь child'ов у ScrollBox'а, но ScrollBox.ChildrenCount возвращает всегда "2".

Даже в чистом проекте возвращается "2". Что такое "2"? 

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 1
  • Администраторы

Все контролы, которые вы кидаете в TScrollBox находятся в дополнительном промежуточном контроле TScrollContent. Когда вы удаляете все дочерние узлы TScrollBox, то вы удаляете все сами, стиль и контент, что делать нельзя.

Похожее поведение есть и в TTreeViewПри попытке создать дочерние итемы при разворачивании узла дерева, у меня возникает ошибка. В чем может быть проблема?

Поэтому, удалять объекты нужно непосредственно у контента. Это можно сделать так:

type 
  TOpenScrollBox = class(TScrollBox);

procedure ClearChildren(AScrollBox: TScrollBox);
begin
  Assert(AScrollBox <> nil);

  TOpenScrollBox(AScrollBox).Content.DeleteChildren;
  AScrollBox.Repaint;
end;
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...