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

Вниз

Как отработать 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
15-1193341207
@!!ex
2007-10-25 23:40
2007.11.25
Объясните?


2-1194152483
Alex8
2007-11-04 08:01
2007.11.25
Объединение трех таблиц


1-1189155493
dima_q
2007-09-07 12:58
2007.11.25
Локализация в Delphi


15-1192716641
Delphi User
2007-10-18 18:10
2007.11.25
Каким фаерволом вы пользуетесь ? Outpost слишком тяжелый.


2-1193943225
SKIPtr
2007-11-01 21:53
2007.11.25
Как удалить форму