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

Вниз

Как в Memo при наведении мыши на слово оно выделялось цветом   Найти похожие ветки 

 
allrussia   (2006-12-02 08:19) [0]

Как по быстрому реализовать, чтобы при наведении на слово (словосочетание, предложение), отделенного от других запятыми, в Мемо курсора мыши оно отображалось другим цветом

вот скриншот:
http://slil.ru/23503047


 
PZ   (2006-12-02 10:44) [1]

Проще для этого использовать компонент RichEdit


 
allrussia   (2006-12-02 10:57) [2]

ок RichEdit, а пример можно или наводку


 
PZ   (2006-12-02 11:44) [3]

Смотреть всеми нелюбимого здесь Архангельского, "Приемы программирования в Delphi. Версии 5-7"


 
Leonid Troyanovsky ©   (2006-12-02 12:31) [4]


> allrussia   (02.12.06 10:57) [2]

> ок RichEdit, а пример можно или наводку


http://home.att.net/~robertdunn/Yacs.html

--
Regards, LVT.


 
allrussia   (2006-12-02 12:51) [5]

LVT
забыл указать, я в D7 сижу, а не в CBuider

короче я понял, чего нужно
нужно как в Delphi когда Ctrl жмешь и наводишь на слово подсветка была


 
Leonid Troyanovsky ©   (2006-12-02 13:00) [6]


> allrussia   (02.12.06 12:51) [5]

> забыл указать, я в D7 сижу, а не в CBuider


Ну и что?
Скажем, в msdn статьи написаны без оглядки на дельфи,
однако, настоящие дельфийцы их читают.

--
Regards, LVT.


 
allrussia   (2006-12-02 13:39) [7]

упростим и до того примитивнейший вопрос, на который пока никто (кодом) не ответил:

в общем навожу я на слово (словосочетание) курсор мыши
и могу получить его содержание

вот пример из DW

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState;
 X, Y: Integer);
var
 iCharIndex, iLineIndex, iCharOffset, i, j: Integer;
 Pt: TPoint;
 s: string;
begin
 with TRichEdit(Sender) do
 begin
   Pt := Point(X, Y);
   // Get Character Index from word under the cursor
   iCharIndex := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt));
   if iCharIndex < 0 then Exit;
   // Get line Index
   iLineIndex  := Perform(EM_EXLINEFROMCHAR, 0, iCharIndex);
   iCharOffset := iCharIndex - Perform(EM_LINEINDEX, iLineIndex, 0);
   if Lines.Count - 1 < iLineIndex then Exit;
   // store the current line in a variable
   s := Lines[iLineIndex];
   // Search the beginning of the word
   i := iCharOffset + 1;
   while (i > 0) and (s[i] <> ",") do Dec(i);
   // Search the end of the word
   j := iCharOffset + 1;
   while (j <= Length(s)) and (s[j] <> ",") do Inc(j);
   // Display Text under Cursor
   RESULT := Copy(s, i + 1, j - i - 1);
....
 end;
end;  


теперь как мне корректно поменять шрифт у выделенного слова:

я пробовал так


...
SelStart = i;
SelLength = j - i;
SelAttributes.Font.Style = fsUnderline



Прекрасно все работает, но
1: когда увожу мышку выделение и стиль шрифта остаются остается а мне нужно только стиль шрифта менять и не выделять текст
т.е . обратно то как поменять?
2: офигеть как моргает при перерисовке при наведении мыши

з.ы. в delphi в редакторе когда ctrl жмешь и подводишь курсов вообще не моргает и прекрасно отображается линк


 
Джо ©   (2006-12-02 13:46) [8]

> з.ы. в delphi в редакторе когда ctrl жмешь и подводишь курсов
> вообще не моргает и прекрасно отображается линк

Потому, что в редакторе  Делфи используется не TRichEdit, а свой собственный компонент, исходников которого они, увы, не предоставляют.


 
allrussia   (2006-12-02 13:55) [9]

Джо а поповоду другого моего топика не смотрел скрины есть что сказать?



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

Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.063 c
15-1166712306
vidiv
2006-12-21 17:45
2007.01.28
Программа, которая выводит собственный листинг


15-1168004495
Slider007
2007-01-05 16:41
2007.01.28
С днем рождения ! 5 января


10-1128086100
Andrew Dovgal
2005-09-30 17:15
2007.01.28
Программо получить RTF из OLE-automated Word a


15-1168264739
brrrr
2007-01-08 16:58
2007.01.28
Нас всех прослушивают! Ужас! Мы беззащитны :(


2-1168562024
Cemen
2007-01-12 03:33
2007.01.28
Копирование массива рекордов?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский