Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Edit Mask для строкового поля  [new]
sunches
Member

Откуда:
Сообщений: 196
Люди, подскажите, как более оригинально решить проблему
пропуска позиции при редактировании строкового поля со
значением времени, например 12:30 . т.е редактируем две позиции, затем
курсор должен перескочить на четвертую.
12 мар 04, 17:48    [576122]     Ответить | Цитировать Сообщить модератору
 Re: Edit Mask для строкового поля  [new]
Сотников
Member

Откуда: Санкт-Петербург
Сообщений: 188
PB9 у меня это визуальный компонент:


forward
global type n_editmask from editmask
end type
end forward

global type n_editmask from editmask
integer width = 352
integer height = 84
integer textsize = -10
integer weight = 400
fontcharset fontcharset = russiancharset!
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial CYR"
long textcolor = 33554432
alignment alignment = center!
maskdatatype maskdatatype = stringmask!
end type
global n_editmask n_editmask

forward prototypes
public subroutine u_convert_type_string ()
public subroutine u_convert_type_datetime ()
end prototypes

public subroutine u_convert_type_string ();string temp_value

temp_value = this.text
IF temp_value = "00.00.0000" or String(Date(temp_value), "DD.MM.YYYY") = "01.01.1900" THEN
temp_value = ""
END IF

this.SetMask(StringMask!,"")
this.text = temp_value

end subroutine

public subroutine u_convert_type_datetime ();string temp_value

temp_value = this.text
IF temp_value = "00.00.0000" THEN
temp_value = ""
END IF
this.SetMask(DateTimeMask!,"dd.mm.yyyy")
this.text = temp_value

end subroutine

event losefocus;this.u_convert_type_string()

end event

on n_editmask.create
end on

on n_editmask.destroy
end on

event getfocus;this.u_convert_type_datetime()
this.SelectText(1, Len(this.Text))

end event
15 мар 04, 10:22    [577525]     Ответить | Цитировать Сообщить модератору
 Re: Edit Mask для строкового поля  [new]
Centner
Member

Откуда: Где-то рядом с Ё-бургом
Сообщений: 45
А Mask типа ##:## не работает?
15 мар 04, 11:42    [577743]     Ответить | Цитировать Сообщить модератору
 Re: Edit Mask для строкового поля  [new]
Сотников
Member

Откуда: Санкт-Петербург
Сообщений: 188
В этом случае появляется возможность ввода некорректного времени!
15 мар 04, 12:49    [577939]     Ответить | Цитировать Сообщить модератору
 Re: Edit Mask для строкового поля  [new]
Centner
Member

Откуда: Где-то рядом с Ё-бургом
Сообщений: 45
автор
В этом случае появляется возможность ввода некорректного времени!


1. dw - проперти на поле - Validation - Validation Expression "bla-bla-bla..."
2. dw_1.event itemchanged - скрипт "bla-bla-bla..."
3. ....
....

ЗЫ. Против компонентов ничего не имею, тоже один из вариантов - только поглобальнее.
15 мар 04, 15:32    [578386]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить