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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 22:52   #1
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию memo атрибут текста

Всем привет. У меня на форме мемо и fontdialog. Изменяя атрибуты текста(шрифт, размер и т.д.), изменяется весь текст в мемо. Можно реализовать такое: изменять атрибуты только выделенного текста?
Читал много где, пишут что нельзя. Качай synedit. Но я хочу стандартным Memo попользоваться.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 20.03.2010, 22:59   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Привет. Как бы не хотелось, а в "стандратном" TMemo не получится. Но есть не менее "стандартный" TRichEdit. В нем все что угодно. Смотрим демо программу из каталога ...\Demos\RichEdit.
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 15:10   #3
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

В принципе разобрался почти во всем, но застрял на отмене стилизации, например ставлю
Код:
rzrichedit1.SelAttributes.Style:=[fsbold];
, но когда текст уже жирный, выделяю его как вы понимаете нет эффекта никакого, как организовать обратный процесс?
(В demos приведенный пример очень сложный и большой для меня)
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 21.03.2010, 15:48   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
rzrichedit1.SelAttributes.Style:=[];
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 16:14   #5
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

А как правильно применить? Пример составил, но не работает. Без Update это возможно?
Код:
if rzbitbtn14.Down then
rzrichedit1.SelAttributes.Style:=[fsbold] else
rzrichedit1.SelAttributes.Style:=[];
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 21.03.2010, 16:39   #6
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
rzrichedit1.SelAttributes.Style:=[];
не правильно, а если текст был еще и курсив, тогда весь стиль отменяется
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 21.03.2010, 16:49   #7
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Виноват. Правильнее, конечно, так:
Код:
rzrichedit1.SelAttributes.Style := rzrichedit1.SelAttributes.Style - [fsBold];
В демо примере работает без Update

Последний раз редактировалось Скандербег; 21.03.2010 в 16:56.
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 17:23   #8
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

ребят. Никак не могу сделать, чтобы работало с условием
Код:
procedure TForm1.RzBitBtn14Click(Sender: TObject);
begin
if rzbitbtn14.Down then
    rzrichedit1.SelAttributes.Style := CurrText.Style + [fsBold]
  else
    rzrichedit1.SelAttributes.style := CurrText.Style - [fsBold];
  end;

end.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 21.03.2010, 17:37   #9
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Нет, там происходит "самоприсвоение", т.е. стили меняются в одном и том же атрибуте, а у вас один атрибут меняет стиль другого атрибута.
Код:
procedure TForm1.RzBitBtn14Click(Sender: TObject);
begin
if rzbitbtn14.Down then
    rzrichedit1.SelAttributes.Style := rzrichedit1.SelAttributes.Style + [fsBold]
  else
    rzrichedit1.SelAttributes.style := rzrichedit1.SelAttributes.Style - [fsBold];
  end;
end;
В демо CurrText - это функция, возвращающая либо SelAttributes, либо DefAttributes, в зависимости от того выделена ли какая-нибудь часть текста или нет.
Скандербег вне форума Ответить с цитированием
Старый 21.03.2010, 18:03   #10
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

А толку? не пашет ни то , ни то.
Во, нашел решение, так пашет:
Код:
with richedit1.SelAttributes do
begin
if Style<>[fsBold] then
 Style:=Style+[fsBold] else
 Style:=Style-[fsBold];
==============================
У меня еще один вопрос возник. Используя, richedit сохраняется в таком формате
Код:
{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs16 
\par }
Так всегда будет? или чтото можно сделать? Мне ввиде обычного блокнота надо.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics

Последний раз редактировалось grom333; 21.03.2010 в 19:45.
grom333 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование текста из Memo bulkin2000 Компоненты Delphi 3 30.04.2012 14:03
Анализ текста в компонентах Memo sokla Помощь студентам 4 14.03.2010 00:32
Как ускорить загрузку текста в memo? zver777 Общие вопросы Delphi 3 10.01.2010 10:06
Memo - обробка текста sv2311 Помощь студентам 0 25.04.2009 17:42
Вставка текста в memo Revan Общие вопросы Delphi 2 23.05.2008 17:45