Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.26;
Скачать: CL | DM;

Вниз

Выделить текст до конца строки в memo   Найти похожие ветки 

 
Johnnnn   (2007-08-02 02:19) [0]

Memo1.SetFocus;
Memo1.SelStart:=pos("IP:", memo1.Text)+3;

вот ставлю каретку после найденого слова как выделить текст до конца строки и скопировать его в буфер?

спасибо!


 
Джо ©   (2007-08-02 04:39) [1]

> как выделить текст до конца строки

Очевидно, нужно найти следующие символы CR (#13) и LF (#10), начиная с текущей позиции (SelStart) и, узнав таким убразом длину требуемого выделения, присвоить его свойству SelLength.
Функция может выглядеть таким образом:

function FindNextCrLf (const S: string; CurrentPos: Integer): Integer;
const
 Cr = #13;
 Lf = #10;
var
 I: Integer;
 CrFound: Boolean;
begin
 Result := Length (S);
 CrFound := False;

 for I := CurrentPos to Result do
 begin
   if S[I] = Cr then
     CrFound := True;
   if (S[I] = Lf) and CrFound then
   begin
     Result := I-2;
     Break
   end;
 end;
end;



> и скопировать его в буфер?

Использовать метод CopyToClipboard.

Т.е., пример использования может выглядеть так (выделение начиная с текущего положения каретки до конца строки с последующим копированием):

procedure TForm1.Button1Click(Sender: TObject);
var
 P1,
 P2: Integer;
begin
 P1 := Memo1.SelStart;
 P2 := FindNextCrLf(Memo1.Lines.Text,P1);
 if P2 <> P1 then
 begin
   Memo1.SelLength := P2-P1;
   Memo1.CopyToClipboard;
 end
end;


 
Джо ©   (2007-08-02 04:43) [2]

Спать пора. Функция FindNextCrLf в общем некорректна, ну да исправить, думаю, будет не тяжело. Сорри.


 
begin...end ©   (2007-08-02 12:21) [3]

with Memo do
 begin
   SelLength := Perform(EM_LINEINDEX, -1, 0) + Perform(EM_LINELENGTH, SelStart, 0) - SelStart;
   CopyToClipboard
 end


 
Johnnnn   (2007-08-02 17:11) [4]

Thanks vsem kto otkliknylsya!



Страницы: 1 вся ветка

Текущий архив: 2007.08.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
11-1166785407
Fregl
2006-12-22 14:03
2007.08.26
Работа с BDE32


15-1185293461
Slimer
2007-07-24 20:11
2007.08.26
Джойстик вместо мыши


1-1182167087
StriderMan
2007-06-18 15:44
2007.08.26
TEdit.AutoSelect


15-1185361883
Стас
2007-07-25 15:11
2007.08.26
Сканер А2


11-1168515485
Mabia
2007-01-11 14:38
2007.08.26
Установка Report&amp;Print в D6