![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Пишу типа чата. Хочу чтоб сообщения из мемо посылались на 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. |