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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 16:22   #1
mozg2011
Пользователь
 
Аватар для mozg2011
 
Регистрация: 05.02.2012
Сообщений: 55
Вопрос надо сложить две матрицы и вывести в третий StringGird

вот код, не могу понять где ошибка...не хочет выводить результат в третий StringGird...
помогите пжл!!
вот код кнопки которая выводит результат:

procedure TForm3.Button2Click(Sender: TObject);
var i,j: integer;
a,b: integer;
begin
for i := 0 to SG1.ColCount do
for j := 0 to SG1.RowCount do
begin
a:= StrToInt(SG1.Cells[i,j]);
b:= StrToInt(SG2.Cells[i,j]);
SG3.Cells[i,j]:= IntToStr(a + b);
end;
SG3.Visible:=True;
end;
mozg2011 вне форума
Старый 16.02.2012, 17:19   #2
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Циклы следует так запускать (надеюсь понятно что счет от нуля поэтому циклы до количества минус один)
Код:
.................
for i := 0 to SG1.ColCount-1 do
for j := 0 to SG1.RowCount-1 do
................
TorrentTor вне форума
Старый 16.02.2012, 17:20   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

вероятнее всего из-за того что в гриде строк допустим 5... а индекс последний строки или столбца 4
тобишь в цикле добавь
Код:
for i := 0 to SG1.ColCount -1 do
for j := 0 to SG1.RowCount -1 do
должно в принципе помочь...
пишу код не только за печеньки
VIK_aka_TOR вне форума
Старый 16.02.2012, 17:29   #4
mozg2011
Пользователь
 
Аватар для mozg2011
 
Регистрация: 05.02.2012
Сообщений: 55
По умолчанию

да, помогло, спасибо огромное!
mozg2011 вне форума
Старый 16.02.2012, 17:48   #5
mozg2011
Пользователь
 
Аватар для mozg2011
 
Регистрация: 05.02.2012
Сообщений: 55
По умолчанию

а еще такой вопрос, как вот эту процедуру сложения, засунуть в функцию??
mozg2011 вне форума
Старый 16.02.2012, 17:58   #6
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Эм несколько не понял вопроса, какую процедуру, в какую функцию О_о
TorrentTor вне форума
Старый 16.02.2012, 18:13   #7
mozg2011
Пользователь
 
Аватар для mozg2011
 
Регистрация: 05.02.2012
Сообщений: 55
По умолчанию

тот код, который я кинул, он складывает матрицы! но у меня эта кнопка Button2 должна выполнять разные операции, в зависимости от выбора операции перед этим( у меня радио кнопки стоят) вот и поэтому я думаю удобно будет сделать функцию для операции и в код кнопки просто написать иф с условием радиокнопки и функцией
mozg2011 вне форума
Старый 16.02.2012, 18:22   #8
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Можно в главном разделе Type (где описывается форма ) создать процедуру (функцию я считаю не уместно использовать) пусть будет Summa и по нажитии Ctrl+Shift+C создаст заготовку под процедурку туда и вписать код;

Примерно это будет смотреться так:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    SG1: TStringGrid;
    SG3: TStringGrid;
    SG2: TStringGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Summa;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if RadioButton1.Checked then Summa;
end;

procedure TForm1.Summa;
var i,j: integer;
a,b: integer;
begin
for i := 0 to SG1.ColCount-1 do
for j := 0 to SG1.RowCount-1 do
begin
a:= StrToInt(SG1.Cells[i,j]);
b:= StrToInt(SG2.Cells[i,j]);
SG3.Cells[i,j]:= IntToStr(a + b);
end;
SG3.Visible:=True;
end;

Последний раз редактировалось TorrentTor; 16.02.2012 в 18:24.
TorrentTor вне форума
Старый 16.02.2012, 18:33   #9
mozg2011
Пользователь
 
Аватар для mozg2011
 
Регистрация: 05.02.2012
Сообщений: 55
По умолчанию

все понятно...так даже наверно лучше! спасибо большое!
mozg2011 вне форума
Старый 16.02.2012, 18:34   #10
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Не за что, удачи...
TorrentTor вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Php как сложить две строки Кольша PHP 1 16.01.2012 19:38
Надо сделать две лабы в делфи 7 Wolf1992 Помощь студентам 4 22.12.2011 20:38
Как сложить разреженных матрицы SZ13 Помощь студентам 0 02.06.2011 23:02
Надо сложить первый символ со вторым в edit CyberDemon324 Общие вопросы Delphi 11 21.10.2009 13:23
Сложить два числа и вывести результат на экран We1c0m3 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.05.2009 11:41