Главная страница
    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.049 c
6-1164519806
DRtM
2006-11-26 08:43
2007.11.25
Как определить по редиректу реальное имя файла в сети


2-1193907869
barakuda
2007-11-01 12:04
2007.11.25
Генератор случайных чисел...


6-1174653783
Korefey
2007-03-23 15:43
2007.11.25
Работа с FTP сервером.


2-1193926814
webpauk
2007-11-01 17:20
2007.11.25
удаление элемента из Array


5-1163604047
--= Eagle =--
2006-11-15 18:20
2007.11.25
EClassNotFound





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