Страницы: 1 2 След.
RSS
Как исправить ошибку в кодах проверки вводимых даных?
 
Всем доброго дня!  
Ребята! Помогите, пожалуйста, кто имет такое желание,исправить ошибку в макросе (ах) проверки вводимых даных  
Уважаемый EducatedFool на другом форуме, http://www.programmersforum.ru/showthread.php?t=66969 предложил свой вариант решения этой проблемы. Но ввиду большой занятости не смог его довести до рабочего состояния.  
Я, в свою очередь, пробовал по всякому, но увы! Ошибка не уходит.  
В частности, поменял код, так как он мне рекомендовал. Теперь, при вводе 65465463 или 65465464 кнопка стала активной и новая строка вносится в реестр, но когда ввожу цифры, например 65465465, кнопка активна, но при нажатии на нее, программа выдает сообщение: «Неправильно набрано код ЕДРПОУ».  
Попробовал удалить старую проверку (модули:CheckAccount и CheckINN) выдает стопорит на строке «ПроверкаСчета в строке sErrAcc = ПроверкаСчета(TextBoxRax.Text, TextBoxMFO.Text)», следующего макроса «CommandButtonOk_Click()».  
Плюс к тому, в прцесе работы проявилась проблема с ручным набором новых даных. А точнее, при вводе кода ЕДРПОУ с клавиатуры почему то не активируется кнопка «Внесіть до реєстру». Интуитивно догадываюсь, что проблема кроется вот здесь :"Поле TextBoxEDRPOY окрашивается в желтый цвет, если длина соответствует, но ИНН не проходит проверку",- но как ее решить также не знаю.    
Спасибо!
 
Пардон!  
Забыл приложить файл
 
Проверьте функции Inn8 и Inn14, или опишите алгоритм - как она должна работать...  
Функция CodePF недописана вовсе..  
 
По первым впечатлениям - пользователю бывает очень тяжело вносить цифровые данные. Поэтому для этих текстбоксов лучше разработать код, который запрещал бы ввод символов, приводящих к ошибке... Ничего конкретного сейчас сказать не могу - не знаю алгоритм проверки этих елючевых слов.
 
Всем доброго дня!  
Не знаю на сколько профессионально у меня это получится, ведь я пока только учусь. Эту програмку стяпал методом тыка и по принцыпу «авось будет работать». Сознаюсь честно. Одни только формы создал собственноручно (научиля уже это делать), а коды понаходил в интернете и попытался переделать их под себя. Как видите получилось очень препаскудно. Потому что в простых макросах, немного ориентпруюсь, а вот в сложных ….???  
Что касается названых вами макросов, то первоначальная моя задумка была такова. Проверить на количество введенных цифр следующие текстовые поля:    
1) TextBoxEDRPOY (идентификационный код получателя) – может состоять строго из 8 цифр, набор таких цифр может быть каким угодно, в том числе может начинаться с нуля. Для этой проверки должен служить код под именем Inn8;  
2) TextBoxEDRPOY (расчетный счет получателя) – может содержать в себе не больше 14 цифровых зпаков (меньше или равно 14 - допускается, а вот больше 14  - категорически нет). Набор цифр тоже произвольный.  Эту функцию, по моему задуму, должен выполнять код - Inn14;  
3) TextBoxMFO (МФО банка получателя) – состит строго из 6 цифр, набор цифр произвольный. Функцию для выполнения этой работы стяпать не смог. А после того, как EducatedFool  предложил мне свой вариант проверки, потребность в этом отпала вообще. В крайнем случае я так думаю. Или я не прав?  
Как мне кажется, его способ проверки «сделать кнопку CommandButtonOk недоступной до тех пор, пока не будут КОРРЕКТНО введены ВСЕ данные» более практичен.  
А его суть следующая. Каждое из этих трёх полей становится красным, если введено некорректное значение (что-то кроме цифр, или длина не соответствует). Вот такая получается петрушка!  
Если вы придумаете свой способ проверки, буду только рад. А если еще дополнительно вставите проверку полей : TextBoxRecipientName, TextBoxBank, TextBoxPayer – на предмет «только буквенные знаки». А проверку поля TextBoxAmount на предмет «сумма цифрами через запятую», то буду очень  счастлив. Ну, а если к полям : TextBoxRax, TextBoxMFO, TextBoxBank подключите возможность ввода этих реквизитов с отдельного списка, то буду на седьмом небе и очень, очень вам благодарен. Но это – на ваше желание.  
Перечень банков прикрепляю.  
С уважением, Gleod!
 
Ну давайте попорядку на примере одного TextBoxa (остальные аналогично):  
 
1. Чтобы горемычный пользователь по простоте душевной не вводил посторонние символы вставим на форму следующий обработчик:    
 
Private Sub TextBoxEDRPOY _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
       If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0  
   End Sub  
   Private Sub TextBoxEDRPOY _KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
       If KeyCode = vbKeyV And Shift = 2 Then KeyCode = 0  
   End Sub  
 
Он не позволит вводит любые символы кроме цифр и вставлять текстовые символы.  
 
2. Теперь запретим писать более 8 символов для этого в свойствах TextBoxEDRPOY пишем значение 8 для свойства MaxLength.  
 
Все теперь пользователь не сможет (даже если захочет) ввести строку длинной более 8 символов состоящую не из цифр.    
 
Другое дело проверка функцией Inn8 - я не понял алгоритма    
 
   Dat = Array(2, 4, 3, 5, 4, 6, 8)  
 
   Inn8 = False  
   Tmp = 0  
   If Len(sInn) <> 8 Then Exit Function 'проверка на 8 знаков  
     
   Tmp = Tmp + Mid(sInn, 1, 1) * Dat(0)  
   Tmp = Tmp + Mid(sInn, 2, 1) * Dat(1)  
   Tmp = Tmp + Mid(sInn, 3, 1) * Dat(2)  
   Tmp = Tmp + Mid(sInn, 4, 1) * Dat(3)  
   Tmp = Tmp + Mid(sInn, 5, 1) * Dat(4)  
   Tmp = Tmp + Mid(sInn, 6, 1) * Dat(5)  
   Tmp = Tmp + Mid(sInn, 7, 1) * Dat(6)  
   If Tmp = 0 Then Exit Function 'Ошибка, если = 0  
     
   Tmp = Tmp - 9 * (Tmp \ 9)  
   Tmp = Tmp - 8 * (Tmp \ 8)  
   Last = CLng(Mid(sInn, 8, 1))  
     
   If Last = Tmp Then Inn8 = True  
 
Каждое значение перемножается на цифру из массива, все это затем складается, минусуется, делится  и затем проверяется длина  - кто писал Вам эту функцию????  
 
Если это только проверка длины, то функцию в сад.    
 
Ну для начала хватит... Задавайте следующий вопрос.
 
Если тяжело - пример
 
{quote}{login=Vovak}{date=28.11.2009 05:36}{thema=}{post}  
 
Другое дело проверка функцией Inn8 - я не понял алгоритма    
 
{/post}{/quote}Я файл не смотрел, но из того, что видно здесь, это проверка и на длину и на цифры. Суровая проверка :)  
Боюсь, будет мало только MaxLength. Нужно ровно 8: If Len(sInn) <> 8
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=28.11.2009 08:06}{thema=Re: }{post}{quote}{login=Vovak}{date=28.11.2009 05:36}{thema=}{post}  
 
Другое дело проверка функцией Inn8 - я не понял алгоритма    
 
{/post}{/quote}Я файл не смотрел, но из того, что видно здесь, это проверка и на длину и на цифры. Суровая проверка :)  
Боюсь, будет мало только MaxLength. Нужно ровно 8: If Len(sInn) <> 8{/post}{/quote}  
 
Согласен, думаю случай когда < 8 можно легко описать по событию Change.
 
При таком событии Change будет трудновато вводить ...  
Лучше Exit - не дает покинуть текстбокс пока 8 цифр не будет.  
Ну или просто краснеет, тогда Cancel = True не нужно.
Bite my shiny metal ass!      
 
Век живи век учись, Лузер даешь просвещение в массы...  
 
Как работает переменная Cancel и есть ли у нее сородичи...
 
Cancel - обычно это для события типа BeforeЧтоНибудь. Если ее в коде установить в True, то это ЧтоНибудь не происходит. Отмена сохранения, печати, выхода - типичные вещи.  
Кто подразумевается под сородичами? Про другие аргументы событий (типа KeyAscii) Вы и так знаете.
Bite my shiny metal ass!      
 
Понял - Спасибо. Просто не использовал по незнанию...
 
Ну вот, вставил в модуль UserForm1 и попробовал запустить. Ругаеться на строке Private Sub TextBoxEDRPOY _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger).  
Попробовал удалить функцию Inn8. Никакого результатата. К стати на эту функцию ссылается макрос Click, который запускается кнопкой CommandButtonOk. (или по другому – Внесіть до реєстру). Попробовал заблокировать рпанее существующий макрос Change, тоже нге работает. Єксперементирую дальше.
 
.
Bite my shiny metal ass!      
 
Всем доброго воскресного дня и клевого настроения!  
Ребята, в который раз смотрю на макросы в модуле UserForm1 и не могу понять, какую роль у этом варсии даной проги играет макрос Exit. Возможно он уже и не нужен?  
Далее, для того чтобы я мог сделать аналогичную проверку в TextBoxRax и TextBoxMFO (и вообще, на будущее хочу знать что и как работает), растолкуйте мне, пожалуйста, некоторые моменты. Например, по следующим шагам даной проверки, я я мыслю таким образом. Ограничение «строго 8 знаков», устанавливается у свойствах TextBoxEDRPOY, строка  MaxLength. А вот какая строка и какого макроса контролирует выполнение требования пльзователя «только цифры».  
И наконец, нельзя ли сделать так, чтобы при количестве цифр в этом поле меньше 8 цифровых знаков, оно красилось красным цветом.  
А на вопрос Vovak отвечаю, ф
 
{quote}{login=Gleod}{date=29.11.2009 01:42}{thema=}{post}Всем доброго воскресного дня и клевого настроения!  
Ребята, в который раз смотрю на макросы в модуле UserForm1 и не могу понять, какую роль у этом варсии даной проги играет макрос Exit. Возможно он уже и не нужен?  
Далее, для того чтобы я мог сделать аналогичную проверку в TextBoxRax и TextBoxMFO (и вообще, на будущее хочу знать что и как работает), растолкуйте мне, пожалуйста, некоторые моменты. Например, по следующим шагам даной проверки, я я мыслю таким образом. Ограничение «строго 8 знаков», устанавливается у свойствах TextBoxEDRPOY, строка  MaxLength. А вот какая строка и какого макроса контролирует выполнение требования пльзователя «только цифры».  
И наконец, нельзя ли сделать так, чтобы при количестве цифр в этом поле меньше 8 цифровых знаков, оно красилось красным цветом.  
А на вопрос Vovak отвечаю, ф{/post}{/quote}  
Прошу прощения за допущеную ошибку! В конце следует читать: "А на вопрос Vovak отвечаю, функцию Inn8 я нашел в интернете. К сожалению уже не помню где именно.  
С добрыми пожеланиями, Gleod!"
 
>>Ограничение «строго 8 знаков», устанавливается у свойствах TextBoxEDRPOY, строка MaxLength  
Неверно. Это свойство устанавливает "не более 8 знаков"  
 
>>вот какая строка и какого макроса контролирует выполнение требования пльзователя «только цифры».  
цитирую    
уже написанное здесь:  
VovaK>> 1. Чтобы горемычный пользователь по простоте душевной не вводил посторонние символы вставим на форму следующий обработчик:    
Private Sub TextBoxEDRPOY _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0  
End Sub  
 
>>нельзя ли сделать так, чтобы при количестве цифр в этом поле меньше 8 цифровых знаков, оно красилось красным цветом.  
>>какую роль у этом варсии даной проги играет макрос Exit. Возможно он уже и не нужен?  
Exit выполняется при выходе из текстбокса. Там и проверяется длина  
текста, и закрашивается красным, и выдается предупреждение.  
Возможно он не нужен. Можно по любому другому событию закрашивать красным. Я выбрал Exit из логики, что проверять количество надо после ввода, т.е. перед выходом. Скажите в какой момент проверять и тут подскажут событие (если есть).
Bite my shiny metal ass!      
 
Лузер™! Если я вас правильно понял, контроль количества введенных знаков осуществляется строкой  «If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0» макроса eyPress. Тогда прокоментируйте мне, пожалуйста, что здесь означают цифры 48 и 57. И будут ли они такими же для проверки поля TextBoxMFO. И как эта строка будет выглядеть для поля TextBoxRax?  
Потом, как мне кажется, будет гораздо удобнее, если поле TextBoxEDRPOY будет красится в красный цвет на момент ввода цифровых знаков в это поле. Примерно так, как это происходит в поле TextBoxMFO.  
Для справки. Само неудобство, в даной ситуации, возникает при вводе неправильных реквизитов со списка (теоретически это возможно). В таком случае, если ЭДРПОУ введено неправильно и пользовватель не заметил даной ошибки, то узнает он о ее наявности , только после нажатия кнопки Внесіть до реєстру. И для ее исправления, прийдется возвращаться обратно . к набору.    
Прошу вас не обижаться на мою дотошность! Вы ведь понимаете, что я учусь писать коды своими руками, поэтому й проявляю повышенный интерес к разным нюансам.
 
*Застрелите меня, кто-нибудь.  
цифры 48 и 57 это коды нуля и 9.    
выражение «If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0» проверяет, что юзер ввел цифру. Если ввел не цифру, то считается что ничего не ввел.  
 
Для того чтобы определить, какой код что выполняет, заносите их в книгу поочередно. Тогда будете точно знать, что где
Bite my shiny metal ass!      
 
*Застрелите меня, кто-нибудь.  
Нет уважаемый Лузер™, живите долго-долго в достатках и полном счастье111  
У меня к вам, еще куча вопросов по этой теме, в том три из них остались открытыми из предыдущего поста.А именно: "    
1) И будут ли они такими же для проверки поля TextBoxMFO.Частично на этот вопрос ответ ыами дан. Здесь мне только подскажите где я могу почитать о б кодах цифр.  
2). И как эта строка будет выглядеть для поля TextBoxRax?  
3). Потом, как мне кажется, будет гораздо удобнее, если поле TextBoxEDRPOY будет красится в красный цвет на момент ввода цифровых знаков в это поле. Примерно так, как это происходит в поле TextBoxMFO.
 
Gleon,  
 
Мой Вам совет - Удалите все фукнкции из своего кода, тем более, что некоторые (такие как ПроверкаСчета)  написаны неправильно. После этого обложитесь учебниками и внимательно прочитайте все, что касается обработки событий в VBA. Если есть интернет еще проще. Затем аккуратненько вставляйте коды обработки для каждого текстбокса. Без базовых знаний Вы не сможете самостоятельно писать макросы. Писать за Вас... Два варианта - или интузиаст (прокатывает когда задача интересная) или наемник.    
 
На вопросы отвечу:  
 
1. коды символов Вы видите при всавке символа на лист. Меню-Вставка-Символ и в этом меню Код знака - шеснадцатеричный или десятичный.  
2. Проверка на ввод цифр будет одинаковой, Свойство MaxLength необходимо поставить 14, ну и подправить обработчик Exit <> 14.    
3. Красненьким во время ввода - пишется проверка длины строки по событию Change соответсвующего текстбокса - писать не буду код очень простой - Вы справитесь самостоятельно. Единственное я не понял - "при вводе неправильных реквизитов со списка (теоретически это возможно)" - с какого списка, на практике ошибки неизбежны, если цифры вводятся вручную. Для этого я и попытался Вам помочь, чтобы исключить ввод тектовых символов. Если у Вас список реквизитов в электронном виде, то лучше реквизиты заполнять программно - ошибок будет меньше.  
 
И еще, если для Вас все таки кто-нибудь напишет эту работу, Вы всегда будете зависеть от обстоятельств - любая ошибка и Вы ничего с этим поделать не сможете. Другое если Вы напишете сами и будете знать КАК это работает.  Ошибки  Вам будут нипочем...
 
{quote}{login=Gleod}{date=30.11.2009 12:46}{thema=}{post}где я могу почитать о б кодах цифр.{/post}{/quote}http://ru.wikipedia.org/wiki/ASCII
Bite my shiny metal ass!      
 
{quote}{login=Gleod}{date=30.11.2009 12:46}{thema=}{post}Потом, как мне кажется, будет гораздо удобнее, если поле TextBoxEDRPOY будет красится в красный цвет на момент ввода цифровых знаков в это поле. {/post}{/quote}  
Private Sub TextBoxEDRPOY_Change()  
TextBoxEDRPOY.BackColor = IIf(Len(TextBoxEDRPOY.Text) <> 8, vbRed, vbWhite)  
End Sub
Bite my shiny metal ass!      
 
Доброго всем дня!  
"Мой Вам совет - Удалите все фукнкции из своего кода, тем более, что некоторые (такие как ПроверкаСчета) написаны неправильно. После этого обложитесь учебниками и внимательно прочитайте все, что касается обработки событий в VBA".  
VovaK! Так ведь именно таким образом я и начал лямпичить эту прогу. И я не думаю, что на даном этапе обучения и без посторонней помощи у меня получится лучше чем у тех спецов, кто писал эти, заимствованые  мною коды. А вы в свою очередь, подправте меня там, где я скозлил не то или не так. Пожалуйста!  
Теперь что касается спец. литературы, то здесь тоже не совсем получается well. Ведь в большинстве случаев, те маленькие кусочки актуальной для тебя информации и не находишь, хотя и перечитываешь не один десяток страниц. Другое дело изучать эти азы на ваших примерах и задавая вам, по ходу возникшие вопросы.  
Очень даже понимаю, что на вас при этом ложится большая нагрузка. Но, во-первых, пройдя вместе с вами этот путь и записав на свой ПК всю полученную от вас информацию, я всегда буду иметь под рукой ваши дельные советы. А, во-вторых, научившись я смогу помогать другим форумчанам и тем самым хоть частично снимать с вас некоторую нагрузку. К стати, там где я уже что то имею в своем наработаном арсенале полезной информации, уже сейчас стараюсь делиться ею с нуждающимися.  
Исходя из этого, очень прошу у вас дополнительного терпения и относится к моим, не всегда грамотным, но надоедливым вопросам, с неким рптимизмом и с надеждой на то, что это все в скором времени пройдет. По двум причинам. Либо я научусь все делать самостоятельно. Либо у меня, просто иссякнут вопросы, хотя бы из-за того, что я не без вашей помощи, наконец заимею все необходимые электронные  инструменты для моей работы. А их для меня нужно, не так уж и много!!!  
И можете мне не верить! Но наличие чрезмерной работы, все таки лучше, чем ее полное отсутствие. Испытал все это, кем то умело надуманое Г…, на собственной шкуре. Почти на год оставшись без заказов на проведение аудиторских проверок, и, час от часу,  перебиваясь случайными зароботками.. В связи с этим долбаным кризисом. И, еще больше задолбаной и тупоумной украинской властью. Которой на нас всегда хочется плевать.  
Если я вас в чем то убедил, то помогите мне до конца добить зту прогу, которая нужна мне для проведения платежей, например, за интернет, за электронное законодательство и так далее.  
Чтобы внести какое то заспокоение, собщаю вам, что до конца пути осталось 4 маленьких шажка. Следующий из  них, является проверка поля TextBoxRecipientName на «только буквенные знаки», на момент ввода буквенной информации в это поле. А аналогичные проверки по другим полям, я допишу сам. По образцу вашего кода.  
С уважением, Gleod!
 
Ключ к пониманию, как работает макрос VBA - отладчик (Debug).  
 
Откройте редактор VBA (AltF11). Нажмите правую кнопку мыши на свободном поле меню - в выпадающем меню отметьте галочку Debug - появится строка команд отладчика, ну или просто зайдите в меню Debug.    
 
В этом меню есть команды пошагового выполнения процедур, которые позволяют увидеть какие изменения вносит в программу каждая запись.  
Кратко о командах:  
 
- треугольник (в меню Run) - запуск процедуры  
- кубик (в меню Run) - останов выполнения процедуры  
- ладошка (в меню Debug) - метка строки - на этой метке отладчик приостанавливает выполнение программы  
- две черточки (в меню Run) - команда Break - останов выполнения при зацикливании.  
- команды со стрелочками (в меню Debug) - пошаговое выполнение программы (Step info, Step Over), Выполнение до завершения текущей процедуры (Step Out), выполнение до позиции курсора (Run to Cursor)  
 
Есть еще нужный инструмент Watch - окно отслеживания значений переменных. Помечаете переменную - выполняете коменду Add Watch и в появившемся окне наблюдаете за изменением переменной.  
 
Это Вам реально поможет в понимании КАК ЭТО РАБОТАЕТ...
 
Всем привет!  
VovaK и Лузер™! Для начала большое спасибо за эту др. подсказки! Непременно воспользуюсь, особенно последней, самой, самой дельной. Отдельное спасибо за готовые макросы!    
А дальше я решил не возиться с другими проверками, чтобы лишний раз не грузить вас всякими вопросами и просьбами. Ведь даная прога может успешно работать и без них. Може загодя научусь и доделаю сам. Или поможет кто то другой.  
А вот без реестра платежных квитанций работать будет очень смложно и неудобно. Отсюда последняя к вам просьба, в  рамках работы над даной програмкой,.\  
Помогите исправить код , который записывает заполненую квитанцию в реестр.  
На даный момент существующий код делает ошибку (ки).    
Например, последним заполняемым столбцом в реестре, должен быть столбец «К» (ПДВ). Макрос же каким то непонятным образом добавляет ФИО плательщика (см. post_80626) в столбце L. И следующее, мне кажется неправильным то, что макрос записывает каждую новую строку дважды. Сначала в строке под самой шапкой, а потом в конце списка. А нельзя ли сделать так, чтобы новая строка записывалась и сохранялась в реестре только в одной строке.  
Слезно прошу вас это сделать. Так как мне самому этого пока не осилить!!! А програмка мне, кров из носу, нужна для печати квитанций. Посколько с моим пониженым зрением заполнять их, стало нелегкой процедурой.
 
Честно скажу весь текст не осилил.  
Просто хочу поделиться методом который я использую при вводе чисел в обычный textbox .  
 
Private Sub TextBox1_Change()  
Dim a As Long, max As Long  
max = 6 ' знаков максимум например  
a = Val(TextBox1.Text)  
TextBox1.Text = Right(CStr(a), 6)  
If a > 0 And Len(TextBox1.Text) <= max Then  
   ' испольняемый код    
   MsgBox "start"  
End If  
End Sub  
 
в данном случает отрабатывает при любом изменении textbox. Удобно ,поскольку не надо ничего дополнительно нажимать.
 
Ошибка небольшая еще.  
Application.EnableEvents =false в начале и в    
Application.EnableEvents =true  
конце забыл вставить.
 
{quote}{login=Jom}{date=01.12.2009 02:35}{thema=}{post}Честно скажу весь текст не осилил.  
Просто хочу поделиться методом который я использую при вводе чисел в обычный textbox .  
 
Private Sub TextBox1_Change()  
Dim a As Long, max As Long  
max = 6 ' знаков максимум например  
a = Val(TextBox1.Text)  
TextBox1.Text = Right(CStr(a), 6)  
If a > 0 And Len(TextBox1.Text) <= max Then  
   ' испольняемый код    
   MsgBox "start"  
End If  
End Sub  
 
в данном случает отрабатывает при любом изменении textbox. Удобно ,поскольку не надо ничего дополнительно нажимать.{/post}{/quote}  
 
Не в обиду Jom,  
Если бы я писал для врагов, наверное так бы и поступил. Потому как после 5 минут заполнения бланка таким способом у пользователя началась бы истерика. Jom, инструмент должен быть прежде всего удобный и в конечном итоге сохранять время пользователя. А так - очень жестко...
 
Спорно. Я бы сказал что очень даже спорно.  
Мой способ позволяет вставку,копирование из/в  буфера,что бывает очень полезно во многих ситуациях. Если же проверять коды нажимаемых клавиш , то этого сделать будет нельзя. Можно конечно добавить ctrl+c\v\x  в исключения.... только ведь не у все использую именно эти сочетания клавиш.    
Если заменить тип переменной перед Val на Decimal то можно использовать до 28 цифр.    
В общем-то мне все равно. Я просто предложил. В своих программах я использую способ похожий на этот, хотя были и другие варианты, но практика показала,что этот наиболее удобный по сравнению с другими.  
 
ps. есть еще универсальный вариант с MaskEdBox , только одно но: этот контрол  не является стандартным и его необходимо будет регить
Страницы: 1 2 След.
Читают тему
Loading...