Вверх ↑
Этот топик читают: Гость
Ответов: 115
Рейтинг: 1
#1: 2016-01-20 16:16:39 ЛС | профиль | цитата
как ограничить ввод цифр в поле , что бы после запятой было 2 знака

вот использую измененный код delphi от ввода Ip .
code_36832.txt
карма: 0
well done turner
0
файлы: 1code_36832.txt [1.7KB] [346]
Ответов: 8928
Рейтинг: 823
#2: 2016-01-20 16:27:58 ЛС | профиль | цитата
powerbatman, можно и штатными средствами code_36833.txt
карма: 19

0
файлы: 1code_36833.txt [214B] [246]
Ответов: 115
Рейтинг: 1
#3: 2016-01-20 16:35:52 ЛС | профиль | цитата
Леонид писал(а):
powerbatman, можно и штатными средствами code_36833.txt



не работает )
code_36834.txt
карма: 0
well done turner
0
файлы: 1code_36834.txt [255B] [332]
Разработчик
Ответов: 26163
Рейтинг: 2127
#4: 2016-01-20 17:12:12 ЛС | профиль | цитата
Леонид писал(а):
можно и штатными средствами

Попробуй набрать 0.02, к примеру
карма: 22

0
Ответов: 1343
Рейтинг: 31
#5: 2016-01-20 17:14:21 ЛС | профиль | цитата
Леонид писал(а):
можно и штатными средствами code_36833.txt




наверно точку перепутал

code_36835.txt
карма: 2

0
файлы: 1code_36835.txt [253B] [311]
Ответов: 115
Рейтинг: 1
#6: 2016-01-20 17:20:11 ЛС | профиль | цитата
вот так , даже ошибка windows - ntdll выходит

code_36836.txt
карма: 0
well done turner
0
файлы: 1code_36836.txt [368B] [358]
Ответов: 1343
Рейтинг: 31
#7: 2016-01-20 17:28:39 ЛС | профиль | цитата
powerbatman писал(а):
вот так , даже ошибка windows - ntdll выходит


а не надо мучать программу бесконечным циклом,


вот вариант(не имеет округления до целых, а лишь срезает всё что выходит за 2 символа после точки), получше чем штатное ограничение символов и функции ROUN
со штатным ограничением нельзя написать скажем 99.99 там уже 5 символов, а что касается ROUN, то его можно вывести из строя, печатая цифорку вконце.

code_36837.txt
карма: 2

0
файлы: 1code_36837.txt [545B] [363]
Ответов: 8928
Рейтинг: 823
#8: 2016-01-20 18:45:16 ЛС | профиль | цитата
Rysik, во прикопался Пришлось IC делать code_36838.txt (только цифры, точка (или запятая) и отбрасывание (добавление) до указанного количества десятичныз знаков, автор Tad )
карма: 19

1
файлы: 1code_36838.txt [1.1KB] [348]
Голосовали:powerbatman
Ответов: 5227
Рейтинг: 587
#9: 2016-01-20 19:25:25 ЛС | профиль | цитата
Вот смотрю я код Edit и вижу там функцию isFloat с первого взгляда чистый паскаль но такой жёсткий

а вот так допустим нельзя
#pas
function isFloat(const s:string; var dt:TData):boolean;
var //i,j:integer;
float: Double; //Extended;
errorPos: Integer;
begin
Result := false;

Val(s, float, errorPos);
if errorPos > 0 then Exit;
Result := True;
dtReal(dt, float{Str2Double(s)});
end;

ведь в FPC тоже есть функция Val

проверить не могу так как у меня FPC уже давно антивирус удалил
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 16884
Рейтинг: 1239
#10: 2016-01-21 09:35:05 ЛС | профиль | цитата
Леонид, а в ConvertorEx->NumToFstr не пашет ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 115
Рейтинг: 1
#11: 2016-01-21 10:36:29 ЛС | профиль | цитата

все отлично получается , а как можно избавить от ввода точки ?


code_36839.txt
карма: 0
well done turner
0
файлы: 1code_36839.txt [2.3KB] [363]
Ответов: 8928
Рейтинг: 823
#12: 2016-01-21 11:39:04 ЛС | профиль | цитата
Tad, он (ConvertorEx) есть в палитре, но я-то про него и не вспомнил, потому как никогда не пользовал, спрятался, зараза, в "Контейнерах" еле нашёл. Сейчас передвину, чтобы на виду был
карма: 19

0
Ответов: 1343
Рейтинг: 31
#13: 2016-01-21 13:48:09 ЛС | профиль | цитата
Леонид писал(а):
во прикопался Пришлось IC делать


IC немного не доделан, туда можно ввести такое чудо: "..." ".." ".0."

вот ещё вариант, вроде без ввода нескольких точек

Add(Edit,10561734,133,91)
{
Left=20
Top=140
Width=185
Height=65
Font=[Times New Roman,36,0,0,204]
Text=""
DataType=4
link(onChange,12984376:doWork1,[])
}
Add(MultiElement,12984376,182,91)
{
link(onEvent1,10561734:doText2,[(226,97)(226,81)(121,81)(121,104)])
}
BEGIN_SDK
Add(EditMulti,1990697,21,21)
{
EventCount=1
WorkCount=1
Width=363
link(doWork1,3233584:doCompare,[(84,27)(84,55)])
}
Add(MultiStrPart,9800471,266,49)
{
Char="."
link(onSplit,9306785:doCopy,[(310,55)(310,79)(261,79)(261,104)])
}
Add(Copy,9306785,273,98)
{
Position=1
Count=2
link(onCopy,139849:doStrCatDlm,[(317,104)(317,128)(254,128)(254,153)])
link(Str,9800471:Part2,[])
}
Add(StrCatDelim,139849,266,147)
{
Delimiter="."
link(onStrCatDlm,1990697:onEvent1,[(341,153)(341,27)])
link(Str1,9800471:Part1,[])
}
Add(StrMask,3233584,147,49)
{
Mask=".*"
link(onFalse,5028023:doWork2,[])
link(onTrue,2046751:doStrCat,[])
}
Add(StrCat,2046751,196,56)
{
Str1="0"
link(onStrCat,5028023:doWork3,[(242,62)])
}
Add(HubEx,5028023,238,49)
{
link(onEvent,9800471:doSplit,[])
}
END_SDK
карма: 2

0
Ответов: 115
Рейтинг: 1
#14: 2016-01-21 13:59:49 ЛС | профиль | цитата
Rysik писал(а):
IC немного не доделан, туда можно ввести такое чудо: "..." ".." ".0." , а вот в схемку такое не введёшь


куда там ввести ?
карма: 0
well done turner
0
Ответов: 16884
Рейтинг: 1239
#15: 2016-01-21 15:17:26 ЛС | профиль | цитата
powerbatman писал(а):
а как можно избавить от ввода точки
Поставь две Edit. Одну для целой, вторую для дробной частей.
Тогда вместо "точки" придётся нажимать на Tab. Тебе от этого легче станет ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)