Главная страница
    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.04 c
6-1173451478
K@KTUS
2007-03-09 17:44
2007.11.11
Компоненты FastNet


1-1187796570
Дмитрий Белькевич
2007-08-22 19:29
2007.11.11
Полупрозрачность tpngimage на прозрачной форме.


2-1192991104
NiGGa
2007-10-21 22:25
2007.11.11
Delphi5 и константы


8-1169034939
Vovan #2
2007-01-17 14:55
2007.11.11
Работа со звуком в Delphi


15-1191943278
$Pl@Sh
2007-10-09 19:21
2007.11.11
как устроить инет?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский