![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько проблемм [D7]
Vik © (2012-11-11 21:49:00)Приветствую читающих, есть одна задумка, но не могу все реализовать. Нужно сложить числа из двух полей при нажатии кнопки.
Edit3.Text := Edit1.Text Edit2.Text;
При таком коде происходит склеивание. Подскажите, как правильно написать. Еще нужно произвести деление, умножение.
Еще один вопрос: что нужно сделать, чтобы написав в текстовое поле число, к этому числу бы приравнивалась переменная?
Заранее спасибо. Извините за возможно тупой вопрос.
kilkennycat (2012-11-12 22:47:00) [1]
> Вобще-то делимитер из региональных настроек вроде как берется,
ага. как и мильен вопросов, с ним связанных :)
Vik (2012-11-12 22:34:00) [2]Спасибо всем.
Очень Злой (2012-11-12 19:24:00) [3]
> kilkennycat © (12.11.12 18:12) [12]
>
>
> > Очень Злой (12.11.12 12:51) [11]
>
> обработку делиметра отдельно надо.
Это как? Вобще-то делимитер из региональных настроек вроде как берется, так пусть по своим региональным стандартам и вводит данные...
Ну а если нужно чтобы и точка и запятая воспринимались как делимитер, то ИМХО проще перед тем как делать StrToFLoat сделать что-то типа:
function RSeparator(s:string):string;
begin
Result:=StringReplace(s,'.',DecimalSeparator,rfReplaceAll);
Result:=StringReplace(result,',',DecimalSeparator,rfReplaceAll);
end;
а сам DecimalSeparator не менять....
kilkennycat (2012-11-12 18:12:00) [4]
> Очень Злой (12.11.12 12:51) [11]
обработку делиметра отдельно надо.
kilkennycat (2012-11-12 18:12:00) [5]
> Очень Злой (12.11.12 12:51) [11]
обработку делиметра отдельно надо.
Очень Злой (2012-11-12 12:51:00) [6]
> Если бы я знал, как это делается, то не спрашивал бы об
> этом на форуме.
try;
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));
except
showmessage('Не издевайтесь над машиной, введите числа правильно');
end
брат Птибурдукова (2012-11-12 08:44:00) [7]
> чернорабочий Сколково (11.11.12 22:07) [4]
делфи для начинающих урок — это сильно.
kilkennycat (2012-11-11 23:05:00) [8]мне почему-то больше нравится StrToFloatDef.
Dimka Maslov (2012-11-11 22:33:00) [9]
> Если бы я знал, как это делается, то не спрашивал бы об
> этом на форуме.
Сказано же было, что для этого надо пользоваться функцией StrToFloat. Если по религиозным причинам она не подходит, тогда Val. Для того, что прочитать по ним справку - надо набрать имя функции в коде и нажать F1. Кстати по ссылке всё это прекрасно расписано.
чернорабочий Сколково (2012-11-11 22:25:00) [10]На форуме, да ещё в рубрике, где люди отдыхают, задавать такие вопросы :-)
Google или ещё нечто знают всё - ты бы поискал сначала.
vik (2012-11-11 22:19:00) [11]
> Посему нужно сначала перевести исходные данные в числовой
> тип
Если бы я знал, как это делается, то не спрашивал бы об этом на форуме.
Очень злой (2012-11-11 22:16:00) [12]
> есть одна задумка
ух ты...
Хм.
> Нужно сложить числа из двух полей при нажатии
> кнопки.
> Edit3.Text := Edit1.Text Edit2.Text;
> При таком коде происходит склеивание. Подскажите, как правильно
> написать. Еще нужно произвести деление, умножение.
Edit1.text - имеет тип TCaption
а TCaption = type string;
а для string "+" - это конкатенация, а не сложение.
Посему нужно сначала перевести исходные данные в числовой тип (что кстати не всегда возможно), потом сложить, после чего результат преобразовать обратно в строку...
чернорабочий Сколково (2012-11-11 22:07:00) [13]http://cybern.ru/delphi-dlya-nachinayushhix-urok-6-pishem-svoj-kalkulyator.html
чернорабочий Сколково (2012-11-11 22:01:00) [14]Edit1.Text := 'Маша';
Edit2.Text := 'Вася';
процедура Склеивание;
начало
Edit3.Text := Edit1.Text + Edit2.Text;
конец;
Вывод на экран: Склеились и не разлепиш
Dimka Maslov (2012-11-11 22:00:00) [15]StrToFloat а дальше хоть в степень возводи
> чтобы написав в текстовое поле число, к этому числу бы приравнивалась
> переменная
Я всегда объяснял это тем, что шляпа вместе со мной ехала в вагоне, а следовательно, вполне уместно говорить, что "подъезжая к станции с меня слетела шляпа". Здесь не тот случай. Здесь тоже надо пользоваться StrToFloat в правой части оператора присваивания, если абстрагироваться от грамматики.
vik (2012-11-11 21:58:00) [16]Edit3.Text := Edit1.Text + Edit2.Text;
Плюс не поставил.