![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() И снова здравствуйте!
![]() Хотел бы поинтересоваться у глубокоуважаемых форумчан таким вопросом: как можно сделать перебор по 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; |