Главная страница
    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.056 c
2-1186211852
Alex7
2007-08-04 11:17
2007.08.26
Сортировка данных в TADODataSet


3-1178391943
Wiser87
2007-05-05 23:05
2007.08.26
Вывод похожего названия в DBEdit


2-1185950827
Mishenka
2007-08-01 10:47
2007.08.26
Не переписывается метод SetWidth


15-1185954112
dr Gonzo
2007-08-01 11:41
2007.08.26
Справочник по Delphi издательства O Reilly


2-1185719118
Sdubaruhnul
2007-07-29 18:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский