Главная страница
    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.057 c
2-1192439470
Lamer666
2007-10-15 13:11
2007.11.11
Как обработать событие ONCLICK программно созданной кнопки?


5-1162820306
mmms
2006-11-06 16:38
2007.11.11
Возможны ли такой виз. компонент?


15-1191796932
Альберт Мобайл
2007-10-08 02:42
2007.11.11
посоветуйте


2-1192591433
balepa
2007-10-17 07:23
2007.11.11
Access Violation or Invalide Pointer operation


2-1192706459
apic
2007-10-18 15:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский