Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HotKey's на memo, Мешают символы перехода на новую строку 
:(
    Опции темы
willker
Дата 28.11.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Есть такой вот незатейливый кусочек кода в упрощенном виде:
Код

type TSendMessageForm = class(TForm)
    Send_b: TButton;
    Send_m: TMemo;
    procedure Send_bClick(Sender: TObject);
    procedure Send_mKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
end;

procedure TSendMessageForm.Send_bClick(Sender: TObject);
begin
IdUDPSendServer.Send( {IP} , {Port} ,Send_m.Text);
Send_m.Clear;
end;

procedure TSendMessageForm.Send_mKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key=vk_return) then
Send_b.Click; end;
end;

Смысл всего этого таков:
В мою программку встроена отправка сообщений. Хочется сделать как в известном всеми нами QIP'е.
Т.е. в мемо вводится текст, нажимается ctrl+enter, происходит переход на событие кнопки click (это кнопка "Отправить") и происходит отправка сообщения.
Итак, суть проблемы:
Несмотря на то, что отправка сообщения работает на ура, в поле мемо после нажатия ctrl+enter заносится код того самого enter'а (символы #10#13), что переставляет курсор на строчку ниже. Нужно, чтобы при нажатии ctrl+enter для отправки сообщения, в поле мемо не заносились символы enter'а (#10#13), и курсор после цепного срабатывания Send_b.Click и последующей очистки Send_m.Clear вернулся в положение 0. Как-то словить вобщем надо этот enter и не дать перетащить курсор на /n.

З.Ы.: Заранее благодарю, надеюсь пути решения этой плевой проблемы отыщутся быстро =)

Это сообщение отредактировал(а) willker - 28.11.2007, 09:18
PM MAIL   Вверх
Snowy
Дата 28.11.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код
procedure TSendMessageForm.Send_mKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (Key=vk_return) then
  begin
    Key := VK_END;
    Send_b.Click; 
  end;
end;

PM MAIL   Вверх
willker
Дата 29.11.2007, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Что-то не решает такой код этой проблемы. Переход на следующую строчку осуществляется все равно. Вместо end'а я вписывал 0, и эффект был тот же!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.