Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2007, 17:24   #1
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Хорошо Проверка нажатия клавиш в компоненте Мемо|Delphi

Здравствуйте все !
Я делаю чат и в качестве поля ввода сообщения использую Мемо.
У меня такой вапрос по нажантию Enter должно выполнится какое либо действие в событии мемо1keypress я проверяю if key = #13 then (тут мои действия...)

Но проблема в том что при таком раскладе я не могу написать в мемо несколько строк тк при нажатии ентер происходит моё событие и мемо очищяется...

Мне нужно чтобы при нажатии Shift + Enter производился переход курсора ввода на следующую строчку и только при нажатии Enter происходило моё действие ...

Я понимаю код должен быть таким
if (key = #13) and (Shift не нажат !) then (тут мои действия...)

Всем спасибо ! надуюсь вы поняли что я хотел и сможете мне памочь...
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 09.12.2007, 17:40   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А если сделать переход на новую строку - Ентер, а отправка сообщения (судя по всему) двойное нажатие Ентер.
Удобней... имхо.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.12.2007, 17:53   #3
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Радость

Цитата:
Сообщение от Карась Посмотреть сообщение
А если сделать переход на новую строку - Ентер, а отправка сообщения (судя по всему) двойное нажатие Ентер.
Удобней... имхо.
неа двойнор энтэр - извращение ... мнебы как в асе 6 ... тоесть так как я написал ...
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 09.12.2007, 18:24   #4
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Определить нажат ли Shift:
Код:
function ShiftDown : Boolean;
var
ShiftPress : TKeyboardState;
begin
GetKeyboardState(ShiftPress);
Result := ((ShiftPress[vk_Shift] and 128) <> 0);
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
Begin
if (ShiftDown)and (key=#13) then
Begin
   //Твои действия (нажат Shift и Enter)
end;
end;
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 09.12.2007, 19:59   #5
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Хорошо

Цитата:
Сообщение от AlDelta Посмотреть сообщение
Определить нажат ли Shift:
Код:
function ShiftDown : Boolean;
var
ShiftPress : TKeyboardState;
begin
GetKeyboardState(ShiftPress);
Result := ((ShiftPress[vk_Shift] and 128) <> 0);
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
Begin
if (ShiftDown = false)and (key=#13) then //так???
Begin
   //Твои действия (нажат Shift и Enter)
end;
end;
Большое спасибо AlDelta а какбы сделать так чтобы действия выполнялись просто при нажатии энтер а при шифт + энтэр ничего не происходило ? тобиш чтобы мои действия выполнялись только тогда когда нажат лиш энтэр без других клавиш ...
---
GAGARIN-NEW вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия клавиш Air Свободное общение 28 04.02.2010 12:38
Эмуляция нажатия нескольких клавиш -=Shad0www Общие вопросы Delphi 3 12.05.2008 08:13
Имитация нажатия комбинации клавиш Zeraim Win Api 15 05.05.2008 20:35
Как заставить программу реагтровать на нажатия клавиш? AngelOfDeath Общие вопросы Delphi 9 07.04.2008 23:58
программа по эмуляции нажатия клавиш sr_lexx Win Api 3 03.12.2007 15:40