Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
ВнизПомогите не поиму почему у меня из-за if не работает код Найти похожие ветки
← →
Till (2003-04-25 13:17) [0]Здраствуйте помогите поалуйста!
Я дописал свою программу она у меня по введенным данным создает табличк ув СтрингГриде с данными теперь мне надо ее улучшить т.е. проверить.
Условие:
Если данные из второй колонки последнеий строки минус данные из третей колонки последней строки меньше нуля то во вторую колонку последнию строку запихзнуть то то иначе другое
procedure TMainForm.BitBtn1Click(Sender: TObject);
var
m, s, p, m_schet, ost, nach, proc, p1, ls, ls1 : real;
sr, i, j, t, m_back : integer;
t_1, s_d, s_p, LastString, LastString_2 : String;
begin
try
i := 0;
j := 0;
t := 0;
s := summa.value; //Сумма кредита
m := summa_e.value; //Сумма ежемесячного погашения
p := procent.value; //Процентная ставка
sr := srok.Value; //Срок кредита в месяцах
StringGrid.RowCount := sr; // Количество строк с СтрингГриде равняеться количеству месяцев
StringGrid.Cells[1,0] := "Сумма основ. долга";
StringGrid.Cells[2,0] := "Пог-е в месяц";
StringGrid.Cells[3,0] := "Остаток долга";
StringGrid.Cells[4,0] := "% ставка";
StringGrid.Cells[5,0] := "Начисленные %";
for i := 1 to sr do
begin
StringGrid.Cells[1,1] := FloatToStr(s); //Присваеваем ежемесячную сумму погашения ячейкам
for t := 2 to sr do
begin
m_back := t-1; // Значение т - одна ячейка в стринг грид
t_1 := StringGrid.Cells[1,m_back]; // Присваемваем переменно значение, (содержание прошлой ячейки)
m_schet := StrToFloat(t_1) - m; // Считаем сколько нужно выплатитт в месяце
StringGrid.Cells[1,t] := FloatToStr(m_schet); //Присваем текущей ячейке значение :)
end;
StringGrid.Cells[4,i] := FloatToStr(p) + " %";
StringGrid.Cells[0,i] := FloatToStr(i) + " месяц";
StringGrid.Cells[2,i] := FloatToStr(m); //Сумма ежемесячного погашения
s_d := StringGrid.Cells[1,i]; // Сумма основного долга, берем из СтрингГрида
s_p := StringGrid.Cells[2,i]; // Сумма сколько погасили
ost := StrToFloat(s_d) - StrToFloat(s_p); // Арифметика
StringGrid.Cells[3,i] := FloatToStr(ost); // Остаток долга
LastString := StringGrid.Cells[1, StringGrid.RowCount - 1];
LastString_2 := StringGrid.Cells[2, StringGrid.RowCount - 1];
ls := StrToFloat(LastString);
ls1 := StrToFloat(LastString_2);
{
if (ls-ls1) < 0 then
//Считаем какую сумму нужно тогда ставить
else
//Иначе ставим ту которая была }
p1 := (ost / 100)*p;
proc := (ost * p1)/12;
StringGrid.Cells[5,i] := FloatToStr(proc);
end;
except //Если ошибка выводим сообщения :))
ShowMessage("Программа не может обработать данные которые Вы ввели! Проверьте все введенные Вами данные, если все правильно но программа не работает сяжитесь с разработчиком данного программного обеспечения!");
end;
end;
Без этого{
if (ls-ls1) < 0 then
//Считаем какую сумму нужно тогда ставить
else
//Иначе ставим ту которая была }
что у меня в коде закомментированно все работает! Но без этой проверки а вот када оразкомментирую его не работае программа запускаеться но когда жмешь на кнопке она вылетает :(( На Applicatiion Run на последнем end;
Вот..... ставил точки отладки не смог разобраться помогите пожалуйста МАСТЕРА!
Заранее всем благодарен!
← →
Palladin (2003-04-25 13:25) [1]добавь после else символ ";"
и разкоментируй
← →
Till (2003-04-25 13:57) [2]Все равно вылетает :((((
вот тута
begin
Application.Initialize;
Application.Title := "Расчет суммы ежемесячного погашения по кредиту";
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
На последний ЭНД ставит синюю строчку :(((
← →
Palladin (2003-04-25 14:08) [3]у тебя вместо
//Иначе ставим ту которая была
код или просто эта строка?
← →
KSergey (2003-04-25 14:29) [4]Присоединяясь к Palladin © (25.04.03 14:08): приведите полный код! Или то, что приведено выше - и есть полный код?
А вообще - встать на первую строку метода BitBtn1Click (поставить точку останова) - и посмотреть в отладчике по шагам - где происходит вылет.
← →
Till (2003-04-25 14:59) [5]Это весь код, я тама хотел сделать если например меньше ноля то ячейка такая то содержит то то , вот решил простодаже на if сделаеть все равно слетает :(( Это полный код длЯ кнопки.
← →
KSergey (2003-04-25 15:42) [6]Все же надо в отладчике глядеть: попадаем ли вообще в этот код, если попадаем - где происходит исключение. Гадать тут можно много.
И еще. А если запустить эту приблуду все IDE - возникает сообщение ""Программа не..." или нет?
Если возникает - тогда вообще все нормально, т.е. ошибка как надо отловилась, а дальше - как и написано к раработчику ;)
А вот если не возникает, но в отладчике проверено, что в этот код вообще-то попадаем - тогда это что-то и вовсе странное... А вот если не возникает это сообщени (все IDE)и в отладчике на этот код (его начало) вообще не попадаем - ну тогда и грабли не здесь надо искать.
← →
KSergey (2003-04-25 15:43) [7](под сообщением я понимал сообщение, выводящееся в программе по ShowMessage при "обработке" исключения)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c