Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Несколько проблемм [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;

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо