Главная Информер Журнал Форум Wiki DRKB Discuz!ML Помощь проекту


Как динамически менять шрифты.

Компилятор: C++ Builder

Следующий пример меняет шрифт в окошке редактирования (Edit). Когда пользователь кликнет на пункт в списке, то текст в окошке редактирования поменяет шрифт. Клик по кнопке восстанавливает нормальный шрифт. Создайте приложение, которое будет иметь форму со списком TListBox(ListBox1), TButton(Button1) и TEdit(Edit1) компонентами. Добавьте следующий код в конструктор формы:

  // TFontStyles FSs[4]; в заголовке
  //сбрасываем установки.
  Edit1->Font->Style = Edit1->Font->Style.Clear();
  ListBox1->Items->Add("fsBold");
  FSs[0] = fsBold;
  ListBox1->Items->Add("fsItalic");
  FSs[1] = fsItalic;
  ListBox1->Items->Add("fsUnderline");
  FSs[2] = fsUnderline;
  ListBox1->Items->Add("fsStrikeOut");
  FSs[3] = fsStrikeOut;
----------------

Добавьте следующий код в событие OnClick списка (ListBox1Click):

//Получаем номер выбранного пункта
  int x = ListBox1->ItemIndex;
  //Изменяем текст окошка редактирования на текст
  //выбранного пункта в списке
  Edit1->Text = ListBox1->Items->Strings[x];
  //Добавляем стиль к установкам шрифта.
  Edit1->Font->Style = FSs[x];
----------------

В заключение, поместите следующий код в событие OnClick кнопки (Button1Click):

//Сбрасываем настройку шрифта
  Edit1->Font->Style = Edit1->Font->Style.Clear();
-----------------------------------------------------------------