По-моему, установить такие сложные форматы через свойство 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);
|