|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Наследование от двух классов
Добрый день.
Есть два компонента. Первый это однострочный редактор с кнопкой для вызова диалогового окна, второй это комбобокс с фильтром. Как на их основе сделать третий гибридный? Читал, что можно через интерфейсы, но не совсем разобрался. Хотелось бы узнать поподробнее. Может посоветуете какую литературу. Спасибо. Последний раз редактировалось mind.beggar, 13.08.2015 в 09:40. |
#2
|
||||
|
||||
Код:
TMyClass = class(TInterfacedObject, IMy1Interface, IMy2Interface, ..., IMyNInterface); — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
А это обязательно должен быть один компонент?
Может решение с TFrame подойдёт? |
#4
|
||||
|
||||
Кстати, на счет фрейма хорошее решение.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Цитата:
Да, это должен быть один компонент. |
#6
|
||||
|
||||
помнится давным-давно, где-то на просторах Milky Way многие программисты Delphi мечтали о совмещенных компонентах TLabel с TEdit и TEdit с TButton. в итоге их мечты сбылись в виде TLabeledEdit и TButtonedEdit. можно подсмотреть как они реализованы. а интерфейсы тут ни при чем.
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
1. Множественного наследования в Дельфи НЕТ (интерфейсы не в счет, тем более, что там реально не наследование).
2. Множественное наследование в данном случае никак не поможет, оно вообще не про то. 3. Есть 3 пути реализовать такой компонент. 3а. Классический - пишем свой компонент практически с нуля, инкапсулируя в него нужные тебе классы. Пример можно посмотреть в Samples, там есть TSpinEdit, единственное отличие от того, что тебе нужно, так это то, что там кнопки встаиваются прямо внутрь поля редактирования. В твоем случа, наверное, можно взять TPanel за основу и на ней создавать нужные компоненты. 3б. Давно в Дельфи есть способ создать User-компонент. Надо просто набросать нужные компоненты, настроить их, а потом сохранить в репозитакии как единый объект. Называется Component Template (http://docs.embarcadero.com/products...lates_xml.html) 3в. Ну и как уже говорили, можно сделать свой фрейм с нужными компонентами и его использовать как самостоятельный компонент. Для того, что бы его можно было "бросать" в Design-time на форму, есть специальный компонет (ну не совсем компонет, кнопка, которая вызывает нужный диалог, называется Frames, см. здесь: http://docs.embarcadero.com/products...ames_xml.html). |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
mind.beggar (17.08.2015)
|