Borland C++ Builder. Notiuni generale

 

Spre deosebire de Borland C++ clasic, in Borland C++ Builder se scriu programe sub Windows, folosindu-se anumite componente specifice Windows-ului. Programele astfel concepute trebuie sa raspunda anumitor evenimente (apasarea unei taste, un click de mouse etc.) Actiunile utilizatorului sunt efectuate asupra unor obiecte care sunt caracterizate prin anumite proprietati (culoare, marime etc.) Evident ca nu orice obiect poate raspunde la orice eveniment si difera de altele prin diferite proprietati.

Programele sub windows utilizeaza biblioteci speciale de subprograme numite DLL-uri (dynamic-link library).  Acestea includ elementele de interfata utilizate (subprograme care se apeleaza de fiecare data cand este nevoie de ele).

 

Interfata bcb contine:

 

Bara de comenzi rapide               butonul run                                                   Paleta de componente

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Inspectorul de obiecte                                                               Formular

 

Executand pe butonul run aflat pe bara de comenzi rapide sau F9 se comanda compilarea si executia programului.

 

Obiectele (componentele) aplicatiei se adauga in formulare. O aplicatie poate contine unul sau mai multe formulare. Colectia de componentele se gaseste pe Paleta de componente. 

 

Un obiect are anumite proprietati, valorile acestora putand fiind stabilite utilizand inspectorul de obiecte. De exemplu, pentru formular (care este si el un obiect) se poate stabili textul din bara de titlu utilizand proprietatea Caption.

 

Fisierele care alcatuiesc programul sursa C++ Builder sunt:

Un program sursa in C++ Builder ocupa mai multe fisiere. El este realizat sub forma unui proiect.

  1. fisierul proiect.
    1. Are extensia mak
    2. Este creat automat de catre mediu
    3. Se vizualizeaza cu View/ project makefile
    4. Executia unui click asupra icon-ului are ca effect lansarea in executie a aplicatiei C++ Builder

 

In linii mari acesta contine informatii asupra celorlalte fisiere care alcatuiesc proiectul: project1.exe, project1.obj, project1.res, unit1.obj, unit1.dfm

 

Obs. Nu interveniti in sursa acestui fisier!

 

  1. Sursa C++ a proiectului
    1.  Are extensia cpp si numele proiectului
    2. Se vizualizeaza cu View/ project  source:

 

#include <vcl\vcl.h>

#pragma hdrstop

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

USEFORM("Unit1.cpp", Form1);

USERES("Project1.res");

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

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

            {

            Application->Initialize(); //se initializeaza aplicatia

            Application->CreateForm(__classid(TForm1), &Form1);// se creeaza formularul de baza

            Application->Run();// se lanseaza aplicatia in executie

            }

            catch (Exception &exception)

            {

                        Application->ShowException(&exception);

            }

            return 0;

}

 

In loc de functia main() aici intervine functia WinMain()

Obs. Nici in acest fisier nu se intervine.El este gestionat automat de mediu

 

  1. Fisierele care contin descrierea formularului
    1. Fisierul antet

                                                               i.      Are extensia .h

                                                             ii.      Contine clasa care defineste formularul:

 

#ifndef Unit1H

#define Unit1H

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

#include <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

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

class TForm1 : public Tform  // clasa care defineste formularul

{

__published:  // IDE-managed Components

private:          // User declarations

public:                       // User declarations

         __fastcall TForm1(TComponent* Owner);

};

 

Obs. Nici in acest fisier nu se intervine.El este gestionat automat de mediu

    1. Fisierul care contine functiile utilizator

                                                               i.      Are extensia cpp

                                                             ii.      Este creat automat de catre mediu, dar functiile care-l alcatuiesc sunt scrise de programator

                                                            iii.      Se vizualizeaza astfel: view/units

                                                           iv.      In cazul unei aplicatiii care contine un buton si care ca urmare a evenimentului click (de mouse) activeaza o caseta de avertizare sursa acestui fisie este:

 

#include <vcl\vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

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

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

                                                                     : TForm(Owner)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

ShowMessage("Prima aplicatie a reusit!");//aceasta linie este scrisa de programator

}

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

 

    1. Fisierul care retine proprietatile formularului

                                                               i.      Are extensia dfm

                                                             ii.      Este creat automat de mediu

                                                            iii.      Se vizualizeaza apasand butonul drept al mouse-ului deasupra formularului: view as text. (pentru revenire view as form)

                                                           iv.      Iata sursa unui astfel de fisier:

 

object Form1: TForm1

  Left = 274

  Top = 182

  Width = 435

  Height = 255

  Caption = 'Form1'

  Font.Charset = DEFAULT_CHARSET

  Font.Color = clWindowText

  Font.Height = -11

  Font.Name = 'MS Sans Serif'

  Font.Style = []

  PixelsPerInch = 96

  TextHeight = 13

  object Button1: TButton

    Left = 56

    Top = 48

    Width = 65

    Height = 33

    Caption = 'apasa'

    TabOrder = 0

    OnClick = Button1Click

  end

end

Obs: O aplicatie poate contine mai multe formulare si pentru fiecare dintre acestea  vor exista cele trei fisiere (fisier antet, fisier pt functii utilizator, fisier proprietati formular)

 

Salvarea programului: este recomandabil sa se creeze un folder care va contine toate fisierele aplicatiei. Salcvarea se realizeaza cu:  File / Save all

 

Deschiderea aplicatiei:  se realizeaza cu File / Open selectand fisierul cu extensia  mak

 

Probleme propuse

1.      Scrieti un program care afiseaza o fereastra. Titlul ferestrei (proprietatea caption a formularului) va fi prima aplicatie

  1. Salvati proiectul intr-un folder prim_program.Proiectul se va numi test.mak
  2. Adaugati ferestrei create un icon (proprietatea icon a formularului)
  3. Modificati culoarea ferestrei in galben (sau o alta culoare aleasa de voi/ proprietatea color)
  4. Modificati fereastra astfel incat sa fie patrata (proprietatile height si width )
  5. Modificati programul astfel incat sa fie afisata incapand cu coltul din stanga sus al ecranului (proprietatile left si top)
  6. Adaugati un buton aplicatiei pe care sa scrie “clic”. La apasarea butonului (evenimentul Onclic) se va afisa “prima aplicatie a reusit!”. Functia care realizeaza aceasta este ShowMessage(expresie_sir);