Вверх ↑
Этот топик читают: Гость
Ответов: 150
Рейтинг: 0
#1: 2011-03-04 16:35:59 ЛС | профиль | цитата
Народ, помогите, пожалуйста, сделать поле ввода Edit с установленной длиной в 10 символов для ввода даты (в формате чч.мм.гггг), так чтобы нельзя было ничего удалять в самом поле ввода, меняя данные даты в поле, лишь менять данные с клавиатуры, используя цифры, включая NumLock.
Например, меняя число дня, не стирать клавишей Del, а вводить поверх тех двух чисел дня, как это происходит в компоненте DatePicker. Либо добавить в DatePicker функцию ввода текста, как это делается в поле ввода Edit - doText.
Фактически все эти заморочки из-за того, что мне нужно, чтобы дата из Базы Данных добавлялась в поле ввода Edit или DatePicker.


[size=-2]------ Добавлено в 16:35
Вот что я сама смогла смастерить, а дальше никак дело не движется:
http://narod.ru/disk/6804169001/EditDate.rar.html
карма: 0

0
Ответов: 8978
Рейтинг: 825
#2: 2011-03-04 18:36:29 ЛС | профиль | цитата
[b]Ntl-M[/b], в Edit точка выделения нужного количества знаков не совсем корректно работает, может обновить надо, вот что получилось без неё:

Add(MainForm,9613144,294,147)
{
Left=20
Top=105
link(onCreate,1344430:doEvent1,[])
}
Add(Edit,10859174,497,161)
{
Left=30
Top=65
Width=75
ReadOnly=0
Point(Position)
Point(onChar)
Point(doPosition)
link(onChar,15877703:doCompare,[])
}
Add(DoData,2539394,364,161)
{
link(onEventData,3897319:doWork2,[])
link(Data,3290653:FormatTime,[])
}
Add(Time,3290653,364,119)
{
Format="D.M.Y"
}
Add(Insert,10268786,490,280)
{
link(onInsert,10870200:doEvent1,[])
link(Str,9649165:Var2,[])
link(SubStr,4162079:Value,[(503,244)(594,244)])
link(Position,10274248:Var2,[])
}
Add(Delete,2344142,574,287)
{
Position=0
Count=1
link(onDelete,4920152:doEvent1,[(634,293)(634,144)(405,144)(405,174)])
link(Position,15159805:Var2,[])
}
Add(GetDataEx,10274248,504,210)
{
link(Data,10859174:Position,[])
}
Add(Math,5282348,581,231)
{
Op2=1
ResultType=0
link(Op1,10274248:Var3,[(587,215)])
}
Add(Hub,10870200,532,280)
{
link(onEvent1,5282348:doOperation,[(564,286)(564,237)])
link(onEvent2,2344142:doDelete,[])
}
Add(Hub,4920152,413,168)
{
link(onEvent1,3897319:doWork3,[(438,174)])
link(onEvent2,860904:doData,[])
}
Add(DoData,860904,441,175)
{
link(onEventData,8619792:doWork2,[])
link(Data,15159805:Var1,[(447,152)(538,152)(538,271)])
}
Add(GetDataEx,15159805,581,266)
{
link(Data,5282348:Result,[])
}
Add(Copy,12628921,343,280)
{
Count=1
link(onCopy,168933:doCompare,[])
link(Str,9649165:Var1,[(349,243)])
link(Position,6195212:Var2,[])
}
Add(GetDataEx,9649165,490,238)
{
link(Data,10859174:Text,[(496,203)(503,203)])
}
Add(If_else,168933,385,280)
{
Type=5
Op2=String(.)
link(onTrue,10268786:doInsert,[])
link(onFalse,16076:doOperation,[])
}
Add(Memory,4162079,588,182)
{
Default=Integer(1)
link(onData,12628921:doCopy,[(626,188)(626,224)(331,224)(331,286)])
}
Add(Edit,4148310,294,91)
{
Left=40
Top=10
}
Add(Math,16076,434,287)
{
Op2=1
ResultType=0
link(onResult,8619792:doWork3,[(480,293)])
link(Op1,6195212:Var3,[(440,264)])
}
Add(GetDataEx,6195212,350,259)
{
link(Data,10274248:Var1,[(356,215)])
}
Add(HubEx,8619792,476,175)
{
link(onEvent,10859174:doPosition,[])
}
Add(DoData,8742394,441,98)
{
Data=Integer(1)
link(onEventData,8619792:doWork1,[(480,104)])
}
Add(Hub,1344430,336,161)
{
link(onEvent1,2539394:doData,[])
link(onEvent2,8742394:doData,[(366,174)(366,104)])
}
Add(HubEx,3897319,434,161)
{
link(onEvent,10859174:doText,[])
}
Add(StrMask,15877703,546,175)
{
Mask="#"
link(onTrue,4162079:doValue,[])
}
------------ Дoбавленo в 18.36:
Забыл удалить лишнее
карма: 19

0
Ответов: 150
Рейтинг: 0
#3: 2011-03-04 19:04:30 ЛС | профиль | цитата
Леонид, спасибо за код, жаль только, что он у меня работает только в новом Hiasm 4, а программка была начата давно еще в старом 3.62 и в новом не открывается из-за того, что он не находит компонент CaseEx, хотя он установлен и отображается там, так что приходится работать её в старом Hiasm с ограниченным количеством компонентов
карма: 0

0
Ответов: 8978
Рейтинг: 825
#4: 2011-03-04 19:59:32 ЛС | профиль | цитата
Ntl-M, перезалил уже
карма: 19

0
Ответов: 356
Рейтинг: 31
#5: 2011-03-04 20:30:00 ЛС | профиль | цитата
Ntl-M писал(а):
нужно, чтобы дата из Базы Данных добавлялась в поле ввода Edit или DatePicker

Дата и время из списков добавляются в поля ввода DatePicker-ов.
code_22798.txt
карма: 0

0
файлы: 1code_22798.txt [1KB] [98]
Ответов: 150
Рейтинг: 0
#6: 2011-03-04 22:04:41 ЛС | профиль | цитата
olDjeka, а у меня при вставке вашего кода в Hiasm конструктор не находит точку входа doSetDate элемента DatePicker
Было бы здорово, если бы текст добавлялся именно в DatePicker. Где можно обновить этот компонент с точкой doSetDate?
карма: 0

0
Ответов: 5446
Рейтинг: 323
#7: 2011-03-04 23:24:36 ЛС | профиль | цитата
Ntl-M, SVN. Или в палитре нажми правой кнопкой, выбери Обновление SVN -> Обновить
карма: 1

0
Ответов: 150
Рейтинг: 0
#8: 2011-03-04 23:48:21 ЛС | профиль | цитата
iarspider, через программу не обновляется Обновила через форум, нашла функцию doSetDate Спасибо всем, кто помог!
карма: 0

0
Ответов: 5446
Рейтинг: 323
#9: 2011-03-05 11:07:00 ЛС | профиль | цитата
Ntl-M, ты программу-то обнови (hiUpdate)
карма: 1

0
Ответов: 8978
Рейтинг: 825
#10: 2011-03-05 11:47:35 ЛС | профиль | цитата
iarspider, [flood]
Ntl-M писал(а):
Обновила

iarspider писал(а):
Ntl-M, ты
[/flood]
карма: 19

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)