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

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

Расчеты в Grid'е [D7, XP]


Nick_serov ©   (2006-04-05 12:12:00) 

Тут такая проблема:
в последнем столбце Grid'a цены на товар. Мне нужно изменить эти цены(добавить процент надбавки). Делаю так:

procedure TForm1.Grid1Click(Sender: TObject);
var
d, f, g, h : real;
begin
edit2.Text := grid1.SelectedText;
d := strtofloat(edit2.Text);
end;
end;
end.


А он сразу начинает ругаться мол "is not valid floating point value"

I need help!


Nick_serov   (2006-04-05 14:23:00) [1]

to icWasya ©

Спасибки =) заработало!!!!


icWasya   (2006-04-05 14:18:00) [2]

>if d < 2000 and d > 100 then                     //    <<<тут ошибку находит

if (d < 2000) and (d > 100) then                     //    <<<тут ошибку не находит


Nick_serov   (2006-04-05 14:10:00) [3]


> Да ? А он был, вопрос ? Я вот только увидел крик о помощи.
>  Тонущего в луже.


Если не желаете спускаться с небес, чтобы помочь мне, простому и жалкому смертному, который не достоин ваших наиумнейших изречений, то вас никто и не умоляет, "Уважаемый"......


MsGuns   (2006-04-05 14:04:00) [4]

>Вопрос остается открытым....

Да ? А он был, вопрос ? Я вот только увидел крик о помощи. Тонущего в луже.


Nick_serov   (2006-04-05 14:01:00) [5]


> У меня будет 5 диапазонов, если число входит в 1 диапазон,
>  то оно умножается на 12%, если во второй диапазон, то умножается
> на 10% и так далее. Вопрос в том, как это сделать так, чтобы
> действие выполнялось при 2-х значениях d < 2000  и d > 1000.
> .......
>
> ??????????????


Вопрос остается открытым....


Плохиш   (2006-04-05 13:56:00) [6]


> MsGuns ©   (05.04.06 13:34) [8]
> Все в куче: датасет с полями

Вроде автор про бд ничего не говорил. Телепатор тренеруете?


Nick_serov   (2006-04-05 13:53:00) [7]


> Да.. представляю, сколько опять возникнет вопросов, когда
> диапазон поменяется на 10000-20000 или будет 2 диапазона
> ;)))


У меня будет 5 диапазонов, если число входит в 1 диапазон, то оно умножается на 12%, если во второй диапазон, то умножается на 10% и так далее. Вопрос в том, как это сделать так, чтобы действие выполнялось при 2-х значениях d < 2000  и d > 1000........

??????????????


Nick_serov   (2006-04-05 13:53:00) [8]


> Да.. представляю, сколько опять возникнет вопросов, когда
> диапазон поменяется на 10000-20000 или будет 2 диапазона
> ;)))


У меня будет 5 диапазонов, если число входит в 1 диапазон, то оно умножается на 12%, если во второй диапазон, то умножается на 10% и так далее. Вопрос в том, как это сделать так, чтобы действие выполнялось при 2-х значениях d < 2000  и d > 1000........

??????????????


Игорь Шевченко   (2006-04-05 13:47:00) [9]

MsGuns ©   (05.04.06 13:44) [10]

Важно найти нужный компонент.


MsGuns   (2006-04-05 13:44:00) [10]

Да.. представляю, сколько опять возникнет вопросов, когда диапазон поменяется на 10000-20000 или будет 2 диапазона ;)))


Nick_serov   (2006-04-05 13:39:00) [11]

ха... возникли еще вопросы:

как сделать так, чтобы если в edit число меньше 2000, но больше 1000, то выполняется 1 расчет,  если число больше 2000, но меньше 3500, то выполняется 2 расчет????

как это реализовать????

пробую так:

procedure TForm1.Grid1Click(Sender: TObject);
var
d, h, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 : real;
begin
try
edit2.Text := grid1.SelectedText;
d := strtofloat(edit2.Text);
if d < 2000 and d > 100 then                     //    <<<тут ошибку находит
begin
h := d / 100 * strtofloat(edit5.Text) + d;
edit6.Text := floattostr(h);
except
end;
end;
end;


MsGuns   (2006-04-05 13:34:00) [12]

Все в куче: датасет с полями, грид с ячейками, флоаты со стрингами..

Может, почитать о принципах доступа к БД в Делфи и "не путать дебют с дуплетом" ?


Nick_serov   (2006-04-05 12:52:00) [13]


> > application.Terminate;
>
> Мне понравилось :-))


Да это я так, шоб было че =)))

Запустил не из делфи - вроде получилось... псиба. Будем дальше грабли искать.


Плохиш   (2006-04-05 12:42:00) [14]


> все равно ругается..... пробовал

Запускай программу не из делфи.

> application.Terminate;

Мне понравилось :-))


Nick_serov   (2006-04-05 12:40:00) [15]


> try except end
>


procedure TForm1.Grid1Click(Sender: TObject);
var
d, f, g, h : real;
begin
try
edit2.Text := grid1.SelectedText;
d := strtofloat(edit2.Text);
except
application.Terminate;
end;
end;


все равно ругается..... пробовал


Плохиш   (2006-04-05 12:31:00) [16]

try except end


Nick_serov   (2006-04-05 12:30:00) [17]


> В каком формате ? "адын тугрик" ?
> Приведи конкретное значение ..


формат численный например: 12589
проблема в том, что, когда гружу таблицу, то курсор ставится на первую первый столбец, а там текст, и..... начинает ругаться. Как сделать так, что если в ячейке не число, то он ничего не делает, а если число, то...
edit.text := grid.selectedtext;

?????????????


Сергей М.   (2006-04-05 12:21:00) [18]


> в последнем столбце Grid'a цены на товар


В каком формате ? "адын тугрик" ?
Приведи конкретное значение ..


Foxtrot   (2006-04-05 12:18:00) [19]

Вы запятую и точку не перепутали? попоробуйте целое число.


Наверх

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