Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > HotKey's на memo


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

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.

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

Автор: Snowy 28.11.2007, 13:02
Код
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;

Автор: willker 29.11.2007, 08:25
Что-то не решает такой код этой проблемы. Переход на следующую строчку осуществляется все равно. Вместо end'а я вписывал 0, и эффект был тот же!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)