Я пишу редактор пользовательских компонентов, по существу похожий на редактор TActionList
, в котором он позволяет создавать субкомпоненты. Редактор имеет кнопки для добавления/удаления компонентов.Дизайнер Delphi, наследуется ли компонент?
Теперь я хотел бы узнать, наследуется ли выбранный компонент, чтобы я мог отключить кнопку удаления. Я не нашел такого члена в IDesigner
или связанных с ним интерфейсах.
Если я просто идти вперед и удалить с помощью Designer.DeleteSelection(True);
тогда я получаю исключение:
Выбор содержит компонент, ххх, введенный в предка и не могут быть удалены.
Это не так плохо, но я бы предпочел отключить кнопку удаления в первую очередь.
Вы можете получить доступ к списку своих товаров, когда вы выбираете их в своем представлении списка (?) И запрашивать каждый элемент, если 'InheritsFrom' определенного класса. – TLama
@TLama Нет, это не оно. Дэниел говорит о визуальном наследовании, о чем свидетельствует унаследованное ключевое слово в файлах .dfm. –
Я был бы удивлен, если бы это было возможно. Попробуйте сделать то, что вы описали, с помощью запаса 'TActionList'. Сообщение об ошибке: 'Невозможно переименовать компонент Action1, компонент был введен в форме предка. '. Но затем нажмите на действие, и оно все равно исчезнет, и появится еще одно сообщение об ошибке: * Аргумент вне диапазона *. Таким образом, IDE не может понять это правильно! –