Memo

Тема в разделе "Delphi - FAQ", создана пользователем kyran29, 7 окт 2009.

  1. kyran29

    kyran29 Гость

    :) Добрый день!
    Вопрос мой заключается вот в чем.
    При выделении и копировании строк из одного поля Memo во второе поле Memo2.Lines.Add(Memo1.SelText). Это понятно!
    Но как только курсор находится не вначале строки IntToStr(Memo1.SelStart) > 0
    Копируется обрезанная строка, т.е. с того места, откуда начали выделять строки.
    Как вернуть ту часть строки, которая не была выделена? Так же при окончании выделения. Если в строке выделено >= 3 символов, то выделяем целую строку, если < 3 выделение с этой строки выделение снимаем. Скопированные строки во втором поле Memo должны быть целые.
     

    Вложения:

    • Memo.jpg
      Memo.jpg
      Размер файла:
      53,7 КБ
      Просмотров:
      22
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    memo2.lines.add(memo1.lines[memo1.CaretPos.y]);
     
  3. kyran29

    kyran29 Гость

    ;) Спасибо Vital.
    Можно подробней.
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Эмм.. А что подробнее? Этот код добавляет в Memo2 ту строку из Memo1 на которой находится Курсор. Все.
     
  5. kyran29

    kyran29 Гость

    Vital
    Этот код добавляет в Memo2 ту строку из Memo1 на которой находится Курсор


    При выделении строк, т.е. выделяем ни одну строку, а несколько. Не полными строки могут быть первая и последняя см. рис. Копируем все, но если строки первая и последняя выделены не полностью, добавляем, то, что не выделено и в первой строке и в последней.
     
  6. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Код (Text):
    procedure TForm1.Memo1OnMouseDown(Sender: TObject);
    begin
    if Memo1.SelLength > 0 then запоминаешь y(игрек) позицию каретки как показано выше- это начальная строка
    end;
    Далее
    Код (Text):
    procedure TForm1.Memo1OnMouseUp(Sender: TObject)
    begin
    копируешь во второй мемо текст из мемо 1 от ранее запомненной строки до строки где теперь находится каретка.
    end.
     
Загрузка...

Поделиться этой страницей