Главная страница
    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.46 MB
Время: 0.006 c
1-59768
GIL
2003-05-06 16:37
2003.05.19
TTreeNode


14-59858
gn
2003-04-28 05:26
2003.05.19
извиняюсь за опаздание


1-59699
cyril
2003-05-07 20:56
2003.05.19
Как


1-59668
Lamerr
2003-05-07 09:22
2003.05.19
Хранение табличных данных в файлах


3-59604
Анатолий
2003-04-28 15:06
2003.05.19
Как изменить тип поля в таблице(Currency на Float)?





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