Форум » [x]Harbour » Ведущие нули в текстовом поле » Ответить

Ведущие нули в текстовом поле

Dr. Oldwarez: Вроде бы уже давно собрана моя программа и работает нормально. Но тут пришло новое указание - в связи с переделкой формата номера счетов хранить так, чтобы их длина была, как минимум, 10 и при вводе автоматически добавлять нули слева до 10 знаков. Так, номер счёта 123456 должен превратиться в 0000123456 (добавить 4 нуля). Счёт 87654321 выглядит, как 0087654321.

Ответов - 5

Dima: и в чем проблема ? PADL(chet,10,"0")

Dima: тему перенес GUI тут не при чем

Dr. Oldwarez: Я знаю про PADL. Но это несколько другое. Нужно, чтобы при вводе было 123456, потом нажимаешь на ENTER - и сохраняется 0000123456. А при редактировании чтобы эти нули не удалялись при случайном нажатии Delete.


Andrey_IV: Например, можно сделать так: Ииспользовать для редактирования такого поля временную переменную Номер счета храним в сивольном поле "NUM_SCHET", "C", 10, 0 При редактировании этого поля делаем так: IF FIELDPOS("NUM_SCHET") != 0 nTemp := VAL(FIELDGET(FIELDPOS("NUM_SCHET"))) // Вводим новый номер или редактирум старый без ведущих нулей. @ 10, 10 SAY "Номер счета: " GET nTemp PICTURE "@B 9999999999" READ REPLACE NUM_SCHET WITH PADL(nTemp, 10, "0") ENDIF

Dr. Oldwarez: Ну, я уже и сам разобрался. Делается это с помощью элемента TEXTBOX библиотеки MiniGUI А именно [pre2] @380,100 TEXTBOX txtAccount; VALUE cAccount INPUTMASK '9999999999'; //Десять цифр ON ENTER IIF(LEN(ALLTRIM(wndEdit.txtAccount.Value))<10,wndEdit.txtAccount.Value:=; PADL(ALLTRIM(wndEdit.txtAccount.Value),10,"0")) //Преобразование после ввода. [/pre2]



полная версия страницы