Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

Выделить текст до конца строки в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.044 c
2-1186105128
Glivera
2007-08-03 05:38
2007.08.26
TaskBar


8-1163431376
maker
2006-11-13 18:22
2007.08.26
WMA Тэги


9-1158659677
Slavikkk
2006-09-19 13:54
2007.08.26
Автовыключение в ODE


15-1185565636
MsGuns
2007-07-27 23:47
2007.08.26
Фильмы по произведениям Стругацких


2-1186384446
Раф
2007-08-06 11:14
2007.08.26
Как правильно закрыть программу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский