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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2014, 15:42   #1
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию Работа с элементами из StringGrid (Delphi)

Мне необходимо из StringGrid (заполненная таблица, состоит из 2 столбцов - x,y, строк - 10) взять элемент [2,3] и умножить на элемент [3,4]. Ответ(число) вывести в Edit1. Как правильно это записать? Помогите пожалуйста.
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 16:12   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
Edit1.Text:=IntToStr(StrToInt(StringGrid1.Cells[2,3])*StrToInt(StringGrid1.Cells[3,4]));
Выйдет с ошибкой, т.к. число столбцов меньше, чем [2,3] и [3,4]. Необходимо увеличить кол-во столбцов
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 17:03   #3
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

А в var что надо записывать?
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 17:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В var в случае приведенного примера ничего.
Единственное что я бы писал так:
Код:
with StringGrid1 do Edit1.Text:=FloatToStr(StrToFloat(Cells[1,2])*StrToFloat(Cells[2,3]));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 17:16   #5
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Что-то не работает. Данные в StringGrid у меня записываются так (это координаты щелчков мыши):

Код:
procedure TForm2.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
with StringGrid1 do
begin
RowCount:= RowCount+1;
Cells[0,0]:='X';
Cells[1,0]:='Y';
Cells[0,RowCount-1]:=IntToStr(X);
Cells[1,RowCount-1]:=IntToStr(Y);
end;
end;
Когда нажимаю на кнопку, выскакивает ошибка. Что мне делать подскажите???
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 17:20   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

С использованием var можно переписать код в таком виде (для удобства чтения):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:real;
begin
   x:=StrToFloat(StringGrid1.Cells[2,3]);
   y:=StrToFloat(StringGrid1.Cells[3,4]);
   Edit1.Text:=FloatToStr(x*y);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 17:21   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Да, действительно, если столбов в StringGrid всего 2, и они нумеруются с 0-го, то откуда элементы [2,3] и [3,4] ?

PS По посту #5 - пишите, какая ошибка. Что пишет ?

Последний раз редактировалось type_Oleg; 19.11.2014 в 17:24.
type_Oleg вне форума Ответить с цитированием
Старый 19.11.2014, 17:23   #8
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Аника Янковская Посмотреть сообщение
Что-то не работает. Данные в StringGrid у меня записываются так (это координаты щелчков мыши):

Код:
procedure TForm2.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
with StringGrid1 do
begin
RowCount:= RowCount+1;
Cells[0,0]:='X';
Cells[1,0]:='Y';
Cells[0,RowCount-1]:=IntToStr(X);
Cells[1,RowCount-1]:=IntToStr(Y);
end;
end;
Когда нажимаю на кнопку, выскакивает ошибка. Что мне делать подскажите???
Вообще не работает?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 17:25   #9
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Ошибка выскакивает
Изображения
Тип файла: jpg Безымянный.jpg (11.1 Кб, 115 просмотров)
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 17:27   #10
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

В каком месте программного кода?

В StringGrid должны заполнены ВСЕ 2 столбца. Видимо, в одном из них и попалось пустое значение
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 19.11.2014 в 17:31.
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с элементами массива aenk Помощь студентам 0 05.12.2011 12:48
[C#] Работа с элементами массивов Doublefaced Помощь студентам 1 18.06.2009 15:34
Работа с матрицами (StringGrid, Delphi) Ратмир Помощь студентам 2 04.04.2009 13:41
Работа с однотипными элементами Bonifacyi Общие вопросы Delphi 3 26.01.2009 00:22
Delphi:Работа с Listbox и StringGrid Shaitan Помощь студентам 2 11.11.2008 21:04