Pirmoji C++ kalba programa BeOS aplinkai. Kiti pavyzdžiai.

 

Kaip jau yra įprasta, parašysime pirmąją C++ kalba programą BeOS aplinkai, kuri formoje (lange) parašys tekstą "Sveikas, pasauli!" (pasinaudosime Eric Shepherd'o pavyzdžiu).


Programos kodas:

-------------------------------------
//
// Sveikas, pasauli! 2000
// Copyright 1998, Be Incorporated
// Autorius: Eric Shepherd
//

#include <Application.h>
#include <Window.h>
#include <View.h>


//
// HelloView klasė (class)
//
// Ši klasė apibrėžia objektą vaizdas (view), 
// kuriame parašysime "Sveikas, pasauli!" tekstą
//
class HelloView : public BView 
{
public:
  HelloView(BRect frame);
// Vaizdo konstruktoriaus apibrėžimas
  virtual void Draw(BRect updateRect); // Vaizdo piešimo procedūros apibrėžimas
};

//
// HelloView::HelloView
//
// Vaizdo (view) konstruktorius, kuriame rašysime 
// Kaip matote, jis nieko daug nedaro, 
// mes tik nurodome konstantų B_FOLLOW_ALL_SIDES ir B_WILL_DRAW
// pagalba jo tipą. 
//
HelloView::HelloView(BRect frame): BView(frame, "HelloView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW) 
{
}


//
// HelloView::Draw
//
// Ši procedūra bus iškviečiama, kai
// vaidui reikės persipaišyti, kadangi
// mes nurodėme B_WILL_DRAW konstantą konstruktoriuje. 
//
// Ploteliu updateRect, mes nurodome kokią vaizdo dalį
// reikia perpaišyti.
// Dažniausiai to nereikia nurodyti, bet tai pagreitina
// programos darbą.
//
void HelloView::Draw(BRect updateRect) 
{
  MovePenTo(BPoint(20,75));
// Perkeliame į tam tikrą formos vietą "pieštuką"
  DrawString("Sveikas, pasauli"); // Rašome tekstą "Sveikas, pasauli!"
}

//
// HelloWindow klasė (class)
//
// Ši klasė apibrėžia programos pagrindinį langą.
//
class HelloWindow : public BWindow 
{
public:
  HelloWindow(BRect frame);
// Formos (lango) konstruktoriaus apibrėžimas
  virtual bool QuitRequested(); // Pranešimo programai "Baigti darbą" apdorojimo f-ja.  
};

//
// HelloWindow::HelloWindow
//
// Pagrindinės formos (lango) konstruktorius, 
// kuriame rašysime tekstą. 
//
HelloWindow::HelloWindow(BRect frame): BWindow(frame, "Hello World", B_TITLED_WINDOW, B_NOT_RESIZABLE|B_NOT_ZOOMABLE) 
{
  AddChild(new HelloView(Bounds()));
// Į langą "įstatome" vaizdą (tuo pačiu metu ir jį sukuriame)
  Show(); // Parodome langą
}

//
// HelloWindow::QuitRequested
//
// Kada programos langas yra uždaromas
// (galbūt vartotojas paspaudė lango uždarymo mygtuką arba kitu būdu),
// ši funkcija bus iškviesta.
// Čia galima įrašyti reikalingą papildomą programinį kodą,
// jei norime apdoroti tokį vartotojo pasirinkimą 
// (pvz. paklausti ar vartotojas ištikrųjų nori tai daryti).
//  
// Šiuo atveju, leisime sistemai uždaryti pagrindinį programos langą,
// t.y. baigsime darbą su programa.
//
bool HelloWindow::QuitRequested() 
{
  be_app->PostMessage(B_QUIT_REQUESTED);
// siunčiame BeOS sistemai pranešimą apie programos darbo baigimą
  return true;
}


//
// HelloApp klasė (class)
//
// Ši klasė sukuriama iš BApplication klasės ir,
// apibrežia mūsų sukurtąją programą.
//
class HelloApp : public BApplication 
{
public:
  HelloApp();
// programos konstruktorius
private:
  HelloWindow *theWindow;
// rodyklė į programos langą
};

//
// HelloApp::HelloApp
//
// Programos konstruktorius. Jis sukurs programos langą.
//
HelloApp::HelloApp(): BApplication("application/x-vnd.Be-HelloWorld") 
{
 BRect windowRect;
// kintamasis, skirtas apibrėžti lango koordinatę ir dydį

  windowRect.Set(50,50,200,200); // nustatome lango koordinatę ir dydį
  theWindow = new HelloWindow(windowRect); // sukuriame langą
}

//
// main
//
// Ši f-ja sukuria pačią programą ir sunaikina, kai ši baigia darbą.
//
int main(void) 
{
  HelloApp *theApp;
// Rodyklė į mūsų programą
  theApp = new(HelloApp); // Sukuriame programą
  theApp->Run(); // Pradedame programos darbą ir laukiame kol ji baigs darbą
  delete theApp; // Sunaikiname programą ir atlaisviname sistemos atmintį
}
-------------------------------------


Kitus programavimo pavyzdžius galite pasižiūrėti čia...

Į viršų
 

 

Atnaujinta: gruodžio 03, 2000.