Napisati program koji po formi razbaca 30 dugmadi istih dimenzija (5 redova x 6 dugmadi). Dugmad su obelezena redom brojevim od 1 do 30. Kada se klikne na neko dugme ono nestaje sa forme.
Resenje je:
Code:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "fORMDUGME_O.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned pom;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
unsigned i,j;
Application->Title="";
pom=1;
for(i=0;i<6;i++){
for(j=0;j<5;j++){
TButton* btn = new TButton(this);
btn->Parent = this;
btn->Height=50;
btn->Width=50;
btn->Top = 20+j*(btn->Height+20);
btn->Left = 20+i*(btn->Width+20);
btn->OnClick = ButtonXClick;
btn->Tag = 5*i+j;
btn->Font->Size=12;
btn->Caption = IntToStr(j*6+i+1);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonXClick(TObject *Sender)
{
TButton* btnx = dynamic_cast<TButton*>(Sender);
btnx->Visible=false;
pom++;
if(pom==31) ShowMessage("BRAVO!!");
}
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "fORMDUGME_O.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned pom;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
unsigned i,j;
Application->Title="";
pom=1;
for(i=0;i<6;i++){
for(j=0;j<5;j++){
TButton* btn = new TButton(this);
btn->Parent = this;
btn->Height=50;
btn->Width=50;
btn->Top = 20+j*(btn->Height+20);
btn->Left = 20+i*(btn->Width+20);
btn->OnClick = ButtonXClick;
btn->Tag = 5*i+j;
btn->Font->Size=12;
btn->Caption = IntToStr(j*6+i+1);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonXClick(TObject *Sender)
{
TButton* btnx = dynamic_cast<TButton*>(Sender);
btnx->Visible=false;
pom++;
if(pom==31) ShowMessage("BRAVO!!");
}
Meni nista nije jasno!!!
1. Za cega sluzi new?
2. Za cega sluzi this?
3. Zasto je btn struktura? Zasto se sa operatorom '->' moze pristupati njenim osobinama kao da je objekat na formi?
4. Sta znaci ovo dynamic_cast?
5. Ako nekome nije tesko da mi malo rastumaci ovo resenje ili makar jedan deo? Bio bih stvarno zahvalan.
Unapred hvala.
...