Главная страница
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.02 c
15-1185565636
MsGuns
2007-07-27 23:47
2007.08.26
Фильмы по произведениям Стругацких


1-1181685116
ShowMessage(OpDlg.FileName)
2007-06-13 01:51
2007.08.26
TDialodи


15-1185396793
Petr V. Abramov
2007-07-26 00:53
2007.08.26
выхухоли


2-1186348283
tigraman
2007-08-06 01:11
2007.08.26
Подскажите компонент типа DBGrid


2-1185727193
mfender
2007-07-29 20:39
2007.08.26
TADOConnection. Запуск редактора строки подключения