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

Вниз

Как в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.065 c
15-1167852215
vidiv
2007-01-03 22:23
2007.01.28
Ктонить может дать 100 wmr на 1 день...


8-1149494028
hgd
2006-06-05 11:53
2007.01.28
Подскажите компонент


6-1156437318
i-s-v
2006-08-24 20:35
2007.01.28
Прослушка сети


15-1168103024
Nic
2007-01-06 20:03
2007.01.28
Turbo Delphi страсть как хочется :)


15-1167925238
nameless
2007-01-04 18:40
2007.01.28
Почему когда я подключаю USB 1.1 мышь -