-
Постов
3 -
Зарегистрирован
-
Посещение
Активность репутации
-
МедиаСистемы отреагировална Brovin Yaroslav в Как очистить ScrollBox от содержимого
Все контролы, которые вы кидаете в TScrollBox находятся в дополнительном промежуточном контроле TScrollContent. Когда вы удаляете все дочерние узлы TScrollBox, то вы удаляете все сами, стиль и контент, что делать нельзя.
Похожее поведение есть и в TTreeView: При попытке создать дочерние итемы при разворачивании узла дерева, у меня возникает ошибка. В чем может быть проблема?
Поэтому, удалять объекты нужно непосредственно у контента. Это можно сделать так:
type TOpenScrollBox = class(TScrollBox); procedure ClearChildren(AScrollBox: TScrollBox); begin Assert(AScrollBox <> nil); TOpenScrollBox(AScrollBox).Content.DeleteChildren; AScrollBox.Repaint; end; -
МедиаСистемы отреагировална krapotkin в Перехват события OnClick в динамическом массиве TBotton
тут для новичка стоит сказать, что
1) этот массив нужно бы делать полем формы
2) приведенный кусок тоже должен находиться в методе этой формы
3) тогда указание Form1. не нужно
4) присваивание метода OnClick без скобок!
MyButton[I].OnClick := MyOnClick; где MyOnClick это procedure TForm1.MyOnClick(Sender:TObject); 5) не обязательно, но ОБЫЧНО владельцем созданного объекта назначают не его родителя а саму форму или фрейм
MyButton := TButton.Create(Self)
-
МедиаСистемы отреагировална sinuke в Перехват события OnClick в динамическом массиве TBotton
Вот так можно узнать, какая кнопка нажата (в продолжение предыдущего сообщения):
procedure TForm1.OnMyClick(Sender: TObject); var MyButton: TButton absolute Sender; begin ShowMessage(MyButton.Name + ' ' + MyButton.Tag.ToString); end;
-
МедиаСистемы отреагировална #WAMACO в Перехват события OnClick в динамическом массиве TBotton
Form1.MyButton[I].OnClick := OnMyClick(ссылка на объект TMyButton); далее в OnMyClick узнавай кнопку
-