Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Вниз

Как установить свой фонт для контролов при 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1179481989
LoRd1
2007-05-18 13:53
2007.06.10
Завершение работы (удаление) приложения


11-1161453735
SysError
2006-10-21 22:02
2007.06.10
KOLBitBtn изменить изображение


2-1179473515
Новичек
2007-05-18 11:31
2007.06.10
Вызов команды del (либо erase) в Delphi.


2-1179835519
iXT
2007-05-22 16:05
2007.06.10
Free


6-1164645192
АртемКИН
2006-11-27 19:33
2007.06.10
Indy Ftp Client





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский