Ввод даты в MaskEdBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Ввод даты в MaskEdBox

Сообщение Space » 11.11.2008 (Вт) 0:38

Как ввести дату в поле MaskEdBox? Хотелось бы в качестве разделителя использовать точку и при отсутствии даты - чистое поле. Устанавливал Format="dd-MM-yyyy" и Mask="00\.00\.0000" - не помогает :(
С маской разобрался - "##\.##\.####". Осталось св-во Format...

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Ввод даты в MaskEdBox

Сообщение SSecurity » 11.11.2008 (Вт) 13:12

ну ввести туда НЕДАТУ - элементарно. Format - тебе ничем не поможет.
Возможно следует отказаться от MaskEdBox, любо нарисовать свой контрол, который будет при отсутсвии фокуса и значения покзывать текстбокс, а при переходе на него ... текстбокс прячется а на его месте MaskEdBox и при вводе проверяй на дату

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Ввод даты в MaskEdBox

Сообщение Денис » 11.11.2008 (Вт) 14:05

Если уж используется ActiveX контрол MaskEdBox, то почему бы не использовать DTPicker? (из Common Controls-2 6.0 (SP6) - этот компонент не поддерживает манифест). И проще и удобней, а OCX за собой в любом случае таскать.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Ввод даты в MaskEdBox

Сообщение Space » 11.11.2008 (Вт) 18:58

Так а на кой тогда там св-во Format? Там даже есть готовый шаблон dd-mmm-yy, который тоже не работает :) Я могу сделать проверку даты в Validate без проблем, но св-во Format зачем тогда?
Почему не DTPicker:
1. В нём нет ForeColor и BackColor - только на календаре :) Портит общий вид.
2. В нём всегда занесена дата. Т.е., если дата не вводилась, надо держать в нём значение вроде 01.01.9999 и всегда проверять его в коде, типа это у нас пустое поле :) И сбивает с толку пользователя.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Ввод даты в MaskEdBox

Сообщение SSecurity » 11.11.2008 (Вт) 21:30

Space писал(а):Так а на кой тогда там св-во Format? Там даже есть готовый шаблон dd-mmm-yy, который тоже не работает :) Я могу сделать проверку даты в Validate без проблем, но св-во Format зачем тогда?
...
:) И сбивает с толку пользователя.


Тогда ставь UserControl на форму, в него вставляй TextBox и его свойствами уже разруливай как тебе нужно, и чтоб ничего не писал когда не введено и чтоб при вводе дату по формату вводил ... тут как фантазия подскажет и на 100% можно сделать то что нужно именно тебе ... ты же не публичный компонент мастеришь, т.е. строго ориентируешь под задачу:)

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Ввод даты в MaskEdBox

Сообщение Space » 11.11.2008 (Вт) 21:38

спасибо, но я как-нить обойдусь без таких крайностей. Хотелось бы знать назначение св-ва Format у MaskEdBox.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Ввод даты в MaskEdBox

Сообщение SSecurity » 11.11.2008 (Вт) 22:08

Space писал(а):спасибо, но я как-нить обойдусь без таких крайностей. Хотелось бы знать назначение св-ва Format у MaskEdBox.

http://www.xserver.ru/computer/sredapro ... /1/8.shtml
http://www.sql.ru/forum/actualthread.aspx?tid=181402
http://www.codeguru.com/forum/archive/i ... 13123.html -тут есть решение, которое возможно тебе поможет
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Ввод даты в MaskEdBox

Сообщение Space » 11.11.2008 (Вт) 22:30

понятно, что ничего не понятно. Как ни устанавливал Format, никаких изменений от его присутствия не увидел.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Ввод даты в MaskEdBox

Сообщение SSecurity » 11.11.2008 (Вт) 23:01

Space писал(а):понятно, что ничего не понятно. Как ни устанавливал Format, никаких изменений от его присутствия не увидел.


вот выгрыз:
В общем случае строка, задаваемая свойством Mask, работает аналогично строке формата в выражении Format.


Вот смотри
Код: Выделить всё
with MaskEdBox1
  .Mask = "##-##-##"
  .Format = "dd-mmm-yy"
  .AllowPrompt = True
  .ClipMode = 1
  .AutoTab = true
  .PromptInclude = true
end with


за ней размести кнопку ....
если в строке ввода сделаешь 11-11-11 то текст превратится в 11-ноя-11
если маску сделать ##.##.#### а формат "dd-mm-yyyy", тогда ввод 13.12.1221 у тебя превратится в 13-дек-1221
т.е. формат потом применяется к тому, что ты ввел в поле.

Что ещё не понятно?
(консультация платная:)))) )
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 70

    TopList