Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.03.2017, 00:30
Аватар для ffpereverzev
ffpereverzev ffpereverzev вне форума
Новичок
 
Регистрация: 14.02.2017
Сообщения: 50
Версия Delphi: Delphi 7
Репутация: 10
Вопрос В каком RichEdit нажата кнопка?

И снова здравствуйте!
Хотел бы поинтересоваться у глубокоуважаемых форумчан таким вопросом: как можно сделать перебор по RichEdit? (ответ "в цикле" не устраивает, так как это и так понятно. Вопрос "КАК?").

Объясню суть проблемы:

Есть n-ое количество RichEdit (допустим, 10). Я создал ActionList с корректировкой свойств шрифта (жирный, курсив, подчеркнутый). При описании первого же Action-а я столкнулся с проблемой: как понять, в каком из RichEdit-ов было замечено нажатие правой кнопки мыши?
Может, Вы, уважаемые форумчане, подскажете как это можно сделать или предложите более адекватный или простой путь к решению данной проблемы?

P.S. Вариант с PopupMenu не предлагать, так как получится очень громоздко и делать придется для каждого RichEdit в отдельности (если я все правильно понимаю). Я, во всяком случае, сделал с ним вот это:

Код:
// Обрабатываем процедуру выделения текста "Жирный"
procedure TForm1.N4Click(Sender: TObject);
var t:string;
 begin
  t:=RichEdit1.SelText;
  RichEdit1.SelStart:=pos(t,RichEdit1.Text)-1;
  RichEdit1.SelLength:=Length(t);
  with RichEdit1.SelAttributes do
   begin
     if Style<>[fsBold] then
      Style:=Style+[fsBold]
     else
      Style:=Style-[fsBold];
   end;
  t:='';
  RichEdit1.SetFocus;
end;

// Обрабатываем процедуру выделения текста "Курсив"
procedure TForm1.N8Click(Sender: TObject);
var t:string;
 begin
  t:=RichEdit1.SelText;
  RichEdit1.SelStart:=pos(t,RichEdit1.Text)-1;
  RichEdit1.SelLength:=Length(t);
  with RichEdit1.SelAttributes do
   begin
     if Style<>[fsItalic] then
      Style:=Style+[fsItalic]
     else
      Style:=Style-[fsItalic];
   end;
  t:='';
  RichEdit1.SetFocus;
end;

// Обрабатываем процедуру выделения текста "Подчеркнутый"
procedure TForm1.N9Click(Sender: TObject);
var t:string;
 begin
  t:=RichEdit1.SelText;
  RichEdit1.SelStart:=pos(t,RichEdit1.Text)-1;
  RichEdit1.SelLength:=Length(t);
  with RichEdit1.SelAttributes do
   begin
     if Style<>[fsUnderline] then
      Style:=Style+[fsUnderline]
     else
      Style:=Style-[fsUnderline];
   end;
  t:='';
  RichEdit1.SetFocus;
end;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025