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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2010, 15:35   #11
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

У меня тоже не открылось.
Delphi 7.
Попробуй такой вариант .Работает,правда в случае если нужное слово в тексте не одно будет работать только на первом из них
Вложения
Тип файла: rar RichEdit1.rar (310.7 Кб, 16 просмотров)
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 02.05.2010, 16:22   #12
Kassper
 
Регистрация: 07.02.2010
Сообщений: 9
По умолчанию

Kotofff у меня Delphi 7 проект... ну...это просто так сказать учебник мне нужно для ЕГЭ сделать вот...

Uchebnik.rar
Kassper вне форума Ответить с цитированием
Старый 02.05.2010, 16:39   #13
Kassper
 
Регистрация: 07.02.2010
Сообщений: 9
По умолчанию

Дима я окей теперб мне нужно чтобы при наведении курсора на СЛОВО курсор становился "пальцем" ну тоесть как при наведении на ссылку а выделить слово я и сам смогу
Kassper вне форума Ответить с цитированием
Старый 02.05.2010, 17:27   #14
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Я вижу думать вообще не хотим. Причем тут "не запускается" ?! Ведь там в архиве есть pas-файл в котором с комментариями все расписано !
Значит так:
1) у твоего компонента RichEdit есть событие OnMouseMove. В Инспекторе Задач сделай двойной клик на данном событии - компилятор создаст новую процедуру:
Код:
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
2) для достижения смены курсора на нужный тебе - замени созданную процедуру вот такой :
Код:
{
  Процедура на событии OnMouseMove компонента RichEdit, которая при перемещении мыши по
  компоненту RichEdit помещает слово под курсором мыши в глобальную переменную _Word
  далее с которой можно работать как хочешь ...
}
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);
    iCharIndex := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt));
    if iCharIndex < 0 then Exit;
    iLineIndex  := Perform(EM_EXLINEFROMCHAR, 0, iCharIndex);
    iCharOffset := iCharIndex - Perform(EM_LINEINDEX, iLineIndex, 0);
    if Lines.Count - 1 < iLineIndex then Exit;
    s := Lines[iLineIndex];
    i := iCharOffset + 1;
    while (i > 0) and (s[i] <> ' ') do Dec(i);
    j := iCharOffset + 1;
    while (j <= Length(s)) and (s[j] <> ' ') do Inc(j);
    _Word := Copy(s, i, j - i);// наше слово (слово под курсором мыши)
    // изменяем курсор над нужным словом ...
    if LowerCase(Trim(_Word)) = LowerCase(Trim(_Word0)) then
      RichEdit1.Cursor := crHandPoint // если находимся над эталонным словом
      else RichEdit1.Cursor := crDefault; // если нет - курсор обычный
  end;
end;
здесь: _Word и _Word0 - это строковые переменные, в _Word при перемещении мыши над RichEdit`ом помещается слово под курсором, а _Word0 - это эталонное слово над которым курсор будет "превращаться".

3) в секцию uses пропиши модуль RichEdit, т.е. должно быть примерно так :
Код:
uses
  RichEdit, Windows, Messages, SysUtils ....
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 02.05.2010 в 17:29.
Kotofff вне форума Ответить с цитированием
Старый 02.05.2010, 17:46   #15
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

Тоже самое,только весь код из OnMouseDown перекидываешь в OnMouseMove /И вместо Image1.Visible:=True; добавляешь
Код:
begin
 Image1.Visible:=True;
RichEdit1.Cursor := crHandPoint;
end
else
RichEdit1.Cursor := crDefault;
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 02.05.2010, 20:55   #16
Kassper
 
Регистрация: 07.02.2010
Сообщений: 9
По умолчанию

Спасибо всем=)
Kassper вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RichEdit. Слова из текста (Delphi) skat72 Помощь студентам 0 21.04.2010 19:14
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Как удалить текст до слова, потом от слова ? littlecoder Общие вопросы Delphi 7 29.12.2008 00:57
Поиск слова в RichEdit vinimixer Общие вопросы Delphi 1 05.11.2008 00:17
Как изменить стиль шрифт выделенного тексту слова в компоненте RichEdit при выделении его? SkAndrew Общие вопросы Delphi 9 23.04.2008 01:35