Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2013, 13:04   #1
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию [RichEdit] изменение размера шрифта

заметил что если зажать левую кнопку мыши и скролить колесиком, то изменяется размер шрифта в RichEdit`e... что не совсем желательно для меня. каким образом можно запретить?

пытался
Код:
procedure TForm1.redt1MouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  WheelDelta := 0;
end;
но ничего не вышло) а как обработать "клик + скрол колесиком" что-то не соображу...
unbanned вне форума Ответить с цитированием
Старый 01.07.2013, 14:23   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

или FontDialog, или RichEdit.Font.Size
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 01.07.2013, 15:35   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Возможно EM_SETZOOM поможет. Зум размера фонта он позволяет сделать

add

Код:
procedure TForm1.RichEdit1ResizeRequest(Sender: TObject; Rect: TRect);
const EM_SETZOOM = WM_USER+225;
begin
  SendMessage(Richedit1.Handle,EM_SETZOOM,100,100);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 01.07.2013 в 16:18.
Аватар вне форума Ответить с цитированием
Старый 01.07.2013, 22:43   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

может стоит лучше записать размер шрифта в константу или переменую и в событие присвоить значение свойству RichEdit1.Font.Size.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 01.07.2013, 22:45   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

саша40, в RichEdit разные участки текста могут иметь вообще разный фонт, не говоря об его размере
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.07.2013, 22:58   #6
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

саша40, мне необходимо сохранить форматирование. участки текста форматируются на "лету" в зависимости от значения. и записывать все атрибуты в константы, мягко говоря проблематично.

Аватар, спасибо, все работает. как раз то что нужно осталось разобраться каким образом это все работает :D
unbanned вне форума Ответить с цитированием
Старый 02.07.2013, 05:53   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
пытался
Код:
procedure TForm1.redt1MouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  WheelDelta := 0;
end;
но ничего не вышло)
Забыл Handled := True. Кроме того, текущее состояние кнопок мыши передается через параметр Shift, курить в справке описание TShiftState.
Vapaamies вне форума Ответить с цитированием
Старый 02.07.2013, 11:31   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Vapaamies +1. Да, на OnMouseWheel тоже будет работать и это более корректно
Код:
procedure TForm1.RichEdit1MouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  Handled:=ssLeft in Shift;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.07.2013 в 11:35.
Аватар вне форума Ответить с цитированием
Старый 02.07.2013, 12:10   #9
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

спасибо да, так действительно нагляднее...
unbanned вне форума Ответить с цитированием
Старый 03.07.2013, 09:42   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Кстати, глядя в MSDN, для отключения именно масштабирования я бы поэкспериментировал так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  RichEdit1.Perform(EM_SETZOOM, 0, 0);
end;
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера шрифта всей таблицы Vitalik85 HTML и CSS 8 06.08.2012 17:45
TWebbrowser изменение размера шрифта teandr Общие вопросы Delphi 2 08.06.2010 08:57
Компонент StringGrid --> изменение размера шрифта Dr.Ern Компоненты Delphi 1 06.03.2010 00:38
Изменение размера шрифта на шаг Diego__ Microsoft Office Word 8 16.12.2009 18:02
Изменение размера шрифта Nando Microsoft Office Excel 4 07.03.2009 16:45