Форум » GUI » Как на лету поменять размер поля ввода в TEXTBOX » Ответить

Как на лету поменять размер поля ввода в TEXTBOX

Eduard: Как на лету поменять размер поля ввода в TEXTBOX через элемент управления RADIOGROUP? Есть поле TEXTBOX, которое управляется через RADIOGROUP, в котором в зависимости о переключателя надо поменять размер кол-ва вводимых символов Делаю так: добавил две переменных в TEXTBOX для управления размером и маской ввода, сделал функцию которая переключает RADIOGROUP, но при переключении размер поля не меняется, может что-то не так делаю? Вот кусок подпрограммы ... нужна помощь! [more] Procedure BarSki(SelS) Local sd1, sd2 do case case SelS == 1 Barcoder.RadioGroup_2.Visible := .T. Barcoder.RadioGroup_2.Enabled := .F. sd1 := "7" sd2 := "9999999" Barcoder.Text_2.MAXLENGTH.Value := sd1 Barcoder.Text_2.INPUTMASK.Value := sd2 MaxL := sd1 InpM := sd2 case SelS == 2 Barcoder.RadioGroup_2.Visible := .T. Barcoder.RadioGroup_2.Enabled := .T. sd1 := "5" sd2 := "99999" Barcoder.Text_2.MAXLENGTH.Value := sd1 Barcoder.Text_2.INPUTMASK.Value := sd2 MaxL := sd1 InpM := sd2 otherwise Barcoder.RadioGroup_2.Visible := .T. Barcoder.RadioGroup_2.Enabled := .F. endcase cSki := SelS return =========== элемент техтбохкс DEFINE TEXTBOX Text_2 //начальний номер ROW 50 COL 320 WIDTH 98 HEIGHT 22 FONTNAME 'Arial' TOOLTIP '' RIGHTALIGN .F. ON ENTER DoMethod("Barcoder","Button_1","SetFocus") MAXLENGTH MaxL //IIF(Barcoder.RadioGroup_1.Value == 1,"7", "5") INPUTMASK InpM //IIF(Barcoder.RadioGroup_1.Value == 1,"9999999", "9999999") FORMAT '' VALUE NIL END TEXTBOX [/more]

Ответов - 6

Haz: Eduard пишет: MAXLENGTH MaxL //IIF(Barcoder.RadioGroup_1.Value == 1,"7", "5") INPUTMASK InpM //IIF(Barcoder.RadioGroup_1.Value == 1,"9999999", "9999999") В примере свои значения MAXLENGTH и INPUTMASK получают в момент инициализации TEXBOX в зависимости от состояния RadioGroup_1 в этот момент. я не уверен что это возможно т.к. в мануале по TEXTBOX написано InputMask (D) MaxLength (D) и D: Available at control definition only а это должно вообще ошибку вызывать т.к. Value это пропертя самого текстбокса, а не его пропертей maxLength и Inputmask Barcoder.Text_2.MAXLENGTH.Value := sd1 Barcoder.Text_2.INPUTMASK.Value := sd2 Скажу сразу - менять не пробовал, просто заглянул в хелп. Возможно в GetBox сPicture переназначиваемое....прамо не написано, надо пробовать

Haz: Haz пишет: Возможно в GetBox сPicture переназначиваемое Проверил с GetBox - работает , можно менять cPicture примерно так DEFINE RADIOGROUP RadioGroup_1 ... ON CHANGE SetPicture() Func SetPicture() Form_1.GetBox_1.Picture := IF( Form_1.RadioGroup_1.Value == 1, "9999999", "999999999") Return NIL

Eduard: Есть еще один вопрос, у меня в перемененную записывается из поле значение в виде числа "0000001", на выходе необходимо получить число в виде "0000002", после чего это номер записать в поле, как это можно сделать? если ставлю переменная++ то ругается... PText_1 := ALLTRIM(Barcoder.Text_1.Value) //index PText_2 := ALLTRIM(Barcoder.Text_2.Value) //nomer PText_3 := PText_2++ Barcoder.Text_2.Value := PText_3


Haz: Barcoder.Text_2.Value := PADL( CTON(Barcoder.Text_2.Value) + 1 , 7, "0")

Haz: Haz пишет: если ставлю переменная++ то ругается... и правильно ругается т.к. к символьной переменной пытаешься прибавить число

Eduard: Спасибо.



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