Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как из 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
1-1144571193
Undertaker_vav
2006-04-09 12:26
2006.05.21
возведение чисел в большие степени


2-1146503783
Golik
2006-05-01 21:16
2006.05.21
DBLookupComboBox ???


4-1140957510
Topepo
2006-02-26 15:38
2006.05.21
Запуск EXE в контексте моей программы


15-1145989461
Yeg
2006-04-25 22:24
2006.05.21
Международные конкурсы программных средств


2-1146653813
паша32
2006-05-03 14:56
2006.05.21
1) Как из DateTimePicker a "вырезать" номер месяца?