Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.049 c
3-1183525134
dimaL
2007-07-04 08:58
2007.11.11
SQL запрос


15-1191840512
allrussia
2007-10-08 14:48
2007.11.11
"Кракозябры" при вставке из буфера


1-1187832972
Alex_Y
2007-08-23 05:36
2007.11.11
Данные из clipboard


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


8-1168953381
Agent[007]
2007-01-16 16:16
2007.11.11
Прозрачность текстур с помощью маски (OpenGL)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский