Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2010, 11:16   #1
MAZADA
Форумчанин
 
Регистрация: 11.09.2010
Сообщений: 103
По умолчанию Работа с else

if (StrToFloatDef(Edit12.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text))
else
if (StrToFloatDef(Edit13.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text))
else
if (StrToFloatDef(Edit6.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit3.Text))
else
if (StrToFloatDef(Edit8.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit3.Text));

Почему не работает?

Первое это "if (StrToFloatDef(Edit12.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text))
else
if (StrToFloatDef(Edit13.Text,0)>0)
then Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text))" работает а далее не работает!
MAZADA вне форума Ответить с цитированием
Старый 18.10.2010, 11:56   #2
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Что значит не работает? Тут по твоему телепаты сидят? Напиши какие входные данные? Что получается? и Что должно получится.

И вот так мне кажется проще
Код:
if (StrToFloatDef(Edit12.Text,0)>0) or (StrToFloatDef(Edit13.Text,0)>0) then
begin
   Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text));
end else
begin
  if (StrToFloatDef(Edit6.Text,0)>0) or (StrToFloatDef(Edit8.Text,0)>0) then
  begin 
    Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit3.Text));
  end;
end;
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 18.10.2010, 12:01   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Что означает, работает и не работает?
Пройдитесь трассировкой, посмотрите значения в эдитах.
И назовите эдиты более информативно, иначе очень трудно будет понять от куда куда. Может Вы перепутали какой-то из них?
psycho-coder вне форума Ответить с цитированием
Старый 18.10.2010, 12:34   #4
MAZADA
Форумчанин
 
Регистрация: 11.09.2010
Сообщений: 103
По умолчанию

Edit46 у меня загальна сума.
Edit49 - сколько осталось.
Если Edit12 Edit13 больше нуля, значет товар продался, тогда от Edit46 отнять Edit1, Tdit1 это цена товара.

if (StrToFloatDef(Edit12.Text,0)>0) or (StrToFloatDef(Edit13.Text,0)>0) then
begin
Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text));
end else

Всьо оно отняло! Я знаю сколько осталось.
Но при продаже 2-го товару "Edit6 Edit8>0" оно уже не отнемает от Edit46. И в Edit49 оставляется прежнее число!
MAZADA вне форума Ответить с цитированием
Старый 18.10.2010, 12:46   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
MAZADA
Нужно весь проект смотреть и отлаживать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2010, 13:35   #6
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Цитата:
Сообщение от MAZADA Посмотреть сообщение
Edit46 у меня загальна сума.
Edit49 - сколько осталось.
Если Edit12 Edit13 больше нуля, значет товар продался, тогда от Edit46 отнять Edit1, Tdit1 это цена товара.

if (StrToFloatDef(Edit12.Text,0)>0) or (StrToFloatDef(Edit13.Text,0)>0) then
begin
Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text));
end else

Всьо оно отняло! Я знаю сколько осталось.
Но при продаже 2-го товару "Edit6 Edit8>0" оно уже не отнемает от Edit46. И в Edit49 оставляется прежнее число!
Код:
if (StrToFloatDef(Edit12.Text,0)>0) or (StrToFloatDef(Edit13.Text,0)>0) then
begin
   Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit1.Text));
end;
if (StrToFloatDef(Edit6.Text,0)>0) or (StrToFloatDef(Edit8.Text,0)>0) then
begin 
  Edit49.Text:= FloatToStr(StrToFloat(Edit46.Text)- StrToFloat(Edit3.Text));
end;
У тебя какая-то путаница в голове! Если тебе надо чтобы из Edit46 отнималось [Edit1 при StrToFloatDef(Edit12.Text,0)>0 и StrToFloatDef(Edit13.Text,0)>0] и [Edit3 при StrToFloatDef(Edit6.Text,0)>0 и StrToFloatDef(Edit8.Text,0)>0], то никакие else не нужны! Иначе все правильно! Объясни толком что тебе надо! Пройдись в режиме отладки по коду и попытайся понять что у тебя происходит и что тебе надо поменять!
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 20.10.2010, 00:51   #7
MAZADA
Форумчанин
 
Регистрация: 11.09.2010
Сообщений: 103
По умолчанию

Я ребята понял почему не работало!
Надо было так
begin

if (StrToFloatDef(Form1.Edit12.Text,0) >0) or (StrToFloatDef(Form1.Edit13.Text,0) >0) then
begin
Edit4.Text:= FloatToStr(StrToFloat(Form2.Edit1.T ext)-((StrToFloat(Form1.Edit1.Text)+StrT oFloat(Form1.Edit3.Text))));
end else
begin
if (StrToFloatDef(Form1.Edit6.Text,0)> 0) or (StrToFloatDef(Form1.Edit8.Text,0)> 0) then
begin
Edit4.Text:= FloatToStr(StrToFloat(Form2.Edit1.T ext)-((StrToFloat(Form1.Edit1.Text)+StrT oFloat(Form1.Edit3.Text))));
end;

end;
end;

Последний раз редактировалось MAZADA; 20.10.2010 в 00:52. Причина: Едиты помелялись но смисл ясен
MAZADA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00