[C++]Help de beginner (deel 2)

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • Suffie
  • Registratie: Maart 2002
  • Laatst online: 24-08 20:27
ik loop al een uur te zoeken in mn boek en op internet, maar op de een of andere manier kan ik het ff niet vinden :( ik zal er uiteraard wel weer overheen kijken, maar aangezien ik niet ontmoedigd wil raken over mijn poging om C++ te leren(te halen) waag ik hier een poging.

Het is een verschrikkelijke noob vraag, maar goed.

zodra er op de knop wordt gedrukt is het de bedoeling dat de tekst die is ingetypt in tekstbox "Edit1" wordt opgenomen in een string, zodat ik er verder mee kan rekenen.

dus zet ik in de eventafhandelaar van de knop
code:
1
string invoer = Edit1.getString() ;

en daarbij krijg ik de foutmelding:"Structure required on left side of . or .*."

dus dan is de vraag eigenlijk: Hoe kan je een ingetypte tekst in een string opvangen

I don't suffer from insanity, I enjoy every minute of it


  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Edit1->getString() ?
Misschien handig om even bij de klasses te kijken in je C++ boek....

[ Voor 67% gewijzigd door johnny7 op 28-01-2003 13:59 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21-08 21:44

MBV

Door dat puntje te vervangen door -> . Heel simpel: als je met windows werkt etc, werk je met pointers. Dus Edit1 is een pointer naar een object, maar is dat niet. Daarom krijg je die error.

* MBV weet nog heel goed hoelang hij daarmee bezig is geweest voordat hij dat doorhad :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:26
Aangezien alle VCL componenten op de heap gealloceerd worden, en dus pointers zijn, moet je niet de . - operator gebruiken, maar de -> (redirect heet ie als ik het goed heb) operator

code:
1
string invoer = Edit1->getString();


Of ook:
code:
1
string invoer = Edit1->Text;



Als je ff in de help had gekeken wat die foutmelding wou zeggen, was je er waarschijnlijk zelf ook opgekomen.

* whoami is weer de spuit11

[ Voor 4% gewijzigd door whoami op 28-01-2003 14:00 ]

https://fgheysels.github.io/


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Edit1 is een pointer naar een Component. Pointers benader je dmv dereferencing ( * ) operator.
Je kunt het dus veranderen in
C++:
1
std::string invoer = (*Edit1).getString();

of
C++:
1
std::string invoer = Edit1->getString();

Waarbij -> een shortcut is voor *.

Verder zou ik je toch willen adviseren een aantal boeken te gaan lezen, rustig die dingen die erin staan te proberen, je bezig te houden met console ( dos screens dus ) en die windows zooi nog even te laten liggen, als je nog niet genoeg kennis hebt.

Succes

edit:
Als whoami spuit 11 is, dan ben ik spuit 13 ;)

[ Voor 6% gewijzigd door Glimi op 28-01-2003 14:02 ]


Dit topic is gesloten.