Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

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


Ответ
 
Опции темы
Старый 22.06.2011, 12:45   #1
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 139
По умолчанию Реакция на Shift

Здравствуйте, у меня на Edit'е, чтобы первое слово всегда писалось с большой буквы стоит код:
Код:
procedure TForm2.Edit7KeyPress(Sender: TObject; var Key: Char);  {автоматом заглавная буква}
var s: String;
begin
    s:= Key;
    if Edit7.SelStart=0 then
      s:=AnsiUpperCase(s)
    else
      s:=AnsiLowerCase(s);
     Key:=s[1];
end;
Остальные слова в Edit'е могут быть, как с большой, так и с маленькой. Только моя процедура не дает возможности написать последующие слова с большой. Подскажите, как добавить реакцию на Shift?
a_n_n_a вне форума Ответить с цитированием
Старый 22.06.2011, 12:57   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

уберите ветку Else
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.06.2011, 13:25   #3
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 139
По умолчанию

Спасибо, получилось)))
a_n_n_a вне форума Ответить с цитированием
Старый 22.06.2011, 13:36   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

кстати, если уж так надо, чтобы Первое слово обязательно было с Большой буквы, я бы не мучал пользователя, а сам, в процедуре, ВСЕГДА делал первую букву в Edit большой
и пусть пишет, что хочет
(в вашем коде достаточно выкинуть проверку на то, что SelStart = 0 и сделать upper только первой букве текста )


проверьте, например, что будет, если в Ваш Edit7 текст скопировать по CTRL-V

А так, по сути решения возникшей проблемы, Пепел Феникса прав - ветка ELSE не даёт набирать большие буквы, если курсор не в начале строки..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюк с Crtl+Shift+Down Sibedir Общие вопросы Delphi 2 28.01.2011 11:15
Ctrl + Shift + C не работает Neobrat Общие вопросы Delphi 3 15.10.2010 00:17
Кнопачки Shift перестали слушаться! jmibegi Операционные системы общие вопросы 9 03.08.2010 03:18
Shift _-Re@l-_ Общие вопросы Delphi 11 24.05.2010 21:52
Ctrl+Shift+Enter наоборот mihakr Microsoft Office Excel 3 13.03.2009 13:25