Toon posts:

[C++] Nieuw form oproepen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik werk met Borland C++ Builder. Ik heb 2 forms en ik wil vanuit form1, form2 oproepen. Ik heb form2 geincluded in form1. Als ik het goed heb gaat het oproepen van een form via:

void __fastcall TForm1::Info1Click(TObject *Sender)
{
Form2->Show;
}

Maar dan krijg ik de volgende error melding:

E2235 Member function must be called or its address teken.

Ik heb na deze melding al wat met & gestoeid maar nix. Hoe roep ik een form aan?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Je moet van Form2 eerst een object creeeren, dus
code:
1
2
3
4
5
void __fastcall TForm1::Info1Click(TObject *Sender)
{
    Form2 *mijnForm = new Form2(Sender); // weet de precieze constructor niet, ik vul hier Form1 in als evt parent
    mijnForm->Show();
}

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:30
Volgens mij had hij gewoon z'n ()-jes vergeten na z'n Show.

(Form2 zal waarschijnlijk auto-created zijn, default bij C++ Builder en Delphi).
Het is wel mooier natuurlijk dat je die Forms niet auto-created zet (in project/options), en dat je dan doet zoals Orphix zegt, nl. een instance van die form aanmaken en dan de Show() functie aanroepen.

https://fgheysels.github.io/


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

En natuurlijk niet vergeten het form weer ergens op te ruimen (.free() / .release() )

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 28 mei 2002 13:38 schreef whoami het volgende:
Volgens mij had hij gewoon z'n ()-jes vergeten na z'n Show.
|:( :)
Ook wel logisch anders had er wel gestaan TForm2->Show(); oid.