Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
Внизработа с TEdit, формат числа 1.11 Найти похожие ветки
← →
Konus (2007-05-07 11:59) [0]нужно поле (edit) для ввода дробного числа с двумя цифрами после запятой/точки, например: 14.32, 124.63...
как задать подобную маску и ограничить ввод букв?
← →
Desdechado © (2007-05-07 12:02) [1]MaskEdit
?
← →
Konus (2007-05-07 12:37) [2]задал маску такого типа:
"!99999.99;1; "
во-первых, не известно, какое число какой длинны будет целой частью, т.е. если 1.83, то в маскедит нужно будет ставить курсор перед точкой, что не удобно
во-вторых, если не заполнена правая часть после запятой, придется каким-то образом обрабатывать вручную и добавлять 00, т.к. сохранять надо именно в таком формате
какие есть варианты?
← →
Konus (2007-05-07 13:48) [3]подскажите, пожалуйста
← →
SergeyIT © (2007-05-07 21:44) [4]В эдите на OnChange вызываю
EditCheckValue(Self, _FloatChars);
Можно дополнить знаком (-/+), проверкой на количество (./,), сделать подмену (.)<->(,) и тд и тп.
type
TLetters = #32..#255;
TLetSet = set of TLetters;
var
_FloatChars: TLetSet = ["0","1","2","3","4","5","6","7","8","9",
".", ","];
...........................................
function CheckString(var str: String; const let: TLetSet): Boolean;
var
s: String;
n, i: Integer;
begin
Result := TRUE;
s := "";
n := Length(str);
if n < 1 then exit;
Result := FALSE;
for i := 1 to n do
begin
if str[i] in let then s := s + str[i];
end;
if Length(s) = n then Result := TRUE else str := s;
end;
procedure EditCheckValue(Edit: TEdit; Let: TLetSet);
var
i, n: Integer;
s: String;
begin
if NOT Edit.Focused then exit;
i := Edit.SelStart;
n := Length(Edit.Text);
s := Edit.Text;
if NOT CheckString(s, Let) then
begin
Edit.Text := s;
i := i - (n - Length(s));
if (i >= 0) AND (i <= Length(s)) then
Edit.SelStart := i
else Edit.SelStart := 0;
if Edit.Focused then MessageBeep($FFFFFFFF);
end;
end;
← →
Anatoly Podgoretsky © (2007-05-07 22:20) [5]> Konus (07.05.2007 12:37:02) [2]
Так у тебя строки, зачем же тогда числами называешь
← →
Konus (2007-05-08 06:51) [6]спасибо, работает отлично :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c