|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Перехватить и отменить Enter в Мемо
Пишу типа чата. Хочу чтоб сообщения из мемо посылались на Enter
А переход на другую сроку Shift + Enter как вконтакте Написал так Код:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (ssShift in Shift) AND (Key=VK_RETURN) then exit; if (Key=VK_RETURN) then begin Key:=0; Button3.Click; //Memo1.Clear; exit; end; end; Кабы очистить мемо после нажатия Enter. Может подскажете что-нибудь? |
#2
|
|||
|
|||
Отлавливать нажатие на уровне формы. Выстави у формы KeyPreview = true и в обработчике формы очисти Key.
|
#3
|
|||
|
|||
Одна фигня. сообщение показывает а в мемо переходит на другую строчку.
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_F5) then showmessage('');// Button8.Click; if (Key=VK_RETURN) then begin showmessage(''); Key:=0; //Button3.Click; end; if (ssShift in Shift) AND (Key=VK_RETURN) then exit; end; |
#4
|
|||
|
|||
Все нормально работает:
Код:
Form1.KeyPreview := True; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin If Key = #13 Then Begin Label1.Caption := 'ENTER PRESSED!!!'; Key := #0; End Else Label1.Caption := 'Not ENTER'; end; |
#5
|
||||
|
||||
Кстати мемо не очень для этого подходит, т.к. не поддерживает форматирование - используйте RichEdit, только почитайте сначала про формат rtf, тогда сможете и смайлики туда внедрить без проблем.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
Да спасибо. Заменил. Еще странно не могу скроллинг сделать колесиком мыши для Scrollbar.
Memo, а теперь RichEdit жадно забирает фокус. На FormShow я делаю RichEdit.SetFocus - Колесико работает. A как я помещаю на Memo/RichEdit - всё, конец вечеринки. Imikle, не понятно а Shift + Enter как же сделать теперь? Последний раз редактировалось aqula, 14.02.2016 в 08:52. |