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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2011, 08:49   #1
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию регистр букв в Edit

Здравствуйте, у меня в событии KeyPress Edit'а для того, чтобы в нем писалось только с большой буквы написано
Код:
s:= Key;
    if Edit7.SelStart=0 then
      s:=AnsiUpperCase(s)
    else
      s:=AnsiLowerCase(s);
     Key:=s[1];
Все работает, только на Shift не реагирует, а это надо... Не подскажите, как добавить реакцию на Shift? В этой же процедуре или надо будет в OnKeyDown?
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 09:04   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

а может в свойствах эдита указать в
Код:
CharCase = ecUpperCase
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 24.04.2011, 09:30   #3
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

Не, тогда получится, что будут всегда заглавные... А мне надо, чтобы первая буква всегда была заглавной, а остальные, как уже пользователь решит сам.
Вот моя процедура и делает первую заглавной, но не дает возможности следующие буквы ввести тоже заглавные...)

Последний раз редактировалось a_n_n_a; 24.04.2011 в 09:32.
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 09:42   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Если слова разделены пробелом, то ищите в строке пробелы. Делайте +1 к полученному значению и делайте первую попавшуюся букву заглавной. Если я правильно понял Вас. Только надо проверять длину слов, т.к. могут быть обычные предлоги попасться. Как вариант.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 24.04.2011, 09:48   #5
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

artemavd, я сама запуталась)

Ну, например, пользователю надо ввести ООО "Капитал", в моем варианте он сможет ввести только Ооо "капитал".
Вот для исправления косяка с Ооо мне нужна реакция на Shift, чтобы было ООО.

А моя процедура, это типа защиты, чтобы случайно не ввести с маленькой)
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 10:09   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Ну, можно попробовать так. Всего же есть ОАО, ЗАО и ООО. Вот. При вводе в эдит проверяйте какое из этих слов присутствует и подставляйте уже заглавные буквы этих названий. Или, например, так:
(по нажатию клавиш)
Код:
 if Edit1.Text = 'ooo' then
 begin
  Edit1.Text:='OOO';
 end;
 if Edit1.Text = 'Ooo' then
 begin
  Edit1.Text:='OOO';
 end;
 if Edit1.Text = 'oOo' then
 begin
  Edit1.Text:='OOO';
 end;
 if Edit1.Text = 'ooO' then
 begin
  Edit1.Text:='OOO';
 end;
....
и т.д.
Вариантов несколько. Или, посмотрите в сторону case...of

Добавлено. А вообще, я бы сделал не так. Я бы предоставил пользователю возможность выбора из ComboBox1 (co свойством Style=csDropDown) выбор типа организации которую он вводит: ООО, ЗАО или ОАО, а после выбора предложил бы ввести уже слово, а дальше попробовал бы сделать как в моем посте №4
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 24.04.2011 в 10:11.
artemavd вне форума Ответить с цитированием
Старый 24.04.2011, 10:18   #7
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

не, не, не, тип организации это я как пример.... пользователь может ввести, что захочет...
Ну, например, одна фирма назвается "КаПитАл", а другая "КаПИтал" и никак иначе их внести нельзя, надо именно так, но чтобы 1я буква всегда заглавная)
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 10:26   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вот незадача-то а)). А Вы так и не пробовали вариант с поиском пробелов?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 24.04.2011, 10:29   #9
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

Ну, как я поняла, если делать с поиском пробелов, то получится, что он мне из строчки "Фирма ооо капитал" сделает "Фирма Ооо Капитал", т.е. изменится только первые буквы каждого слова... На это у меня процедурка есть)))
А как добраться до букв с середине...)))
Или я чего-то не догоняю?)
a_n_n_a вне форума Ответить с цитированием
Старый 24.04.2011, 10:32   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Может помещать все буквы найденного слова в массив, а потом заменять все буквы прописными кроме первой буквы. Так должен получиться массив букв (или слово, хз) в котором первая будет заглавной, а остальные прописными. Как-то так чтоли)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить в группе ячеек с текстом регистр букв Wespe Microsoft Office Excel 2 21.06.2010 09:01
Запись в регистр Vitek-pm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 17.02.2010 04:00
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36
регистр vitalik007 Общие вопросы Delphi 2 15.09.2007 02:41