|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2009, 13:05 | #1 |
Новичок
Джуниор
Регистрация: 18.02.2009
Сообщений: 2
|
Помогите с написанием компонента.
Нужно создать графический фокус. Если нажато на компоненте то компонент рисуется соответствующим цветом, а если нажатие происходить на другом каком-то компоненте нужно отрисовать компонент другими цветами.
Да можно написать для формы, но тога придется для каждого компонента писать, а если компонентов может бить разное число. |
18.02.2009, 13:46 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
А так тебе придеться устанавливать ссылки в своем компоненте на другие. Принципе можешь воспользовать поиском всех контролов на форме, а там проверяй что за они и делай что хочешь.
|
18.02.2009, 14:09 | #3 | |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
Цитата:
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
|
18.02.2009, 14:50 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Единственный и самый верный помощник в нелегком деле написания своих компонентов - книга Р.Конопки "Создание оригинальных компонент в среде DELPHI". Скачайте ее себе и многое станет понятным.
|
19.02.2009, 10:42 | #5 | |
Новичок
Джуниор
Регистрация: 18.02.2009
Сообщений: 2
|
Цитата:
Добавил события: FonEnter : TNotifyEvent; FonExit : TNotifyEvent; procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS; procedure WMLButtonUp(var Msg: TMsg);message WM_LBUTTONUP; property OnEnter : TNotifyEvent read FonEnter write FonEnter; property OnExit : TNotifyEvent read FonExit write FonExit; procedure TShop.WMSetFocus(var Message: TWMSetFocus); begin inherited; Invalidate; If Assigned(FonEnter) then FonEnter(Self); Focus := True; end; procedure TShop.WMKillFocus(var Message: TWMKillFocus); begin inherited; Invalidate; If Assigned(FonExit) then FonExit(Self); Focus := False; end; procedure TShop.WMLButtonUp(var Msg: TMsg); begin SetFocus; inherited; Paint; end; Возможно есть другие варианты, не судите строго. Работает. Спасибо всем! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с написанием бат файла | Aivar | Помощь студентам | 2 | 24.09.2008 22:58 |
Помогите с написанием! | Aboltus | Общие вопросы Delphi | 1 | 30.07.2008 15:16 |
Помогите с написанием процедуры... | Bkmz66 | Помощь студентам | 1 | 15.05.2008 13:27 |