Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
реклама

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменить стиль шрифта RichEdit нажатиями соответствующих комбинаций клавиш? (например включить курсив по нажатию Ctrl + I)

Вопрос:

Как изменить стиль шрифта RichEdit нажатиями соответствующих комбинаций клавиш? (например включить курсив по нажатию Ctrl + I)

Ответ:

В примере стили шрифта меняются по нажатию след. комбинаций клавиш

  • Ctrl + B - вкл/выкл жирного шрифта
  • Ctrl + I - вкл/выкл наклонного шрифта
  • Ctrl + S - вкл/выкл зачеркнутого шрифта
  • Ctrl + U - вкл/выкл подчеркнутого шрифта

Пример:

const
  KEY_CTRL_B = 02;
  KEY_CTRL_I =  9;
  KEY_CTRL_S = 19;
  KEY_CTRL_U = 21;

procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Ord(Key) of
  KEY_CTRL_B: 
    begin
      Key := #0;
        if fsBold in (Sender as TRichEdit).SelAttributes.Style then
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style - [fsBold]
      else
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style + [fsBold];
    end;
  KEY_CTRL_I:
    begin
      Key := #0;
        if fsItalic in (Sender as TRichEdit).SelAttributes.Style then
          (Sender as TRichEdit).SelAttributes.Style :=
          (Sender as TRichEdit).SelAttributes.Style - [fsItalic]
        else
          (Sender as TRichEdit).SelAttributes.Style :=
          (Sender as TRichEdit).SelAttributes.Style + [fsItalic];
    end;
  KEY_CTRL_S:
    begin
      Key := #0;
      if fsStrikeout in (Sender as TRichEdit).SelAttributes.Style then
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style-[fsStrikeout]
      else
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style+[fsStrikeout];
    end;
  KEY_CTRL_U:
    begin
      Key := #0;
      if fsUnderline in (Sender as TRichEdit).SelAttributes.Style then
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style-[fsUnderline]
      else
        (Sender as TRichEdit).SelAttributes.Style :=
        (Sender as TRichEdit).SelAttributes.Style+[fsUnderline];
    end;
  end;
end;

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог