Dynamiczne dodawanie macierzy w C++ Builder 6.0.

0

Dynamiczne dodawanie macierzy w C++ Builder 6.0.
Czyli MACIERZ NR1 + MACIERZ NR2 = MACIERZ NR3 WYNIKOWA.
Macierze Nr1 i 2 są przydzielone dynamicznie.
Po naciśnięciu przycisku = (czyli Button1Click) macierze mają się sumować.
Ale coś nie działa. Jakaś konwersja czy jeszcze coś innego?

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//MACIERZ NR1
for(int i=0;i<16;i++)
{
edity_macierzy1[i]=new TEdit(this);
edity_macierzy1[i]->Parent=this;
edity_macierzy1[i]->Width=30;
edity_macierzy1[i]->Height=30;
edity_macierzy1[i]->Left=30+i%430;
edity_macierzy1[i]->Top=30+i/4
30;
edity_macierzy1[i]->Text =IntToStr(0);
edity_macierzy1[i]->OnClick = Button1Click;

}
//MACIERZ NR2
for(int j=0;j<16;j++)
{
edity_macierzy2[j]=new TEdit(this);
edity_macierzy2[j]->Parent=this;
edity_macierzy2[j]->Width=30;
edity_macierzy2[j]->Height=30;
edity_macierzy2[j]->Left=200+j%430;
edity_macierzy2[j]->Top=30+j/4
30;
edity_macierzy2[j]->Text =IntToStr(0);
edity_macierzy2[j]->OnClick = Button1Click;

}

//MACIERZ NR3 WYNIKOWA
for(int k=0 ; k<16 ; k++)
{
panele_macierzy3[k]=new TPanel(this);
panele_macierzy3[k]->Parent=this;
panele_macierzy3[k]->Width=30;
panele_macierzy3[k]->Height=30;
panele_macierzy3[k]->Left=400+k%430;
panele_macierzy3[k]->Top=30+k/4
30;
}

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject Sender)
{
for(int k=0 ; k<16 ; k++)
{
int a = StrToInt(dynamic_cast<TEdit
>(Sender)->Text);
int b = StrToInt(dynamic_cast<TEdit*>(Sender)->Text);
dynamic_cast<TPanel*>(Sender)->Caption = a+b;
}
}
//---------------------------------------------------------------------------

0

Czy nikt nie wie jak to zrobić?

Pozdrowienia

0

Pomyśl jeszcze raz co chcesz zrobić... a co naprawdę robi ten kod w Button1Click, szczególnie jaka kontrolka jest Senderem, i co tak naprawdę dodajesz? Po co w editach Button1Click, gdzie w ogóle pobierasz 4x4 wartości Z KONTROLEK ???

0

Zrobiłem w końcu:

/---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include<fstream.h>
#include "DodawanieMacierzy.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//MACIERZ NR1
for(int i=0;i<16;i++)
{
edity_macierzy1[i]=new TEdit(this);
edity_macierzy1[i]->Parent=this;
edity_macierzy1[i]->Width=30;
edity_macierzy1[i]->Height=30;
edity_macierzy1[i]->Left=10+i%430;
edity_macierzy1[i]->Top=15+i/4
30;
edity_macierzy1[i]->Text =IntToStr(0);
edity_macierzy1[i]->OnClick = Button1Click;

}
//MACIERZ NR2
for(int j=0;j<16;j++)
{
edity_macierzy2[j]=new TEdit(this);
edity_macierzy2[j]->Parent=this;
edity_macierzy2[j]->Width=30;
edity_macierzy2[j]->Height=30;
edity_macierzy2[j]->Left=185+j%430;
edity_macierzy2[j]->Top=15+j/4
30;
edity_macierzy2[j]->Text =IntToStr(0);
edity_macierzy2[j]->OnClick = Button1Click;

}

//MACIERZ NR3 WYNIKOWA
for(int k=0 ; k<16 ; k++)
{
panele_macierzy3[k]=new TPanel(this);
panele_macierzy3[k]->Parent=this;
panele_macierzy3[k]->Width=28;
panele_macierzy3[k]->Height=28;
panele_macierzy3[k]->Left=400+k%430;
panele_macierzy3[k]->Top=15+k/4
30;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=0;i<16;i++)
{
panele_macierzy3[i]->Caption=StrToInt(edity_macierzy1[i]->Text) + StrToInt(edity_macierzy2[i]->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Zapisz1Click(TObject *Sender)
{
ofstream macierz1("macierz1.txt");
for(int i=0;i<16;i++)
{
macierz1<<" "<<StrToInt(edity_macierzy1[i]->Text);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Zapisz2Click(TObject *Sender)
{
ofstream macierz2("macierz2.txt");
for(int i=0;i<16;i++)
{
macierz2<<" "<< StrToInt(edity_macierzy2[i]->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Wczytaj1Click(TObject *Sender)
{
int dana;
ifstream plik("macierz1.txt");
plik>>dana;
while(plik)
{
for(int i=0;i<16;i++)
{
edity_macierzy1[i]->Text=dana;
plik>>dana;
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Wczytaj2Click(TObject *Sender)
{
int dana;
ifstream plik("macierz2.txt");
plik>>dana;
while(plik)
{
for(int i=0;i<16;i++)
{
edity_macierzy2[i]->Text=dana;
plik>>dana;
}
}
}
//---------------------------------------------------------------------------

1 użytkowników online, w tym zalogowanych: 0, gości: 1