Thuis
Contacten

    Hoofdpagina


Programmeren in C++ voor beginners

Dovnload 5.04 Mb.

Programmeren in C++ voor beginners



Pagina48/49
Datum25.10.2017
Grootte5.04 Mb.

Dovnload 5.04 Mb.
1   ...   41   42   43   44   45   46   47   48   49

De TForm1 constructor aanpassen

De TForm constructor aanpassen is net als elke andere bestaande constructor aanpassen: laat staan wat er staat en voeg je eigen dingen toe.


Bijvoorbeeld, stel je wilt elk Form een paswoord meegeven, die in de constructor wordt geinitialiseerd. Voeg de de in rood aangeven code toe aan de header file van TForm1:
class TForm1 : public TForm

{

__published: // IDE-managed Components



//Kylix dingen

private: // User declarations

String mPaswoord;



public: // User declarations

__fastcall TForm1(TComponent* Owner, const String& s);

};
De methode definitie van de TForm1 constructor ziet er dan als volgt uit:
__fastcall TForm1::TForm1(

TComponent* Owner,



const String& s)

: TForm(Owner),

mPaswoord(s)

{
}
Laat in de initialisatielijst de regel 'TForm(Owner)' staan. Anders krijg je onderstaande foutmelding:


[C++ Error] Unit1.cpp(14): E2251 Cannot find default constructor to initialize base class 'TForm'
De Help kan verklaren wat er mis is.
We kunnen nu nieuwe TForm1s maken en als onderstaand testen.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

TForm1 * f = new TForm1(this,"iloverichel");



f->Show();

}
void __fastcall TForm1::Button2Click(TObject *Sender)

{

ShowMessage(mPaswoord);



}
Merk op dat het eerste Form dat in beeld komt een leeg mPaswoord heeft.

    1. Werken met meerdere verschillende Forms en/of Units

Tot nu toe hebben onze Projects altijd uit een enkele Unit bestaan. Willen we met meerdere Units gaan werken, dan moeten we de Project Manager leren gebruiken.


Met 'View | Project Manager' of CTRL-ALT-F11 kunnen we de Project Manager zien.


De Project Manager van een Project (genaamd Project1) met een enkele Unit (Unit1), die een Form bevat (Form1).
Kiezen we 'File | New | Form', dan verschijnt er een nieuw Form, Form2 genaamd, van het data type 'TForm2'. Deze is ook meteen te zien in de Project Manager. #includen we de header file van dit Form, Unit2.h, dan kunnen we deze in TForm1 aanroepen, zoals bijvoorbeeld in onderstaand voorbeeld:
#include "Unit2.h"
void __fastcall TForm1::Button1Click(TObject *Sender)

{

TForm2 * f = new TForm2(this);



f->Show();

}
We kunnen ook een 'lege' Unit aanmaken, om bijvoorbeeld een klasse in te plaatsen. Doe 'File | New | Unit'.


Er is nu een nieuwe Unit aangemaakt, bestaande uit 'Unit3.cpp' en 'Unit3.h'.
Deze code bestaat standaard uit onderstaande tekst:
//---------------------------------------------------------

#ifndef Unit3H

#define Unit3H

//---------------------------------------------------------

//Declaraties hiero

#endif
//---------------------------------------------------------

#pragma hdrstop
#include "Unit3.h"

//---------------------------------------------------------

//Definities hiero

#pragma package(smart_init)


De compiler gaat klagen als je de bovenste #pragma weghaalt, maar beide #pragma's mag je weghalen (hoewel het geen kwaad kan, en het soms beter is, ze te laten staan).
Met de Project Manager kunnen we Units toevoegen en verwijderen uit een Project. Dit is zeer nuttig, omdat je nu Units kunt hergebruiken, bijvoorbeeld een 'About Box'. Een Unit kan prima onder meerdere Projecten vallen.
    1. Een console applicatie

Een console applicatie is een applicatie die alleen via het toetsenbord aangestuurd kan worden en die alleen letters/tekens gebruikt.


Console applicaties zijn nuttig om hun platform-onafhankelijk, indien je alleen de STL gebruikt (dus geen Kylix-specifieke functies!).
Om een console applicatie te starten, doe 'File | Close All', dan 'File | New | Other', kies dan onder tabblad 'New' de 'Console Wizard' en stel deze als onderstaand in:

De code die dan verschijnt is als volgt:
//---------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------
#pragma argsused

int main(int argc, char* argv[])

{

return 0;

}

//---------------------------------------------------------


Dit kun je strippen tot onderstaande, minimale correcte programma:
int main()

{
}
Als je het programma start, dan verschijnt er na compilen en linken heel kort een venstertje, dat automatisch sluit.


Onderstaande code laat een 'Hello World' programma zien, waarvan het programma wacht op een enter.
#include
int main()

{

std::cout << "Hello world" << std::endl;



std::cin.get(); //Wacht op een enter

}
Merk het volgende op:

* Een console applicatie start in de functie main.

* De functie main geeft een int terug. Dit is de foutcode

van het programma (waarbij een nul 'geen fout opgetreden'

betekent).

* Er zou op het einde 'return 0;' moeten staan, maar dit

staat er niet en de compiler klaagt niet. Dit omdat de

C++ standaard zegt dat de accolade sluiten van main

hetzelfde effect als 'return 0;' moet hebben.

* Er moet een header file worden ge-#include genaamd

'iostream'. 'iostream' staat voor 'Input/Output Stream'.

* 'std::cout' staat voor 'Character Out', 'std::cin' staat

voor 'Character In'.

* Met std::cout kun je 'karakters naar het beeldscherm

laten stromen'. De '<<' operator wordt de 'stream out'

operator genoemd.

* 'std::endl' staat voor 'End line' en zorgt ervoor dat de

tekst op een volgende regel verder gaat.

* std::cin is een klasse met een get methode. De get

methode zorgt dat er gewacht wordt op een enter.
std::cout wordt ook wel een 'output stream' genoemd, std::cin een 'input stream'. Streams worden in deze cursus niet behandeld.

1   ...   41   42   43   44   45   46   47   48   49

  • Werken met meerdere verschillende Forms en/of Units
  • Een console applicatie

  • Dovnload 5.04 Mb.