[C++] Event handler runtime aanmaken

Pagina: 1
Acties:

  • darthdrinker
  • Registratie: November 1999
  • Laatst online: 27-06 23:51
He lui,

Ik wil graag het volgende in C++ voorelkaar krijgen.
Alles wordt trouwens in C++ Builder 5 gemaakt.
Een Form waarop 8 * 8 cVelden maak,
waarbij cVeld : public TPaintBox.
Goed ik maak dus cVeld *velden[64]
en dan 64 keer velden[keer] = new cVeld();.
Wat is nu mijn probleem, ik wil aan al deze velden een OnClick event handler hangen.
Ik wil dus eigenlijk het OnClick gebeuren van de TPaintBox overerven en daar zelf wat code neerzetten.
Zodat als ik op 1 van deze cVeldjes klikt dat ie dan wat doet.
Hoe doe ik dat? Normaal gesproken gaat dit allemaal via de GUI van builder maar nu moet ik het met code doen.
Ik heb al [gabber]vet bruut[/gabber] in de help zitten zoeken maar kan niks vinden.

Alvast bedankt voor het lezen.

Iemand doodmaken met een blije mus.....


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:29
code:
1
2
3
4
5
6
void DoeIets(TObject* Sender)
{
 //code
}

Veld[i]->OnClick = DoeIets;

Bedoel je zoiets? Vind uw uitleg niet zo duidelijk.

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Okee ik heb je vraag nu een beetje door:
code:
1
2
3
4
5
6
7
8
9
10
int i;

for(i = 0; i != 64; i++)
  {
  TPaintBox*     PaintBox = new TPaintBox(Owner);
  PaintBox->Parent    = ParentWindow;
  PaintBox->Align      = alClient;
  PaintBox->OnClick  = MyClick;
  PaintBox->Tag      = i;
  }

En dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall MyClass::MyClick(TObject* Sender)
{
TPaintBox*   PaintBox;

if(Sender->InheritsFrom(__classid(TPaintBox)))
  {
  PaintBox = (TPaintBox*)Sender;

  switch(PaintBox->Tag)
    {
    ...
    }
  }
}

Professionele website nodig?


  • darthdrinker
  • Registratie: November 1999
  • Laatst online: 27-06 23:51
Hee bedankt!

Ja dat ziet er goed uit. :)
Als ik het goed heb begrepen heb je die switch en die tag er in gestopt zodat je met ieder ding wat anders kan doen?
Dat hoeft in mijn geval nml. niet maar wel een goed idee voor later. ;)

God I love GOT!
Mucho thnx to whoami & curry684

Iemand doodmaken met een blije mus.....