|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
"Фиксация" курсора в Edit?...
И снова здравствуйте, друзья! У меня вот такой вопрос:
Как сделать так чтобы в поле Edit курсор был всегда в конце строки и его невозможно было бы переместить ни клавишами-стрелками, ни мышью, чтобы пользователь не мог никак изменить напечатаный текст кроме как стереть его часть BackSpase'ом? Если в событии OnKeyPress ввести что-то типа: Код:
if not (key in ['?', '?' ...] then key := #0; |
#2
|
|||
|
|||
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin edit1.SelStart:=length(edit1.Text)+1; end; procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin edit1.SelStart:=length(edit1.Text)+1; end; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#3
|
|||
|
|||
А как на щёт в событии OnChange установить SelStart в Length(Edit.Text)?
Тогда может и OnKeyPress ненадо? |
#4
|
|||
|
|||
Код:
OnChange не отработает на стрелках. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#5
|
|||
|
|||
Цитата:
Для мыши тогда добавить тот же edit1.SelStart:=length(edit1.Text)+1; в OnMouseDown() и OnMouseUp(), а OnMouseMove() избавит от "селекта" |
#6
|
|||
|
|||
Цитата:
Вот именно! Я уже это пробовал... |
#7
|
|||
|
|||
А вот вариант на OnKeyDown-Up работает!
P.S. С мышью я уже сам разобрался: Код:
procedure TForm1.EditClick(Sender: TObject); begin if Edit.SelStart <> length(Edit.Text) then Edit.SelStart := length(Edit.Text); end; |
#8
|
|||
|
|||
Спасибо за помощь! И отдельно для Black Raider
|