Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизКак выделить всю строку на которой находится курсор (в memo и ric Найти похожие ветки
← →
Гиричев Руслан (2004-02-16 20:59) [0]Здравствуйте Мастера!
Не могли бы вы помочь с одной задачей? Как выделить всю строку на которой находится курсор (в memo и richedit)?
Буду очень признателен!
← →
Defunct (2004-02-17 02:17) [1]Этот фрагмент вам поможет
Const
WM_USER = $0400;
EM_EXSETSEL = WM_USER + 55;
Type
TCharRange = record
cpMin: Longint;
cpMax: LongInt;
end;
TForm1 = Class(TForm)
RichEdit : TRichEdit;
..
Procedure Button1Click(Sender:TObject);
Public
Function LocateCharPos(ACol,ARow:Integer):Cardinal;
Procedure SetSel(SelStart, SelEnd:Integer);
End;
....
Implementation
Function TForm1.LocateCharPos(ACol,ARow:Integer):Cardinal;
Var I, CharPos:Integer;
Begin
If (ARow<=RichEdit.Lines.Count) Then
If (ACol<Length(RichEdit.Lines.Strings[ ARow ])) Then
Begin
Result := ACol;
For I:=0 To ARow-1 Do
Begin
Result := Result + Length(RichEdit.Lines.Strings[i])+2
End;
End Else Result := 0;
End;
Procedure TForm1.SetSel(SelStart, SelEnd:Integer);
Var CharRange: TCharRange;
Begin
CharRange.cpMin := SelStart;
CharRange.cpMax := SelEnd;
SendMessage(RichEdit.Handle, EM_EXSETSEL, 0, Longint(@CharRange));
End;
procedure TForm1.Button1Click(Sender: TObject);
Var Line,L :Integer;
begin
Line := LocateCharPos( 0, RichEdit.CaretPos.Y);
L := Length(RichEdit.Lines.Strings[RichEdit.CaretPos.Y]);
SetSel(Line, Line+L);
RichEdit.SelAttributes.Style := [fsBold];
end;
← →
Гиричев Руслан (2004-02-17 16:01) [2]Сэнкю вэри дзякуй! Всмысле - спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c