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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 01:10   #1
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию Выделение в Richedit

Я в Richedit выделяю текст (Richedit.selstart := x; Memo.sellength := y). Как убрать чёрный цвет выделения(сделать, чтобы не было видно выделения)?
north вне форума Ответить с цитированием
Старый 17.05.2009, 01:35   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Если правильно понял, то вот пример:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Richedit1.selstart := 1;
RichEdit1.sellength := 7;
if (fsBold in RichEdit1.SelAttributes.Style) then
 RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.style - [fsBold]
else
 RichEdit1.SelAttributes.style := RichEdit1.SelAttributes.style + [fsBold];
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 02:09   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Кстати, там есть глюк какой-то...
Если в выделенном фрагменте есть разные стили, то он как-то странно уничтожает предыдущий стиль:
Код:
Procedure TForm1.FormCreate(Sender: TObject);
Begin
RichEdit1.Lines.Text:='11111111111111111111111111111111111';
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
RichEdit1.SelStart:=5;
RichEdit1.SelLength:=10;
RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style+[fsBold];
Refresh;
Sleep(1000);
RichEdit1.SelStart:=10;
RichEdit1.SelLength:=10;
RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style+[fsItalic];
Refresh;
Sleep(1000);
RichEdit1.SelStart:=15;
RichEdit1.SelLength:=10;
RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style+[fsUnderline];
Refresh;
Sleep(1000);
RichEdit1.SelStart:=20;
RichEdit1.SelLength:=10;
RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style+[fsStrikeOut];
End;
У меня вроде получалось нормально делать, если перебирать все символы отдельно: для одного символа "RichEdit1.SelAttributes.Style:=Ric hEdit1.SelAttributes.Style+[<стиль>];" работает нормально...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 02:24   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от DomiNick
Кстати, там есть глюк какой-то...
Если в выделенном фрагменте есть разные стили, то он как-то странно уничтожает предыдущий стиль:
Эм... Не очень понял, что за глюк..
Вот так все работает, вроде:
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
RichEdit1.Lines.Text:='11111111111111111111111111111111111';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Richedit1.selstart := 1;
RichEdit1.sellength := 10;
if (fsBold in RichEdit1.SelAttributes.Style) then
 RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.style - [fsBold]
else
 RichEdit1.SelAttributes.style := RichEdit1.SelAttributes.style + [fsBold];
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Richedit1.selstart := 1;
RichEdit1.sellength := 10;
if (fsItalic in RichEdit1.SelAttributes.Style) then
 RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.style - [fsItalic]
else
 RichEdit1.SelAttributes.style := RichEdit1.SelAttributes.style + [fsItalic];
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Richedit1.selstart := 1;
RichEdit1.sellength := 10;
if (fsUnderline in RichEdit1.SelAttributes.Style) then
 RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.style - [fsUnderline]
else
 RichEdit1.SelAttributes.style := RichEdit1.SelAttributes.style + [fsUnderline];
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Richedit1.selstart := 1;
RichEdit1.sellength := 10;
if (fsStrikeOut in RichEdit1.SelAttributes.Style) then
 RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.style - [fsStrikeOut]
else
 RichEdit1.SelAttributes.style := RichEdit1.SelAttributes.style + [fsStrikeOut];
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 02:48   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Скопируйте полностью мой код в Делфи... Там вроде наглядно получается...

А если 4-ре раза на кнопку нажать - вообще (извинете) фигня получается...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 02:52   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

А, да.. Сначала не обратил внимания..
Действительно, странный глюк.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 02:57   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Мне пришлось процедуру специальную писать...
Менять стиль посимвольно...

Но при большом тексте тормозит, однако...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 03:13   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что-то с таким не сталкивался..
Может, утром спецы подойдут - разъяснят ситуацию )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 03:23   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Что-то с таким не сталкивался..
Да я тоже...)

Я просто начал одну задумку воплощать... Для начала надо было просто кнопки всякие сделать, чтоб текст в RichEdit форматировать...
Потестил - смотрю что-то он не то творит...
Цитата:
Может, утром спецы подойдут - разъяснят ситуацию )
Надеюсь...)
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 03:26   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от DomiNick
Для начала надо было просто кнопки всякие сделать, чтоб текст в RichEdit форматировать...
Потестил - смотрю что-то он не то творит...
В моем варианте, если убрать строки
Код:
Richedit1.selstart := 1;
RichEdit1.sellength := 10;
и выделять вручную, то, вроде, все работает как надо.
Вы делали как-то по-другому?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение StasSv Microsoft Office Excel 8 26.01.2009 14:02
выделение области seregaAV110 Мультимедиа в Delphi 3 27.11.2008 21:33
выделение StasSv Microsoft Office Excel 2 10.11.2008 17:15
Выделение в StringGrid Лубышев Помощь студентам 2 08.06.2008 21:05
Выделение памяти antoha.by Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2008 20:04