Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2009, 13:05   #1
Shrekus
Новичок
Джуниор
 
Регистрация: 18.02.2009
Сообщений: 2
Вопрос Помогите с написанием компонента.

Нужно создать графический фокус. Если нажато на компоненте то компонент рисуется соответствующим цветом, а если нажатие происходить на другом каком-то компоненте нужно отрисовать компонент другими цветами.

Да можно написать для формы, но тога придется для каждого компонента писать, а если компонентов может бить разное число.
Shrekus вне форума Ответить с цитированием
Старый 18.02.2009, 13:46   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

А так тебе придеться устанавливать ссылки в своем компоненте на другие. Принципе можешь воспользовать поиском всех контролов на форме, а там проверяй что за они и делай что хочешь.
Hollander вне форума Ответить с цитированием
Старый 18.02.2009, 14:09   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Нужно создать графический фокус.
Есть набор компонентов TMS Component Pack называется - там есть компонент ,ложась на форму который выделяет прозрачной рамкой компонент на котором фокус стоит ,параметры рамки настраиваются. Выделяет даже отдельные ячейки в любых таблицах. Попробуй - может его будет достаточно.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 18.02.2009, 14:50   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Единственный и самый верный помощник в нелегком деле написания своих компонентов - книга Р.Конопки "Создание оригинальных компонент в среде DELPHI". Скачайте ее себе и многое станет понятным.
mihali4 вне форума Ответить с цитированием
Старый 19.02.2009, 10:42   #5
Shrekus
Новичок
Джуниор
 
Регистрация: 18.02.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
Есть набор компонентов TMS Component Pack называется - там есть компонент ,ложась на форму который выделяет прозрачной рамкой компонент на котором фокус стоит ,параметры рамки настраиваются. Выделяет даже отдельные ячейки в любых таблицах. Попробуй - может его будет достаточно.
Да красиво, но слишком круто.

Добавил события:


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;

Возможно есть другие варианты, не судите строго. Работает.

Спасибо всем!
Shrekus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с написанием бат файла Aivar Помощь студентам 2 24.09.2008 22:58
Помогите с написанием! Aboltus Общие вопросы Delphi 1 30.07.2008 15:16
Помогите с написанием процедуры... Bkmz66 Помощь студентам 1 15.05.2008 13:27