Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как реализовать следующую штуку? [D7, WinXP]


Страницы:   1 2

Артем К. ©   (2004-10-15 13:49:00) 

Привет мастера!

Делаю свой компонент панели.
У панели есть заголовок.
На форме будет несколько таких панелек.

Надо сделать так, чтобы при выборе панели или элементов на панели заголовок панели рисовался жирным шрифтом, а при выборе другой панели - обычным шрифтом.

Заранее спасибо!


Артем К.   (2004-10-15 14:39:00) [1]

Всем большое человеческое спасибо!


DiamondShark   (2004-10-15 14:33:00) [2]


> Артем К.   (15.10.04 14:27) [17]

Вроде как да.


Игорь Шевченко   (2004-10-15 14:31:00) [3]

Артем К.   (15.10.04 14:27) [17]

procedure TMyPanel.DoEnter;
begin
 inherited;
 Font.Style := Font.Style + [fsBold];
end;

procedure TMyPanel.DoExit;
begin
 inherited;
 Font.Style := Font.Style - [fsBold];
end;


Игорь Шевченко   (2004-10-15 14:30:00) [4]

DiamondShark ©   (15.10.04 14:21) [14]

Именно. Наиболее безболезненный способ, и делается за 2 минуты.


Артем К.   (2004-10-15 14:27:00) [5]

>>DiamondShark

так правильно будет?

private
FSelected: boolean;
procedure DoEnter; override;
procedure DoExit; override;

procedure MyPanel.DoEnter;
begin
inherited;
FSelected := true;
Invalidate;
end;

procedure MyPanel.DoExit;
begin
inherited;
FSelected := false;
Invalidate;
end;


Артем К.   (2004-10-15 14:24:00) [6]

пишу компонент конечно


DiamondShark   (2004-10-15 14:23:00) [7]

Так... подожди...
Ты компонент пишешь, или на форме собираешь?


DiamondShark   (2004-10-15 14:21:00) [8]


> Артем К.   (15.10.04 14:10) [10]

Тогда перекрывать DoEnter, DoExit


Артем К.   (2004-10-15 14:17:00) [9]

есть форма: на ней несколько этих панелей и прочие эл-ты управления.

если мы выбираем некоторый эл-т управления на панели (панель 1), то заголовок панели должен быть жирным, иначе если выбираем другой эл-т управления на другой панели или на форме, то заголовок панели (панель 1) должен быть обычным, также с остальными панелями.


Pentium133   (2004-10-15 14:12:00) [10]


> Артем К.   (15.10.04 14:10) [10]

Напиши-ка лучше что должно быть


DiamondShark   (2004-10-15 14:11:00) [11]


> Pentium133

Поцню не надо гойворить, да?


Артем К.   (2004-10-15 14:10:00) [12]

>>Pentium133
Можно и так, но тогда если на форме к примеру находится Edit то при передачи фокуса Editu панель будет оставаться активной (в фокусе) - а этого не должно быть.

>>DiamondShark
А если я буду делать через WM_SETFOCUS, WM_KILLFOCUS, то при передачи фокуса элементам управления, которые находятся на панели, панелт потеряет активность (фокус) - и этого не должно быть.

Как быть?


DiamondShark   (2004-10-15 14:10:00) [13]

Как вариант -- перекрыть DoEnter, DoExit


Pentium133   (2004-10-15 14:08:00) [14]

to Артем К.
Не обращай внимание на [6], а то совсем запутаешся.


Pentium133   (2004-10-15 14:06:00) [15]

Напрмер в цикле пройти по всем панелькам и отменить Selected. У нужной установить.


DiamondShark   (2004-10-15 14:06:00) [16]

WM_SETFOCUS
WM_KILLFOCUS


Артем К.   (2004-10-15 14:03:00) [17]

если я сделаю в момент клика мышкой, то как мне потом снять это выделение панели, при выборе другой панели?


Ozone   (2004-10-15 13:58:00) [18]

Артем К.   (15.10.04 13:57) [2]

А эт уже зависит от тебя. Можешь сделать при нажатии на панель, можешь при наведении... Вобщем, все в твоих руках.


Pentium133   (2004-10-15 13:58:00) [19]

ну не знаю, ты ж компонент пишешь.
может в момент клика мышкой?


Артем К.   (2004-10-15 13:57:00) [20]

>>Pentium133
а как реализовать момент выбора и момент снятия выбора?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо