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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 10:37   #1
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
Вопрос как пересчитать ячейки стринггрида

как мне пересчитать значения ячеек стринггрида 2 и 3 столбца?
я использовал код но он что то ругаеться
Код:
var a:array[1..stringgrid1.rowcount] of integer;
begin
a:=stringgrid1.cells[1,a];
end;
TotKtoNado вне форума Ответить с цитированием
Старый 17.04.2011, 10:53   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) что значит - "пересчитать" ? И при чём здесь массив A ?

2) такое объявление массива недопустимо.
Delphi допускает объявление либо статических массивов (тогда границы массивов задаются костантами.
либо динамических - тогда границы объявляемого массива совсем отсутствуют в объявлении.
Но указывать переменную в качестве границ массива нельзя.

3) что означает a присвоить элемент грида [1, a ] ?
Это же полный нонсенс!!
про такие "мелочи", что грид состоит из элементов типа string
а массивы - из элементов Integer уже можно просто промолчать..

так что я согласен с Delphi. я бы тоже сильно ругался...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2011, 11:49   #3
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) что значит - "пересчитать" ? И при чём здесь массив A ?

2) такое объявление массива недопустимо.
Delphi допускает объявление либо статических массивов (тогда границы массивов задаются костантами.
либо динамических - тогда границы объявляемого массива совсем отсутствуют в объявлении.
Но указывать переменную в качестве границ массива нельзя.

3) что означает a присвоить элемент грида [1, a ] ?
Это же полный нонсенс!!
про такие "мелочи", что грид состоит из элементов типа string
а массивы - из элементов Integer уже можно просто промолчать..

так что я согласен с Delphi. я бы тоже сильно ругался...
а как динамический массив указать?
TotKtoNado вне форума Ответить с цитированием
Старый 17.04.2011, 11:55   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

если правельно мысль понял, то так
Код:
var 
  a: array of integer;
begin
  SetLength(a,stringgrid1.rowcount);
  a[1]:=StrToInt(stringgrid1.cells[1]);
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.04.2011, 12:42   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ArtGrek, +1

единственное, что если интересует весь второй (судя по индексу, 1- это второй) столбец:
Код:
var 
  a: array of integer;
  i : integer;
begin
  SetLength(a, stringgrid1.rowcount);
  for i:=0 to stringgrid1.rowcount-1 do
      a[i]:=StrToInt(stringgrid1.cells[1, i]);
end;

p.s. А всё таки, TotKtoNado, Вы уверены, что Вам нужно проделывать эту ненужную работу и переносить данные из грида в массив (пусть и динамический)?! Чем Вас собственно сам грид в качестве массива не устраивает?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2011, 13:12   #6
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ArtGrek, +1

единственное, что если интересует весь второй (судя по индексу, 1- это второй) столбец:
Код:
var 
  a: array of integer;
  i : integer;
begin
  SetLength(a, stringgrid1.rowcount);
  for i:=0 to stringgrid1.rowcount-1 do
      a[i]:=StrToInt(stringgrid1.cells[1, i]);
end;

p.s. А всё таки, TotKtoNado, Вы уверены, что Вам нужно проделывать эту ненужную работу и переносить данные из грида в массив (пусть и динамический)?! Чем Вас собственно сам грид в качестве массива не устраивает?!
ща она опять ругаеться http://i031.radikal.ru/1104/81/cbcf939eea31.png
TotKtoNado вне форума Ответить с цитированием
Старый 17.04.2011, 14:26   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А всё таки, TotKtoNado, Вы уверены, что Вам нужно проделывать эту ненужную работу и переносить данные из грида в массив ?!

Цитата:
ща она опять ругаеться
а чего ж ей не ругаться? у Вас первым идёт название столбца.
Его Delphi очень тяжело преобразовать в число!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2011, 14:37   #8
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А всё таки, TotKtoNado, Вы уверены, что Вам нужно проделывать эту ненужную работу и переносить данные из грида в массив ?!


а чего ж ей не ругаться? у Вас первым идёт название столбца.
Его Delphi очень тяжело преобразовать в число!
щас вот только что додумалсякак с помощью цикла пересчитать
var
i,estRas : integer;
begin
estRas:=stringgridrashodi.rowcount;
for i:=1 to estRas do
begin
LabelItogRashod.Caption:=stringgrid Rashodi.cells[estRas-1,1];
end;
end;

и нажимаю на добавить столбцы и текст в лабеле исчезает
что за фигня?

Последний раз редактировалось TotKtoNado; 17.04.2011 в 14:56.
TotKtoNado вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 2010 пересчитать все формы проекта программно. Человек_Борща Общие вопросы Delphi 6 13.04.2011 22:39
Пересчитать автоинкремент в таблице. strannik SQL, базы данных 1 08.05.2010 07:25
Как удалить, определённый элемент из стринггрида? Lenux Помощь студентам 3 14.03.2010 18:57
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39