![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как установить свой фонт для контролов при Enabled=false
bss © (2007-04-16 09:20:00)Как установить произвольный шрифт для контрола, когда состояние контрола Enabled=false?
{RASkov} (2007-04-16 13:49:00) [1]> [12] bss (16.04.07 13:41)
Приводи к общему родителю.
bss (2007-04-16 13:41:00) [2]А если контролы разных типов (TEdit, TButton и т.п.)?
Yanis (2007-04-16 13:17:00) [3]
> Дак вот 3 раза обратится к RTTI для каждого контролла при
> каждой смене состояния любого из них — не позволительная
> роскошь.
Да работа с VCLвообще штука страшная.
{RASkov} (2007-04-16 13:13:00) [4]> [9] homm © (16.04.07 13:12)
With
homm (2007-04-16 13:12:00) [5]> после смены состояния Enable Controla.
Это был наводящий вопрос, ответ на который я догадывался. Дак вот 3 раза обратится к RTTI для каждого контролла при каждой смене состояния любого из них — не позволительная роскошь.
{RASkov} (2007-04-16 12:52:00) [6]> И когда это вызывать?
после смены состояния Enable Controla.
Сделать процедуру, например:
procedure SetFontEn;
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
if (Components[i] is TButton) then
if (Components[i] as TButton).Enabled then
(Components[i] as TButton).Font.Name := имя_шрифта else
(Components[i] as TButton).Font.Name := имя_шрифта;
end;
> И как потом назад возвращать?
Так-же.
homm (2007-04-16 12:06:00) [7]> [6] Yanis © (16.04.07 11:21)
> Примерно так:
И когда это вызывать? И как потом назад возвращать?
Yanis (2007-04-16 11:21:00) [8]Примерно так:
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
if (Components[i] is TButton) then
if not (Components[i] as TButton).Enabled then
(Components[i] as TButton).Font.Name := имя_шрифта;
end;
bss (2007-04-16 10:51:00) [9]У нескольких контролов сразу
Yanis (2007-04-16 10:39:00) [10]
> Как установить произвольный шрифт для контрола, когда состояние
> контрола Enabled=false?
Так же как и у компонента у которого состояние Enabled = True.
Не совсем ясно, в чём конкретно загвоздка.
Novice (2007-04-16 10:22:00) [11]procedure TForm1.Button1Click(Sender : TObject);
begin
if Button2.Enabled = false then Button2.Font.Name := 'Arial' else
Button2.Font.Name := 'MS Sans Serif';
end;
:)
Kolan (2007-04-16 09:57:00) [12]> Novice
Еще же назад надо вернуть :)
Novice (2007-04-16 09:53:00) [13]procedure TForm1.Button1Click(Sender : TObject);
begin
if Button2.Enabled = false then Button2.Font.Name := 'Arial';
end;