Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 968

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
я тут делаю чат, нужно, чтобы сообщения отправлялись по нажатию кнопки ентер.
Подскажите пожалуйста как сделать это
Я писал эти процедуры (приложение) и все равн оне работает :(

Приложение:
  1. Procedure TClientFrmMain.EditMessageKeyPress(Sender: TObject;
  2. var Key: Char);
  3. var
  4. CommBlock : TCommBlock;
  5. begin
  6. if Key = #13 then
  7. CommBlock.Command := EditCommand.Text; // assign the data
  8. CommBlock.MyUserName := Client.LocalName;
  9. CommBlock.Msg := EditMessage.Text;
  10. CommBlock.ReceiverName := EditRecipient.Text;
  11. end;
  12.  
  13. procedure TClientFrmMain.FormKeyDown(Sender: TObject; var Key: Word;
  14. Shift: TShiftState);
  15. var
  16. CommBlock : TCommBlock;
  17. begin
  18. if Key = VK_RETURN then
  19. CommBlock.Command := EditCommand.Text; // assign the data
  20. CommBlock.MyUserName := Client.LocalName;
  21. CommBlock.Msg := EditMessage.Text;
  22. CommBlock.ReceiverName := EditRecipient.Text;
  23. end;
  24.  
  25.  


Сергей-1388 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Сергей-1388 (статус: Посетитель)
Вопрос отправлен: 9 октября 2007, 20:12
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Сергей!
Сколько говорю, учить мат часть!
И если бы учили, что знали бы, что конструкция if ... then оператор; испольняет толко один оператор. а остальные не трогает. Судя с логики, в вашем случае надо что бы строки после then выполнялись лишь тогда, когда условие истинно. Для этого нужно несколько операторов завернуть в операторные скобки begin ... end; тогда они будут считаться за один оператор. тоеть где то так

Procedure TClientFrmMain.EditMessageKeyPress(Sender: TObject; 
var Key: Char); 
var 
CommBlock : TCommBlock; 
begin 
if Key = #13 then 
begin  
  CommBlock.Command := EditCommand.Text; // assign the data 
  CommBlock.MyUserName := Client.LocalName; 
  CommBlock.Msg := EditMessage.Text; 
  CommBlock.ReceiverName := EditRecipient.Text;
end;
end;

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 10 октября 2007, 00:18


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.02 сек.