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

Вниз

Как отработать DragAndDrop в DesignTime?   Найти похожие ветки 

 
Vasiliy   (2006-11-11 20:40) [0]

Задача такая:
Есть два компонета наследники TControl, A и B.
Допустим компонент A уже на форме, нужно на форму положить компонент В так чтобы он автоматом добавлялся в TList компонента A.


 
Юрий Зотов ©   (2006-11-11 22:22) [1]

Дык... а при чем же тут дрыг-н-прыг?

У обоих компонентов есть Notification. Этого вполне достаточно.


 
Vasiliy   (2006-11-11 23:15) [2]

Не знаю что такое Notification, тёмный, нечего сказать :)

Решил вопрос подругому

Компонент А сделал наследником TCustomControl и установил в ControlStyle csAcceptsControls, после этого все компоненты стали сваливаться в Controls, этого достаточно.


 
Юрий Зотов ©   (2006-11-11 23:21) [3]

> Vasiliy   (11.11.06 23:15) [2]

Да, только это решение ДРУГОЙ задачи, а не той, которая была описана в вопросе.

Кстати, а почему бы тогда просто не использовать панель?


 
Vasiliy   (2006-11-12 12:59) [4]

Да просто пытался собрать компонент по минимуму, да и канва нужна была, а у панели кажись её нет.

А задачу может быть и не совсем понятно описал, дело в том, что компонент А - это чтото типа скина с битмаповскими элементами отрисовки, а компонент В - это графическая кнопка.
По отдельности все работает замечательно, но когда ложу кнопку на скин то возникают проблемы с фиксацией положения кнопки на скине при изменении размеров окна. Отрисовка происходит в разное время и кнопка ползает по скину. Поэтому я решил отказаться от канвы и метода паинт на кнопке и стал отрисовывать содержание кнопки в паинте скина.
Вот как раз для этого мне и нужно было чтобы компоненты кнопок прописывались в массиве скина.

Если есть более элегантное решение - буду премного благодарен.


 
Юрий Зотов ©   (2006-11-12 13:30) [5]

У панели канва есть. Она в protected, но классам-наследникам доступна (можно сделать доступной и НЕнаследникам). Метод Paint у панели тоже есть, там можно рисовать что угодно.

А кнопка ползает именно из-за того, что "отрисовка происходит в разное время". Это просто ляпа, такого быть не должно.

Чем не устраивают панель и TSpeedButton в качестве предков? У них обоих можно перекрыть Paint и рисовать их как угодно. Причем с гарантией того, что ползать ничего не будет.


 
Vasiliy   (2006-11-14 14:36) [6]


> Чем не устраивают панель и TSpeedButton в качестве предков?
>  У них обоих можно перекрыть Paint и рисовать их как угодно.
>  Причем с гарантией того, что ползать ничего не будет.


Сначала хотел возразить, но оказывается я понятия не имел о наличии у SpeedButton свойства Anchors.
Век живи, век учись :)

Пожалуй есть смысл переписать компоненты, спасибо за подсказку!



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

Форум: "Компоненты";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
3-1184004439
Giperon
2007-07-09 22:07
2007.11.25
Локальная база данных - какая технология лучше?


15-1193293364
shadowonline
2007-10-25 10:22
2007.11.25
Остановка загрузки Windows до окончания работы программы


15-1193149253
xayam
2007-10-23 18:20
2007.11.25
подскажите бесплатный php-хостинг


2-1194163151
kudatsky
2007-11-04 10:59
2007.11.25
Как заставить кнопку мигать ?


15-1192820360
NotWinProgrammer
2007-10-19 22:59
2007.11.25
для меня открытие





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