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

Вниз

Как установить свой фонт для контролов при Enabled=false   Найти похожие ветки 

 
bss   (2007-04-16 09:20) [0]

Как установить произвольный шрифт для контрола, когда состояние контрола Enabled=false?


 
Novice   (2007-04-16 09:53) [1]

procedure TForm1.Button1Click(Sender : TObject);
begin
if Button2.Enabled = false then Button2.Font.Name := "Arial";
end;


 
Kolan ©   (2007-04-16 09:57) [2]

> Novice  

Еще же назад надо вернуть :)


 
Novice   (2007-04-16 10:22) [3]

procedure TForm1.Button1Click(Sender : TObject);
begin
if Button2.Enabled = false then Button2.Font.Name := "Arial" else
Button2.Font.Name := "MS Sans Serif";
end;

:)


 
Yanis ©   (2007-04-16 10:39) [4]


> Как установить произвольный шрифт для контрола, когда состояние
> контрола Enabled=false?

Так же как и у компонента у которого состояние Enabled = True.
Не совсем ясно, в чём конкретно загвоздка.


 
bss   (2007-04-16 10:51) [5]

У нескольких контролов сразу


 
Yanis ©   (2007-04-16 11:21) [6]

Примерно так:
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;


 
homm ©   (2007-04-16 12:06) [7]

> [6] Yanis ©   (16.04.07 11:21)
> Примерно так:

И когда это вызывать? И как потом назад возвращать?


 
{RASkov}   (2007-04-16 12:52) [8]

> И когда это вызывать?

после смены состояния 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 13:12) [9]

> после смены состояния Enable Controla.

Это был наводящий вопрос, ответ на который я догадывался. Дак вот 3 раза обратится к RTTI для каждого контролла при каждой смене состояния любого из них — не позволительная роскошь.


 
{RASkov}   (2007-04-16 13:13) [10]

> [9] homm ©   (16.04.07 13:12)

With


 
Yanis ©   (2007-04-16 13:17) [11]


> Дак вот 3 раза обратится к RTTI для каждого контролла при
> каждой смене состояния любого из них — не позволительная
> роскошь.

Да работа с VCL вообще штука страшная.


 
bss   (2007-04-16 13:41) [12]

А если контролы разных типов (TEdit, TButton и т.п.)?


 
{RASkov}   (2007-04-16 13:49) [13]

> [12] bss   (16.04.07 13:41)

Приводи к общему родителю.



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

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

Наверх




Память: 0.47 MB
Время: 0.049 c
15-1179175118
TStas
2007-05-15 00:38
2007.06.10
Есть к кого дистрибутив 5-й или ниже аськи?


2-1179597862
XPMan
2007-05-19 22:04
2007.06.10
Стиль окна


2-1179472932
wWwWw
2007-05-18 11:22
2007.06.10
CloseFile


3-1174554410
elserpiente
2007-03-22 12:06
2007.06.10
просмотреть updatetime таблицы в FB


2-1179745233
alex810
2007-05-21 15:00
2007.06.10
Эквалайзер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский