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

Вниз

Создание компонента   Найти похожие ветки 

 
Ler   (2003-05-06 13:07) [0]

Люди, помогите разобраться!

Пытаюсь построить такой компонент
( TButtonedPanel=class(TPanel) ):

Есть свойства:
TButtonedPanel.Button // private
TButtonedPanel.Caption // published

Нужно, что бы Caption отображался не на самой панели (этого вообще ненадо), а на кнопке внутри этой панели. Как такое делается?


 
MBo ©   (2003-05-06 13:10) [1]

убери то место, где Caption рисутся на панели, и присвой этот же Caption кнопке


 
icWasya ©   (2003-05-06 13:52) [2]

типа


implementation

Procedure TButtonedPanel.SetCaption(Const ACaption:String);
begin
Button.Caption:=ACaption;
end;
function TButtonedPanel.GetCaption:String;
begin
Result:=Button.Caption;
end;


 
Ler   (2003-05-07 14:29) [3]

Спасибо большое за консультацию!

Вот теперь такой вопрос, более глобальный, что-ли:

Хочу написать компонент типа TEdit( и TDBEdit), но с заголовком слева от поля ввода-редактирования или сверху (ну типа у компонента есть свойство CaptionPosition=(cpLeft,cpTop)). Видел такие компоненты в сторонних библиотеках, так что интерес чисто спортивный: надо же когда-то научится писать компоненты.
Так вот, как Вы считаете, по какой объектной иерархии строить такую вещь. Сдается мне, что подход, который я избрал первоначально, не очень верный. Т.е. я на Panel накладывал Label и TEdit. Что скажите?


 
Ler   (2003-05-07 15:01) [4]

АУ !!!


 
REA ©   (2003-05-07 15:04) [5]

Уже есть TLabeledEdit в D7. Тебе для тренировки? Возьми код и сделай похоже.


 
evvcom ©   (2003-05-07 15:06) [6]

Тогда уж CaptionPosition=(cpLeft,cpRight,cpTop,cpBottom).

> Так вот, как Вы считаете, по какой объектной иерархии строить
> такую вещь. Сдается мне, что подход, который я избрал первоначально,
> не очень верный.

Что-то типа этого и Борланд использует в своих компонентах. Но! Все же TLabel - это просто картинка, которую можно нарисовать на Canvas, не наворачивая на нее кучу событий. Хотя многие все же придется переписывать для нового компонента.


 
Ler   (2003-05-07 15:07) [7]

Дай код пож!
Буду признателен!
На Michaele001@yandex.ru


 
pusrg ©   (2003-05-07 16:41) [8]

А зачем использовать TPanel в качестве подложки? Почему бы сразу не делать компонент от класса TCustomControl, и внутри него уже заводить приватные поля FLabel и FEdit.
Хотя по-моему evvcom прав и надпись лучше отрисовывать на канвасе.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
1-59773
Arkady
2003-05-06 11:08
2003.05.19
TOpenDialog


14-59879
Мишган
2003-04-29 12:15
2003.05.19
Уважаемые профи, как при формировании Help для проекта создать


7-59971
Yrek
2003-03-21 14:38
2003.05.19
Как узнать, какие файлы


3-59634
Behemoth
2003-04-28 17:13
2003.05.19
Где в 2000 устанавливается формат даты?


14-59854
kol
2003-05-01 15:47
2003.05.19
Серверы приложений