Поиск
Показаны результаты для тегов 'FilterChar'.
Найдено: 2 результата
-
Намучавшись с не работающим FilterChar и кучей способов ввода по маске, сделал свой способ. По моему мнению самый простой. Код позволяет вводить только числа, включая дробные и отрицательные. procedure TFormMain.Edit1ChangeTracking(Sender: TObject); Var FEdit : TEdit; FFloat : Single; begin If Not (Sender is TEdit) Then // Защитимся от не выспавшегося самого себя Exit; FEdit:=(Sender as TEdit); // Для удобства... FEdit.Text:=FEdit.Text.Replace(' ',''); // Убираем случайные пробелы if FEdit.Text.IsEmpty then // Если пусто (ничего не введено или все удалено), ничего не делаем Exit; FEdit.Text:=FEdit.Text.Replace('.',','); // Заменяйм точку запятой if FEdit.Text.Equals(',') then // Если введен разделитель, добавляем перед ним ноль для красоты (не обязательно) begin FEdit.Text:='0,'; FEdit.CaretPosition:=FEdit.CaretPosition+1; // без этого курсор останется между нулём и запятой end; if FEdit.Text.Equals('-') then // Если введен только минус, не пытамся его драконить Exit; if TryStrToFloat(FEdit.Text,FFloat) Then // Пробуем преобразовать в число FEdit.TagString:=FEdit.Text // Если удалось, сохраняем в временном хранилище Else FEdit.Text:=FEdit.TagString; // Если не удалось, восстанавливаем из временного хранилища end; В качестве временного хранилища использовано TagString, дабы не разводить глобальных переменных. Возможно понадобиться очистка временного хранилища при многократном использовании: procedure TFormMain.Edit1Enter(Sender: TObject); begin If Not (Sender is TEdit) Then Exit; (Sender as TEdit).TagString:=''; end; Буду рад услышать замечания и предложения.
-
Согласно http://edn.embarcadero.com/article/44358 проблему http://qc.embarcadero.com/wc/qcmain.aspx?d=122372 пофиксили. Но сейчас проверил - ничего не изменилось. FilterChar как не работал на андроиде, так и не работает. Или я туплю? Delphi XE8 с установленным Update 1? в окне About, раздел Installed Updates вообще должно писать что то? Или эмбаркадеро больше не утруждает себя такими мелочами?