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

Вниз

Расчеты в Grid е   Найти похожие ветки 

 
Nick_serov   (2006-04-05 12:12) [0]

Тут такая проблема:
в последнем столбце 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!


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

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


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


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


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


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


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


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

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


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

try except end


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


> 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:42) [6]


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

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

> application.Terminate;

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


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


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


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

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


 
MsGuns ©   (2006-04-05 13:34) [8]

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

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


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

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

как сделать так, чтобы если в 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:44) [10]

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


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

MsGuns ©   (05.04.06 13:44) [10]

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


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


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


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

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


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


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


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

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


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


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

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


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


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


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


 
MsGuns ©   (2006-04-05 14:04) [16]

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

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


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


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


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


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

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

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


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

to icWasya ©

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



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

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

Наверх




Память: 0.51 MB
Время: 0.036 c
2-1143925921
AlexeyT
2006-04-02 01:12
2006.04.16
Установить шрифт при печати


15-1143400612
alex-drob
2006-03-26 23:16
2006.04.16
Радиоинтернет


2-1143634409
Troan_81
2006-03-29 16:13
2006.04.16
Кончилось затмение и дали свет :)


2-1144134211
вопросник
2006-04-04 11:03
2006.04.16
DrawText


2-1143573708
mr1Andersen
2006-03-28 23:21
2006.04.16
Простой вопрос