![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |