Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Вниз

Разукрашенная строка в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
7-12564
nejest
2003-12-17 17:47
2004.03.05
звук из спикера под win 9x NT 2000 XP


1-12380
Laymer
2004-02-25 07:45
2004.03.05
Числа с плавующей запятой.


1-12369
s_ser
2004-02-25 11:47
2004.03.05
Тип данных TDateTime


1-12319
111
2004-02-21 19:02
2004.03.05
*.txt ; *.rtf


1-12357
dm37
2004-02-25 15:04
2004.03.05
time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский