Delphi выберите абзац в richedit

Как выделить абзац на несколько строк. Абзацы ограничены номером, а не #10 + *#13? Выделение страха осуществляется щелчком мыши или пролетом над абзацем.


person Mostafa OUHMID    schedule 26.09.2011    source источник
comment
@Andreas Rejbrand, абзацы довольно формальны для TRichEdit. Однако я боюсь летающих мышей и роботов-переводчиков.   -  person Premature Optimization    schedule 27.09.2011
comment
@Downvoter: извините. Думаю, я должен был это знать.   -  person Andreas Rejbrand    schedule 27.09.2011
comment
@downvoter Я думаю, что Андреас спрашивал Мостафу, что имелось в виду под абзацами, ограниченными по количеству. Предположительно, это какое-то определение абзацев, не совпадающее с определением форматированного текста.   -  person David Heffernan    schedule 27.09.2011
comment
@ Дэвид Хеффернан, хорошая мысль.   -  person Premature Optimization    schedule 27.09.2011
comment
@Андреас Рейбранд, пожалуйста, примите мои извинения, я интерпретировал текст вопроса (я убежден, что текст вопроса был создан с помощью машинного перевода, и робот скрыл от нас какой-то смысл). Лучше сначала выяснить, что ОП имел в виду под абзацами с цифрами (пулями?).   -  person Premature Optimization    schedule 27.09.2011


Ответы (2)


По сути, если вы используете общедоступные свойства SelStart и SelLength вашего TRichEdit, вы можете выбрать любой текст, который хотите, в своем элементе управления richedit.

Таким образом, вы можете разбить текст на части, как хотите, на абзацы или нет, а затем просто программно выделить его фрагмент.

person haimg    schedule 03.10.2011

{********************************************************************}
// Nombre de la funcion: TI2FStrings.GetCursorSQL
// Explicación: Obtiene el párrafo donde está situado el cursor.
//
//  Usuario      Fecha      Modificación
// ------------ ---------- ------------------------------------------
// drodriguez   11/08/2005 Creación
{********************************************************************}
class function TI2FStrings.GetCursorSQL(Text: string; CursorPos: Integer): string;
var
  LastPos, iPos: Integer;
  IniPos, FinPos: Integer;

Begin
  iPos:= 1;
  Repeat
    LastPos:= iPos;
    iPos:= PosEx(#13#10#13#10, Text, iPos);
    if (iPos <> 0) then Inc(iPos, 2);
  until (iPos = 0) or (CursorPos < iPos - 1);
  if (iPos = 0) then iPos:= Length(Text)
  else Dec(iPos, 2);

  FinPos:= iPos;
  IniPos:= LastPos;

  Result:= Trim(Copy(Text, IniPos, FinPos - IniPos + 1));
end;

Это нужно для получения SQL от TMemo, где каждый SQL отделяется пустой строкой. Просто замените #13#10#13#10 на #13#10.

person Dani Rodríguez    schedule 10.10.2011