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

Вниз

Несколько проблемм   Найти похожие ветки 

 
Vik ©   (2012-11-11 21:49) [0]

Приветствую читающих, есть одна задумка, но не могу все реализовать. Нужно сложить числа из двух полей при нажатии кнопки.
 Edit3.Text := Edit1.Text  Edit2.Text;
При таком коде происходит склеивание. Подскажите, как правильно написать. Еще нужно произвести деление, умножение.

Еще один вопрос: что нужно сделать, чтобы написав в текстовое поле число, к этому числу бы приравнивалась переменная?

Заранее спасибо. Извините за возможно тупой вопрос.


 
vik ©   (2012-11-11 21:58) [1]

Edit3.Text := Edit1.Text + Edit2.Text;

Плюс не поставил.


 
Dimka Maslov ©   (2012-11-11 22:00) [2]

StrToFloat а дальше хоть в степень возводи


> чтобы написав в текстовое поле число, к этому числу бы приравнивалась
> переменная


Я всегда объяснял это тем, что шляпа вместе со мной ехала в вагоне, а следовательно, вполне уместно говорить, что "подъезжая к станции с меня слетела шляпа". Здесь не тот случай. Здесь тоже надо пользоваться StrToFloat в правой части оператора присваивания, если абстрагироваться от грамматики.


 
чернорабочий Сколково   (2012-11-11 22:01) [3]

Edit1.Text := "Маша";
Edit2.Text := "Вася";

процедура Склеивание;
начало  
 Edit3.Text := Edit1.Text + Edit2.Text;
конец;

Вывод на экран: Склеились и не разлепиш


 
чернорабочий Сколково   (2012-11-11 22:07) [4]

http://cybern.ru/delphi-dlya-nachinayushhix-urok-6-pishem-svoj-kalkulyator.html


 
Очень злой   (2012-11-11 22:16) [5]


> есть одна задумка


ух ты...

Хм.
> Нужно сложить числа из двух полей при нажатии
> кнопки.
>  Edit3.Text := Edit1.Text  Edit2.Text;
> При таком коде происходит склеивание. Подскажите, как правильно
> написать. Еще нужно произвести деление, умножение.


Edit1.text - имеет тип TCaption
а  TCaption = type string;

а для string  "+" - это конкатенация, а не сложение.
Посему нужно сначала перевести исходные данные в числовой тип (что кстати не всегда возможно), потом сложить, после чего результат преобразовать  обратно в строку...


 
vik ©   (2012-11-11 22:19) [6]


> Посему нужно сначала перевести исходные данные в числовой
> тип

Если бы я знал, как это делается, то не спрашивал бы об этом на форуме.


 
чернорабочий Сколково   (2012-11-11 22:25) [7]

На форуме, да ещё в рубрике, где люди отдыхают, задавать такие вопросы :-)

Google или ещё нечто знают всё - ты бы поискал сначала.


 
Dimka Maslov ©   (2012-11-11 22:33) [8]


> Если бы я знал, как это делается, то не спрашивал бы об
> этом на форуме.


Сказано же было, что для этого надо пользоваться функцией StrToFloat. Если по религиозным причинам она не подходит, тогда Val. Для того, что прочитать по ним справку - надо набрать имя функции в коде и нажать F1. Кстати по ссылке всё это прекрасно расписано.


 
kilkennycat ©   (2012-11-11 23:05) [9]

мне почему-то больше нравится StrToFloatDef.


 
брат Птибурдукова   (2012-11-12 08:44) [10]


> чернорабочий Сколково   (11.11.12 22:07) [4]
делфи для начинающих урок — это сильно.


 
Очень Злой   (2012-11-12 12:51) [11]


> Если бы я знал, как это делается, то не спрашивал бы об
> этом на форуме.


 try
    Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));
 except
    showmessage("Не издевайтесь над машиной, введите числа правильно");
 end
;


 
kilkennycat ©   (2012-11-12 18:12) [12]


> Очень Злой   (12.11.12 12:51) [11]

обработку делиметра отдельно надо.


 
kilkennycat ©   (2012-11-12 18:12) [13]


> Очень Злой   (12.11.12 12:51) [11]

обработку делиметра отдельно надо.


 
Очень Злой   (2012-11-12 19:24) [14]


> 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 не менять....


 
Vik ©   (2012-11-12 22:34) [15]

Спасибо всем.


 
kilkennycat ©   (2012-11-12 22:47) [16]


> Вобще-то делимитер из региональных настроек вроде как берется,

ага. как и мильен вопросов, с ним связанных :)



Страницы: 1 вся ветка

Текущий архив: 2013.06.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.008 c
2-1352845344
123456789igor
2012-11-14 02:22
2013.06.30
подсчет символов в ячейке


15-1361021525
tesseract
2013-02-16 17:32
2013.06.30
Баня МО


3-1289899843
Виталий Панасенко
2010-11-16 12:30
2013.06.30
АДО, обновить одну строку


2-1352656169
Vik
2012-11-11 21:49
2013.06.30
Несколько проблемм


2-1352485025
Новичок
2012-11-09 22:17
2013.06.30
Посоветуйте ехе-пакер