Poprawione.
Z tym że i tak to nie zadziała (nieco później się przekonasz), ponieważ wszystkie 25 obiektów tablicy karty zostaną zniszczone po zakończeniu FormCreate
.
Trzeba dodać Card *karty[25];
- do składowych klasy w pliku Unit1.h
W FormCreate
dodać: for(int i=0;i<25;++i) karty[i]=new Card();
W FormCreate
wszędzie pozmieniać karty[j].
na karty[j]->
w tym to miejsce co przed chwila poprawiłem.
Lepiej przestań kombinować i zrób po ludzku:
Unit1.h:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
struct { TImage *img; int JakasLiczba; AnsiString JakisNapis; } tb[25];
void __fastcall imgClick(TObject *Sender);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Unit1.cpp:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
for(int i=0,y=0;y<5;++y)
{
for(int x=0;x<5;++x,++i)
{
TImage *img=new TImage(this);
img->BoundsRect=Bounds(4+84*x,4+84*y,80,80);
img->Parent=this;
img->Picture->LoadFromFile("test.bmp");
img->OnClick=imgClick;
img->Tag=i;
tb[i].img=img;
tb[i].JakasLiczba=rand();
tb[i].JakisNapis="abc";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::imgClick(TObject *Sender)
{
TImage *img=(TImage*)Sender;
int i=img->Tag;
tb[i].img->Visible=false;
}
//---------------------------------------------------------------------------