![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможны ли такой виз. компонент?
mmms © (2006-11-06 16:38:00)Есть необходимость в одном виз. компоненте, состоящем из двух TComboBox, четырех TButton. Цель - в одном TComboBox показывать года, в другом TComboBox - месяца, а кнопкам год минус/плюс, и месяц минус/плюс.
Из свойств - только от какого по какой год показывать.
Из обработчиков - никаких спец, можно на всякий случай OnChange.
Возвращаемое значение - диапазон TDateTime, с первого по посл. момент времени этого месяца.
Например d1=2006.01.01:00.00.00, d2=2006.01.31:23.59.59
Или для этого надо восп. только фреймами, и такие компоненты вовсе не пишутся? Хотелось бы компонент сделать, чтобы оперировать "как с одним" элементом.
Percent (2006-11-06 21:56:00) [1]правда в дизайнере не видно
Что это значит?
Кнопка, созданная так, как в [6], будет видна на этапе разработки.
Или имеется в виду, что она будет недоступна в Object Inspector'е?
Ну так дай к ней доступ, объявив как published свойство.
mmms (2006-11-06 20:14:00) [2]
Возможен. А чем не нравится стандартный TDateTimePicker?
В некоторых случаях надо выбрать год и 1 месяц и все (бухг. отчеты и т.п.), а если делать 2 TDateTimePicker, то ещё выбрать надо начало месяца, конец месяца... ну в общем не совсем подходит, хотя раньше только на них и делалось.
mmms (2006-11-06 20:07:00) [3]Все, дошло, на этапе создания можно делать что хочешь, правда в дизайнере не видно, но это не так и важно :)
constructor TMmmsCustomPanel.Create (AOwner:TComponent);
begin
inherited Create(AOwner);
Width:=200;
Height:=200;
btn:= TButton.Create(Self);
btn.Parent:=Self;
btn.Top:=10;
btn.Left:=10;
btn.Caption:='MyBtn';
end;
Percent (2006-11-06 19:53:00) [4]А нельзя ли сделать наследника TPanel, и на ней в момент создания создавать TButton и другие элементы? Реализуемо ли это?
Можно. Реализуемо.
И еще, что на практике делается в таком случае, когда необходимо объединить элементы
Можно сделать ссылки из одних компонентов на другие. Но это накладнее, чем на базе общего компонента-контейнера.
mmms (2006-11-06 18:44:00) [5]Попробовал, Component Template, интересно, но не подходит, он весь код "таскает за собой" в каждую форму, что не подходит, если задачу чуть расширить, и кода получается не мало, то тяжело управлять всем этим растиражированным хозяйством...
А нельзя ли сделать наследника TPanel, и на ней в момент создания создавать TButton и другие элементы? Реализуемо ли это?
И еще, что на практике делается в таком случае, когда необходимо объединить элементы, и с сокрытием свойств и методов каждого по отдельности элемента, и созданием своих обработчиков?
mmms (2006-11-06 18:13:00) [6]Спасибо, понятно, покопаю информацию Component Template. :)
DimaBr (2006-11-06 16:53:00) [7]
> Хотелось бы компонент сделать, чтобы оперировать "как с одним" элементом.
Это можно.
Можно организовать Component Template.
Percent (2006-11-06 16:41:00) [8]Возможен. А чем не нравится стандартный TDateTimePicker?