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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 11:31   #1
angel_ok
Пользователь
 
Регистрация: 30.06.2008
Сообщений: 17
По умолчанию Ввод с большой буквы

Вопросик такой:
мне надо что б был запрет на ввод С маленькой буквы (выделяю "С" - потому что первая ДОЛЖНА быть заглавная,а последующие - маленькие)

begin
if key in ['а'..'я','a'..'z'] then
begin
key:=#0;
ShowMessage('Разрешается ввод с большой буквы');
end;

но после этого требуется что б и вторая, и третья и.т.д - тоже были большие!!!
Так как сделать,что б первая заперещал вводить маленькой,а разрешал?
спасибо
angel_ok вне форума Ответить с цитированием
Старый 13.01.2011, 11:37   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,758
По умолчанию

А просто самому не судьба автоматом переводить первую букву в заглавную через UpperCase?
FaTaL вне форума Ответить с цитированием
Старый 13.01.2011, 11:48   #3
angel_ok
Пользователь
 
Регистрация: 30.06.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
А просто самому не судьба автоматом переводить первую букву в заглавную через UpperCase?
я в этом деле новичок,поэтому можно чуть -чуть поподробнее?
angel_ok вне форума Ответить с цитированием
Старый 13.01.2011, 11:53   #4
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

если всё это происходит в memo, а я почти уверен, что да...
я бы использовал цикл while с переменной boolean для включения и выключения цикла
и проверял бы каждую строку на символ, не знаю как там будет "заглавный" по этому сделал по нубски: заменял стринговое значение первого символа в каждой строке если первый символ строки 'с' заменяем его на 'C' и идём дальше)

хотя вот цикл for to do гораздо проще
от первой строки до последней делаем первый символ заглавным
пыжок

Последний раз редактировалось maloun; 13.01.2011 в 11:57.
maloun вне форума Ответить с цитированием
Старый 13.01.2011, 11:57   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Если кодом, то
Код:
For I := 0 To Memo1.Lines.Count - 1 Do
 Memo1.Lines[I][1] := UpperCase(Memo1.Lines[I][1]);
Не проверял, но должно работать.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 12:05   #6
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

не пашет, пишет вот такие ошибки:
[Error] Unit1.pas(32): Left side cannot be assigned to
[Error] Unit1.pas(32): Incompatible types: 'Char' and 'String'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

+ у меня вопрос, а если первым сиволом будет не буква?
пыжок
maloun вне форума Ответить с цитированием
Старый 13.01.2011, 12:08   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
у меня вопрос, а если первым сиволом будет не буква?
По идее после UpperCase не изменится.
Цитата:
не пашет
Код:
var
 I : Integer;
 C : Char;
 S : String;
begin
 For I := 0 To Memo1.Lines.Count - 1 Do
 Begin
  C {Char}:= Memo1.Lines[I][1];
  C := UpperCase(C)[1];
  S := Memo1.Lines[I];
  S[1] := C;
  Memo1.Lines[I] := S;
 End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 13.01.2011 в 12:10.
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 12:08   #8
angel_ok
Пользователь
 
Регистрация: 30.06.2008
Сообщений: 17
По умолчанию

У меня в Edit
Нашла вот такой пример:

with Sender as TEdit do
if (SelStart = 0) or
(Text[SelStart] = ' ') then
if Key in ['a'..'z'] then
Key := UpCase(Key) ;

Все работает,т.е ПЕРВАЯ АНГЛИЙСКАЯ БУКВА маленькая - автоматом на ЗАГЛАВНУЮ переходит, но у меня русский алфавит....если в место "UpCase" поставить "AnsiUpperCase" - ошибка

Последний раз редактировалось angel_ok; 13.01.2011 в 12:12.
angel_ok вне форума Ответить с цитированием
Старый 13.01.2011, 12:10   #9
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

Alex Cones откуда ты это берёшь?
щас проверю...
пыжок

Последний раз редактировалось maloun; 13.01.2011 в 12:13.
maloun вне форума Ответить с цитированием
Старый 13.01.2011, 12:12   #10
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

ну едит так едит))
Цитата:
Сообщение от Alex Cones Посмотреть сообщение
По идее после UpperCase не изменится.

Код:
var
 I : Integer;
 C : Char;
 S : String;
begin
 For I := 0 To Memo1.Lines.Count - 1 Do
 Begin
  C {Char}:= Memo1.Lines[I][1];
  C := UpperCase(C)[1];
  S := Memo1.Lines[I];
  S[1] := C;
  Memo1.Lines[I] := S;
 End;
для мемо работает)))


а строку полную цифр удаляет...
пыжок

Последний раз редактировалось maloun; 13.01.2011 в 12:18.
maloun вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
большой цикл bulldog5293 Общие вопросы Delphi 7 15.12.2010 15:06
Большой екзешник MBentefor C++ Builder 4 16.04.2010 10:24
Все ли эти слова написаны с большой буквы dip Помощь студентам 11 02.11.2009 20:42
Большой шрифт vitalik007 HTML и CSS 5 25.10.2007 14:33