Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

Разукрашенная строка в TRichEdit.   Найти похожие ветки 

 
dr Tr0jan ©   (2004-02-16 04:30) [0]

У меня есть некая строка: " Мама мыла раму."
Как на Delphi выделить жирным (или каким-либо цветом) слово Мама, а затем вставить эту строку с выделенным словом в TRichEdit.


 
Defunct ©   (2004-02-16 04:41) [1]

With RichEdit Do
Begin
SelAttributes.Style := [fsBold];
SelText := "Mama";
SelAttributes.Color := clRed;
SelAttributes.Style := [];
SelText := " мыла раму";
End;


 
dr Tr0jan ©   (2004-02-16 05:11) [2]

Спасибочки!
А не подскажешь еще:
1) Как гиперссылку в TRichEdit сделать или подобие какое-нить: Чтобы при нажатии на определенное слово, это слово передавалось бы в какую-нибудь переменную. И чтобы при наведении на это слово менялся курсор.
2) Как в TRichEdit картинку какую-нибудь запихать, например вместо слова нарисовать смайлик?
3) Как програмно прокрутить TRichEdit в самый низ?

Или это невозможно сделать в TRichEdit?


 
Gero ©   (2004-02-16 08:00) [3]

1),2) - Используй компоненты сторонних разработчиков
3) - Смотри FAQ


 
dr Tr0jan ©   (2004-02-16 12:12) [4]

2 Gero © (16.02.04 08:00) [3]:

>Смотри FAQ

Какую именно факу?


 
Defunct ©   (2004-02-16 20:06) [5]

> 1) Как гиперссылку в TRichEdit сделать или подобие какое-нить: Чтобы при нажатии на определенное слово, это слово передавалось бы в какую-нибудь переменную. И чтобы при наведении на это слово менялся курсор.

Выделить интересующий фрагмент без изменения позиции курсора можно так:

Procedure SetSel(SelStart, SelEnd:Integer);
Var CharRange: TCharRange;
Begin
CharRange.cpMin := SelStart;
CharRange.cpMax := SelEnd;
SendMessage(RichEdit.Handle, EM_EXSETSEL, 0, Longint(@CharRange));
End;


> 2) Как в TRichEdit картинку какую-нибудь запихать, например вместо слова нарисовать смайлик?
Загружать картинку в формате RTF:
RichEdit.Lines.LoadFormStream(Stream:TMemoryStream);

> 3) Как програмно прокрутить TRichEdit в самый низ?
Программная прокрутка:
SendMessage(memo.Handle, EM_LINESCROLL, 0, top);
top - новая верхняя видимая строка


 
dr Tr0jan ©   (2004-02-19 14:10) [6]

2 Defunct © (16.02.04 20:06) [5]:

1) Delphi ругается:
а) не знает тип TCharRange (и иже с ним - CharRange, _CharRange) - даже сам описывал, не помогло;
б) не знаю почему, но ругается еще на EM_EXSETSEL, мол Undeclared identifier: "EM_EXSETSEL".

2) Почему-то не работает (т.е. все что записано ранее в RichEdit1 исчезает):
var
stream: TMemoryStream;
begin
stream:=TMemoryStream.Create;
Image1.Picture.icon.SaveToStream(stream); //<- сюда заранее запихана иконка;
RichEdit1.Lines.LoadFromStream(stream);
stream.Free;


3) Спасибо за подсказку, с её помощью более подходящий способ нашел: WM_VSCROLL - прокручивает Control в самый низ.


 
Defunct ©   (2004-02-20 21:30) [7]

1) Delphi ругается:

а) не знает тип TCharRange (и иже с ним - CharRange, _CharRange) - даже сам описывал, не помогло;


TCharRange = record
cpMin: Longint;
cpMax: LongInt;
end;


б) не знаю почему, но ругается еще на EM_EXSETSEL, мол Undeclared identifier: "EM_EXSETSEL".

EM_EXSETSEL = WM_USER + 55;

Почему-то не работает (т.е. все что записано ранее в RichEdit1 исчезает):

Небходимо, полностью обновлять содержимое RichEdit


 
Rouse_ ©   (2004-02-20 21:47) [8]

все это есть в полном обьеме в RichEdit 2.0 которая, к сожалению, не присутствует в стандартной поставке компонент, но обертка над ней реализована в компонентах сторонних разработчиков. К примеру RX


 
Defunct ©   (2004-02-21 00:46) [9]

Rouse_ © (20.02.04 21:47) [8]
Где можно скачать RichEdit 2.0?


 
dr Tr0jan ©   (2004-02-22 15:04) [10]

2 Defunct © (20.02.04 21:30) [7]:

>1) Delphi ругается:

а) не знает тип TCharRange (и иже с ним - CharRange, _CharRange) - даже сам описывал, не помогло;

TCharRange = record
cpMin: Longint;
cpMax: LongInt;
end;

б) не знаю почему, но ругается еще на EM_EXSETSEL, мол Undeclared identifier: "EM_EXSETSEL".

EM_EXSETSEL = WM_USER + 55;


С этим я разобрался - надо было подключать юнит RichEdit.

> Небходимо, полностью обновлять содержимое RichEdit

Все равно не работает:
var
stream: TMemoryStream;
begin
stream:=TMemoryStream.Create;
Image1.Picture.Bitmap.SaveToStream(stream);
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.LoadFromStream(stream);
RichEdit1.Lines.EndUpdate;
stream.Free;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.03.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
14-12481
Knight
2004-02-13 22:12
2004.03.05
Дружит ли Delphi5 и 7 ?


3-12246
MasterDenis
2004-02-09 13:13
2004.03.05
Глючит BDE!Помогите!!!


3-12238
Солер
2004-02-09 17:41
2004.03.05
Halcyon и русский язык


1-12368
ZyXel
2004-02-25 00:03
2004.03.05
Модули


1-12367
Andy
2004-02-25 09:21
2004.03.05
Help to Help