Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизКак из edit вытащить дробное число ? Найти похожие ветки
← →
@gent © (2006-05-03 18:11) [0]Помогите PLS вытащить из Edit дробное число. До этого можно было с целой частью и пользовался StrToInt, а сейчас чем ?
Заранее спасибо.
← →
Плохиш © (2006-05-03 18:14) [1]StrToFloat
← →
@gent © (2006-05-03 18:25) [2]пробовал. Почему-то не действует.
← →
Плохиш © (2006-05-03 18:31) [3]Значит надо прочитать справку, особенно абзац, в котором упоминается DecimalSeparator
← →
AlexanderMS © (2006-05-04 18:25) [4]Нужно создать обработчик события OnKeyPress у Edit и заменять нажатие "." и "," на DECIMALSEPARATOR. А можно и перед конвертацией заменять эти символы.
← →
Boris Marchenko © (2006-05-04 18:43) [5]угу... типа
var
i: Integer;
j: Double;
begin
for i := 1 to Length(Edit1.Text) do
if (Edit1.Text[i] = ",") or (Edit1.Text[i] = ".") then Edit1.text := DecimalSeparator;
j := StrToFloat(Edit1.Text);
end;
← →
Boris Marchenko © (2006-05-04 18:45) [6]Бррр, точнее
> if (Edit1.Text[i] = ",") or (Edit1.Text[i] = ".") then
> Edit1.Text[i] := DecimalSeparator;
← →
Desdechado © (2006-05-04 18:57) [7]> Boris Marchenko
вообще-то есть ReplaceString
а еще будет фокус при наличии нескольких точек :)
← →
Boris Marchenko © (2006-05-04 19:08) [8]просили из Эдита дробное число заполучить. А несколько точек - эт уже не дробное число, эт IP-адрес ;)
← →
Zeqfreed © (2006-05-04 19:13) [9]
> просили из Эдита дробное число заполучить. А несколько точек
> - эт уже не дробное число, эт IP-адрес ;)
Или очень дробное число…
← →
Anatoly Podgoretsky © (2006-05-04 19:20) [10]Boris Marchenko © (04.05.06 19:08) [8]
Это не ИП адрес, а элипс
← →
Галинка © (2006-05-05 00:02) [11]А ввобще тфкие вещи красивее и безопаснее делать в try ... exception блоке или маскедит использовать. Тогда вопросы типа
> Desdechado © (04.05.06 18:57) [7]
>
> а еще будет фокус при наличии нескольких точек :)
>
будут решаться на стороне юзера. Не умеет работать головой - начнет руками, пока не введет правильное.
← →
unknown © (2006-05-05 02:33) [12]
{ Событие OnKeyPress у Edit1 }
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ Проверяем - праильные ли символы юзер пытается ввести }
if not (Key in ["0".."9",DecimalSeparator]) then
{ Если неправильные - не даем вводить }
Key:=#0;
{ Если вводится повторно разделитель дробной части, }
if (Key=DecimalSeparator)and(AnsiPos(DecimalSeparator,Edit1.Text)>0) then
{ то запрещаем его вводить }
Key:=#0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
D:Double;
begin
{ Проверка ввода (мало ли, вдруг юзер copy/paste сделал?) }
if not TryStrToFloat(Edit1.Text,D) then
MessageBox(0, "Неправильный текст в Edit1.", "Ашипка", MB_ICONERROR or MB_OK)
else
MessageBox(0, PChar(Format("%n",[D])), ":)", MB_ICONASTERISK or MB_OK);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c