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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2013, 23:02   #1
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию Выполнить действие при нажатии на слово в тексте

Ребята, подскажите, пожалуйста! Есть текст в формате rtf, который при нажатии на кнопку на форме, открывается в RichEdit. Мне необходимо, чтобы при нажатии на определенное слово уже открытого на форме текста, выполнялось действие: отрывалось фото или видео. В делфи пока новичок. Подскажите, как реализовать...
belkeandrey вне форума Ответить с цитированием
Старый 05.03.2013, 00:36   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Цитата:
открытого на форме текста
открытого на форме или в TrichEdit?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 05.03.2013, 00:46   #3
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Извиняюсь, открытого в RichEdit
belkeandrey вне форума Ответить с цитированием
Старый 06.03.2013, 12:18   #4
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Вот, получилось очень даже ничего)
Код:
//Абсолютное положение курсора
function TForm1.RECharIndexByPos(RichEdit: TRichEdit; X,
  Y: Integer): Integer;
var
  P: TPoint;
begin
  P := Point(X, Y);
  Result := SendMessage(RichEdit.Handle, EM_CHARFROMPOS, 0, longint(@P));
end;

procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

var
  i,k,kol:Integer;
  S:String;
begin
 HideCaret(RichEdit1.Handle);
 S:='тренажер';//нужное слово
 kol:=8;//кол символов
 I:=RECharIndexByPos(RichEdit1,X,Y);//положение курсора
 if Pos(S,RichEdit1.Text)<>0 then
 if (I>Pos(S,RichEdit1.Text)-1)and (I<Pos(S,RichEdit1.Text)+(kol-1)) then
 image1.Visible:=true;
 end;

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  i,k,kol:Integer;
  S:String;
begin
 HideCaret(RichEdit1.Handle);
 S:='тренажер';
 kol:=8;
 I:=RECharIndexByPos(RichEdit1,X,Y);
 if Pos(S,RichEdit1.Text)<>0 then
 if (I>Pos(S,RichEdit1.Text)-1)and (I<Pos(S,RichEdit1.Text)+(kol-1)) then
 begin
 richedit1.SelStart:=-1;

 //richedit1.SelLength:=kol;
 //richedit1.SelAttributes.Color:=clRed;
 RichEdit1.SelAttributes.Style:=[fsBold];
 RichEdit1.Cursor:=crHandPoint;
 //richedit1.SelStart:=0;
 end
 else RichEdit1.Cursor:=crDefault;

  end;

Последний раз редактировалось Stilet; 06.03.2013 в 12:39.
belkeandrey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++) Lapochka Помощь студентам 6 01.12.2011 14:05
При нажатии выполнить Ctrl+F Shouldercannon Общие вопросы Delphi 10 04.02.2010 16:05
Действие при нажатии на определненный Balloon KoBRaAndrey Общие вопросы Delphi 5 22.11.2009 04:53
Как выполнить действие при закрытии Книги? valerij Microsoft Office Excel 9 12.03.2009 15:31