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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2018, 10:21   #11
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
Хорошо

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var ts : TStringList;
  isError : boolean;
  s : string;
begin
   s := Trim(Edit1.Text);
   isError := (Trim(s)='');
   if Not isError then begin
     ts := TStringList.create;
     try
     ts.Delimiter := ' ';
     ts.DelimitedText := Trim(s);
     if ts.Count<3 then isError := true
     else
        if ((Length(ts.Strings[1])<3)
         or (Length(ts.Strings[2])<3) ) then isError := true;
     finally
       FreeAndNil(ts)
     end;
   end;
   if isError then
     label1.Caption := 'Ошибка! Введите Фамилию, Имя, Отчество полностью'
   else
     label1.Caption := 'Всё корректно!';
end;
p.s. при желании сюда же легко добавить проверку на наличие точки в строке - если есть в строке точка - то это ошибка.
Чуть позже попробую, отпишусь.
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Старый 01.10.2018, 10:55   #12
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var ts : TStringList;
  isError : boolean;
  s : string;
begin
   s := Trim(Edit1.Text);
   isError := (Trim(s)='');
   if Not isError then begin
     ts := TStringList.create;
     try
     ts.Delimiter := ' ';
     ts.DelimitedText := Trim(s);
     if ts.Count<3 then isError := true
     else
        if ((Length(ts.Strings[1])<3)
         or (Length(ts.Strings[2])<3) ) then isError := true;
     finally
       FreeAndNil(ts)
     end;
   end;
   if isError then
     label1.Caption := 'Ошибка! Введите Фамилию, Имя, Отчество полностью'
   else
     label1.Caption := 'Всё корректно!';
end;
p.s. при желании сюда же легко добавить проверку на наличие точки в строке - если есть в строке точка - то это ошибка.
Спасибо! это как раз то, что доктор прописал!!!! Работает.
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Старый 01.10.2018, 11:14   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от gdu Посмотреть сообщение
Спасибо! это как раз то, что доктор прописал!!!! Работает.
пожалуйста.

только уберите функцию Trim() - это рудимент, он остался после того, как я заменил Trim(Edit1.Text) на переменную s (так):
Код:
   s := Trim(Edit1.Text);
   isError := (s='');
   if Not isError then begin
     ts := TStringList.create;
     try
     ts.Delimiter := ' ';
     ts.DelimitedText := s;
     if ts.Count<3 then isError := true
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.10.2018, 11:32   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Там бы еще длину фамилии проверить, а вдруг только одна буква )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2018, 11:41   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Там бы еще длину фамилии проверить, а вдруг только одна буква )
две буквы может быть.
а запретить фио из одной буквы легко:
Код:
    if ts.Count<3 then isError := true
     else
        if ((Length(ts.Strings[0])<2) or (Length(ts.Strings[1])<3)
         or (Length(ts.Strings[2])<3) ) then isError := true;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.10.2018, 10:47   #16
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
две буквы может быть.
Согласен! Эш - есть такая фамилия
Есть еще иностранные имена, например, американский Брюс Ли.

Я думаю, что кроме точки нужно диалоговое окно добавить для проверки с таким сообщением: Действительно, что Ваше имя состоит из 2-х букв?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 07.10.2018 в 10:55.
newerow1989 вне форума Ответить с цитированием
Старый 07.10.2018, 18:55   #17
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

Мб как вариант, сделать три отдельных Едитра, при нажатии проблема в котором осуществляется переход к следующему эдиту, и проверку на >1 символа? В 95% случаев прокатит)
stalker1995s вне форума Ответить с цитированием
Старый 09.10.2018, 11:50   #18
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию Дополнение:

Цитата:
Сообщение от stalker1995s Посмотреть сообщение
Мб как вариант, сделать три отдельных Едитра, при нажатии проблема в котором осуществляется переход к следующему эдиту, и проверку на >1 символа? В 95% случаев прокатит)
3 едита это очень просто и топорно, не хочется использовать такой вариант.
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Старый 09.10.2018, 18:27   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Это не топорно, а правильно )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Требуется задача которая будет требовать ввод (id ФИО Кол-воТрафика(в месяц)), а на вывод (id ФИО Кол-воТрафика(в срок) LLLEPb Помощь студентам 2 15.12.2016 17:14
Ввод пароля в Edit lu_una Общие вопросы Delphi 1 19.11.2012 14:54
Ввод в Edit roxy7 Компоненты Delphi 2 13.04.2012 11:50