Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

Возможны ли такой виз. компонент?   Найти похожие ветки 

 
mmms   (2006-11-06 16:38) [0]

Есть необходимость в одном виз. компоненте, состоящем из двух TComboBox, четырех TButton. Цель - в одном TComboBox показывать года, в другом TComboBox - месяца, а кнопкам год минус/плюс, и месяц минус/плюс.

Из свойств - только от какого по какой год показывать.
Из обработчиков - никаких спец, можно на всякий случай OnChange.
Возвращаемое значение - диапазон TDateTime, с первого по посл. момент времени этого месяца.
Например d1=2006.01.01:00.00.00, d2=2006.01.31:23.59.59

Или для этого надо восп. только фреймами, и такие компоненты вовсе не пишутся? Хотелось бы компонент сделать, чтобы оперировать "как с одним" элементом.


 
Percent   (2006-11-06 16:41) [1]

Возможен. А чем не нравится стандартный TDateTimePicker?


 
DimaBr   (2006-11-06 16:53) [2]


> Хотелось бы компонент сделать, чтобы оперировать "как с одним" элементом.


Это можно.
Можно организовать Component Template.


 
mmms   (2006-11-06 18:13) [3]

Спасибо, понятно, покопаю информацию Component Template. :)


 
mmms   (2006-11-06 18:44) [4]

Попробовал, Component Template, интересно, но не подходит, он весь код "таскает за собой" в каждую форму, что не подходит, если задачу чуть расширить, и кода получается не мало, то тяжело управлять всем этим растиражированным хозяйством...
А нельзя ли сделать наследника TPanel, и на ней в момент создания создавать TButton и другие элементы? Реализуемо ли это?

И еще, что на практике делается в таком случае, когда необходимо объединить элементы, и с сокрытием свойств и методов каждого по отдельности элемента, и созданием своих обработчиков?


 
Percent   (2006-11-06 19:53) [5]

А нельзя ли сделать наследника TPanel, и на ней в момент создания создавать TButton и другие элементы? Реализуемо ли это?

Можно. Реализуемо.

И еще, что на практике делается в таком случае, когда необходимо объединить элементы

Можно сделать ссылки из одних компонентов на другие. Но это накладнее, чем на базе общего компонента-контейнера.


 
mmms   (2006-11-06 20:07) [6]

Все, дошло, на этапе создания можно делать что хочешь, правда в дизайнере не видно, но это не так и важно :)
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;


 
mmms   (2006-11-06 20:14) [7]

Возможен. А чем не нравится стандартный TDateTimePicker?
В некоторых случаях надо выбрать год и 1 месяц и все (бухг. отчеты и т.п.), а если делать 2 TDateTimePicker, то ещё выбрать надо начало месяца, конец месяца... ну в общем не совсем подходит, хотя раньше только на них и делалось.


 
Percent   (2006-11-06 21:56) [8]

правда в дизайнере не видно

Что это значит?
Кнопка, созданная так, как в [6], будет видна на этапе разработки.
Или имеется в виду, что она будет недоступна в Object Inspector"е?
Ну так дай к ней доступ, объявив как published свойство.



Страницы: 1 вся ветка

Текущий архив: 2007.11.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
2-1192460045
фыва
2007-10-15 18:54
2007.11.11
буфер обмена


2-1192772617
ses
2007-10-19 09:43
2007.11.11
combobox. edit;


15-1191508929
Ega23
2007-10-04 18:42
2007.11.11
Рыдал


2-1192691195
F@T@L_Err0r
2007-10-18 11:06
2007.11.11
COM1


11-1170771683
Psychedelic
2007-02-06 17:21
2007.11.11
Исправления в KOLComboBoxEx и KOLSATab