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

Вниз

Как реализовать следующую штуку?   Найти похожие ветки 

 
Артем К.   (2004-10-15 13:49) [0]

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

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

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

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


 
Pentium133 ©   (2004-10-15 13:52) [1]

Введи дополнительное свойство Selected, которое изменяй в момент выбора. В момент рисования анализируй значение этого свойства и делай что надо.


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

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


 
Pentium133 ©   (2004-10-15 13:58) [3]

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


 
Ozone ©   (2004-10-15 13:58) [4]

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

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


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

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


 
DiamondShark ©   (2004-10-15 14:06) [6]

WM_SETFOCUS
WM_KILLFOCUS


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

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


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

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


 
DiamondShark ©   (2004-10-15 14:10) [9]

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


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

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

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

Как быть?


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


> Pentium133

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


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


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

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


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

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

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


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


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

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


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

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


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

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


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

>>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:30) [18]

DiamondShark ©   (15.10.04 14:21) [14]

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


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

Артем К.   (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;


 
DiamondShark ©   (2004-10-15 14:33) [20]


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

Вроде как да.


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
14-1097403953
Рамиль
2004-10-10 14:25
2004.10.31
Ну, вот, и я женился:)


3-1096545389
asdfgh
2004-09-30 15:56
2004.10.31
Упаковка DBF-файла


1-1097650128
Rentgen
2004-10-13 10:48
2004.10.31
Как узнать число-ли переменная S:String;


1-1097817455
NewDelpher
2004-10-15 09:17
2004.10.31
Сообщения. Не знаю как подступиться.


1-1097667686
Leaner
2004-10-13 15:41
2004.10.31
Подскажите, как можно "объеденить" TMenu и TMenuItem