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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2011, 08:23   #1
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
Вопрос Работа с FontDailog и FontComboBoX

Приветствую уважаемые программисты, очень требуется помощь, дело обстоит так, нужно чтобы при выделении определённого текста в RichEdit шрифты в FontDialog и FontComboBox одновременно менялись на его шрифт, например если одна часть выделенного текста имеет шрифт Arial то при её выделении соответственно шрифты менялись на Arial,, примерно как в WordPad, сделал одновременную смену шрифтов в этих двух компонентах, но по выделению фрагментов не получилось.
roperd вне форума Ответить с цитированием
Старый 14.07.2011, 09:33   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Код:
FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
FontDialog1.Font.Style := RichEdit1.SelAttributes.Style;
FontDialog1.Font.Color := RichEdit1.SelAttributes.Color;
Про компонент FontComboBoX не знаю... Где он вообще находится?
Помог? Будь человеком - жми на весы слева!
Jaguar83 вне форума Ответить с цитированием
Старый 14.07.2011, 10:52   #3
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Jaguar83 Посмотреть сообщение
Код:
FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
FontDialog1.Font.Style := RichEdit1.SelAttributes.Style;
FontDialog1.Font.Color := RichEdit1.SelAttributes.Color;
Про компонент FontComboBoX не знаю... Где он вообще находится?
Этот дополнительный компонент из набора RxLib позволяет более удобней выбирать шрифты из выпадающего меню, то что вы мне написали не поможет, нужно чтобы только при выделении определённого текста такое было, а так эти атрибуты накладываются на весь FontDialog и не дают возможность менять шрифты стандартным методом, надо как то сделать. чтобы если выделенный текст не равен шрифту в FontDialog и FontComboBox, то только тогда происходило это-FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
FontDialog1.Font.Style := RichEdit1.SelAttributes.Style;
FontDialog1.Font.Color := RichEdit1.SelAttributes.Color;, если равен то должно быть как обычно,то есть так:
RichEdit1.SelAttributies.Assign(Ric hEdit1.font);
roperd вне форума Ответить с цитированием
Старый 14.07.2011, 11:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для форматирования RichEdit совсем необязательно свои диалоги создавать, можно стандартными вещами воспользоваться. См. http://programmersforum.ru/showthread.php?t=159302
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.07.2011, 12:11   #5
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

В смысле не поможет? Проверял хотя бы?

RichEdit1.SelAttributes распространяется только на выделенный текст.
Для проверки загрузи RTF-документ с разным форматированием, брось на форму TLabel и напиши следующий обработчик события
Код:
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if (RichEdit1.SelLength <> 0) then begin
  FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
  FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
  FontDialog1.Font.Style:= RichEdit1.SelAttributes.Style;
  FontDialog1.Font.Color:= RichEdit1.SelAttributes.Color;
  Label1.Caption := FontDialog1.Font.Name + ', ' + IntToStr(FontDialog1.Font.Size);
end;
end;
При выделении текста будет меняться шрифт в FontDialog на тот, который в выделенном фрагменте, и заодно его название и размер будет отображаться в TLabel.

PS. Несколько раз перечитал вопрос. Вроде бы всё правильно понял, или у ТС очевидные проблемы в формулировании своих мыслей.
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 14.07.2011 в 12:13.
Jaguar83 вне форума Ответить с цитированием
Старый 14.07.2011, 13:25   #6
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Jaguar83 Посмотреть сообщение
В смысле не поможет? Проверял хотя бы?

RichEdit1.SelAttributes распространяется только на выделенный текст.
Для проверки загрузи RTF-документ с разным форматированием, брось на форму TLabel и напиши следующий обработчик события
Код:
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if (RichEdit1.SelLength <> 0) then begin
  FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
  FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
  FontDialog1.Font.Style:= RichEdit1.SelAttributes.Style;
  FontDialog1.Font.Color:= RichEdit1.SelAttributes.Color;
  Label1.Caption := FontDialog1.Font.Name + ', ' + IntToStr(FontDialog1.Font.Size);
end;
end;
При выделении текста будет меняться шрифт в FontDialog на тот, который в выделенном фрагменте, и заодно его название и размер будет отображаться в TLabel.

PS. Несколько раз перечитал вопрос. Вроде бы всё правильно понял, или у ТС очевидные проблемы в формулировании своих мыслей.
Спасибо и правда помогло, но работает только в одном из элементов либо в FontDialog либо в FontComboBox , буду думать как сделать, чтобы в обоих работал...
roperd вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00
FontComboBox ScreN Общие вопросы Delphi 8 08.01.2009 02:01