Показать сообщение отдельно
Старый 28.03.2003, 11:06   #2  
Grizzly is offline
Grizzly
Участник
 
85 / 10 (1) +
Регистрация: 30.01.2003
Адрес: Омск
По-моему, установить такие сложные форматы через свойство 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);