|
![]() |
#1 |
Участник
|
По-моему, установить такие сложные форматы через свойство format не получится. Потому что в твоем случае нужно разбивать текстовую строку на части (поля) и оперировать уже ими. А для типа Text это сделать невозможно. Если я неправ пусть меня поправят.
Сделать же форматирование через триггер OnFormat не сложно. Например, для твоего телефонного номера это будет так. Объявить переменную целочисленную переменную i. В теле триггера ввести: Text:= <Значение поля>; // Удалить установленные раннее символы форматирования i:= STRLEN(Text); WHILE i > 0 DO BEGIN IF NOT (Text[i] IN ['0','1','2','3','4','5','6','7','8','9']) THEN Text:= DELSTR(Text, i, 1); i:= i-1; END; // Вставка символов форматирования IF STRLEN(Text) > 1 THEN Text:= INSSTR(Text, '-(', 2); IF STRLEN(Text) >= 7 THEN Text:= INSSTR(Text, ')-', 8); IF STRLEN(Text) >= 11 THEN Text:= INSSTR(Text, '-', 12); IF STRLEN(Text) >= 14 THEN Text:= INSSTR(Text, '-', 15); // Удалить ненужны символы в конце строки IF STRLEN(Text) > 17 THEN Text:= COPYSTR(Text, 1, 17); |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|