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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2008, 06:52   #11
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
if Form1.Label7.caption='' then SG3.cells[2,1]:='0'
else SG3.cells[2,1]:=Form1.Label7.Caption;
Ну а это Вы пробовали?
puporev вне форума Ответить с цитированием
Старый 02.08.2008, 07:22   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Нет еще) В какой из двух кодов и куда мне это надо вставить?)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.08.2008, 07:32   #13
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну естественно при вводе данных в StringGrid, т.е. здесь:
{1}
if Form1.Label7.caption='' then SG3.cells[2,1]:='0'
else SG3.cells[2,1]:=Form1.Label7.Caption;
и так далее по всем ячейкам, раз уж Вы вводите в каждую ячейку отдельно.
{SG3.Cells[4,1]:=Form1.Label121.Caption;
SG3.Cells[5,1]:=Form1.Label92.Caption;
SG3.Cells[6,1]:=Form1.Label147.Caption;}
puporev вне форума Ответить с цитированием
Старый 02.08.2008, 08:34   #14
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Посмотрел внимательнее Ваш код и мне показалось, что Вы решаете очень простую задачу каким-то страшным способом. Напишите Ваше задание, может найдем способ попроще. Количество оценок-целое число и не надо его в Real.
Выражения типа (Round(f511));тоже целые числа.

Кстати в следующий раз, когда будете выкладывать код, обрамляйте его тегами (кнопка # над окном сообщений), иначе трудно читать, да и места много занимает.
puporev вне форума Ответить с цитированием
Старый 02.08.2008, 17:56   #15
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

#Я сделал, чтобы появлялись нули. Все хорошо считает по четвертям, но когда мне надо посчитать итоговую для первого ученика по этому коду:
#
{1}
summ:=(StrToFloat(SG3.cells[2,1])+StrToFloat(SG3.cells[8,1])+StrToFloat(SG3.cells[14,1])+StrToFloat(SG3.cells[20,1]))/4;
SG3.Cells[26,1]:=FloatToStrF(summ,ffGeneral,0,2);

summ1:=(StrToFloat(SG3.cells[3,1])+StrToFloat(SG3.cells[9,1])+StrToFloat(SG3.cells[15,1])+StrToFloat(SG3.cells[21,1]))/4;
SG3.Cells[27,1]:=FloatToStr(Round(summ1));
summ2:=(StrToFloat(SG3.cells[4,1])+StrToFloat(SG3.cells[10,1])+StrToFloat(SG3.cells[16,1])+StrToFloat(SG3.cells[22,1]))/4;
SG3.Cells[28,1]:=FloatToStr(Round(summ2));
summ3:=(StrToFloat(SG3.cells[5,1])+StrToFloat(SG3.cells[11,1])+StrToFloat(SG3.cells[17,1])+StrToFloat(SG3.cells[23,1]))/4;
SG3.Cells[29,1]:=FloatToStr(Round(summ3));
summ100:=(StrToFloat(SG3.cells[6,1])+StrToFloat(SG3.cells[12,1])+StrToFloat(SG3.cells[18,1])+StrToFloat(SG3.cells[24,1]))/4;
SG3.Cells[30,1]:=FloatToStr(Round(summ100));
то если нет для остальных людей данных, то программа выводит сообщение об ошибке такое: "is not valid floating value", но при этом для первого же учащегося итоговые значения считаются, и появляется эта ошибка. Как я понял, то это потому она появляется что для остальных учеников нет данных (или неправильно понял суть ошибки?), а если я вручную заполню для остальных учеников ячейки нулями, то все будет посчитано. Как в выложенном мною выше коде сделать так, чтобы нули тоже появлялись в пустых ячейках как это было сделано для этого кода:
#
if Form1.Label7.caption='' then SG3.cells[2,1]:='0'
else SG3.cells[2,1]:=Form1.Label7.Caption;
Как?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.08.2008, 18:06   #16
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
SG3.Cells[30,1]:=FloatToStr(Round(summ100));
Я Вам писал, что Round(summ100)-число целое, поэтому попробуйте написать SG3.Cells[30,1]:=IntToStr(Round(summ100));
Во всех случаях, где есть Round.
puporev вне форума Ответить с цитированием
Старый 02.08.2008, 19:02   #17
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я пробовал, а программа выводит ошибку о несоответствии типов стринг и интеджер((
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.08.2008, 19:10   #18
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что-то Вы или не то написали, или не там, потому что
SG3.Cells[30,1]:=IntToStr(Round(summ100)); не может выдавать несоответствие типов.
Приведите строки, где выдает ошибку.
puporev вне форума Ответить с цитированием
Старый 02.08.2008, 19:27   #19
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Что-то Вы или не то написали, или не там, потому что
SG3.Cells[30,1]:=IntToStr(Round(summ100)); не может выдавать несоответствие типов.
Пятый критерий он у меня считает. Он не считает итоговый по всему столбцу, т.е. начинаю с [26,1] и до [26,25]. В [26,27] он должен выдать число полученное при использовании кода приведенного выше последнего.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.08.2008, 20:06   #20
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Так напишите как Вы считаете итоговый по столбцу, я этого кода не видел и что у Вас в ячейке [26,26].
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать нули!!!) artemavd Общие вопросы Delphi 13 29.07.2008 09:10
Хвастаюсь игрушкой Кресту-нули Altera Софт 3 12.02.2008 15:06