C++ Builder


   prostředí C++ Builderu
 základní komponenty
 AnsiString - práce s řetězci
 obecné funkce
 funkce ListBoxu
 grafika / kreslení
 tabulky
 vzorové příklady
Tyto stránky jsou věnované principům programování v C++ Builderu. O proti programování v WIN API nabízí toto rozhaní výhodu graficky uživatelského prostředí. Není potřeba pracně vypisovat jednotlivé funkce pro vytvoření okna či tlačítka, ale jednoduše se přetáhnou na plochu. Princip programování ve WIN API můžeme považovat za "zastaralý", ale jeho znalost je rozhodně výhodou při programování v C++ Builderu, který z vychází z původních principů programování pod Windows.


prostředí C++ Builderu


prostředí C++ Builderu

Formulářové okno slouží pro vkládání komponent. Např. můžeme vložit tlačítko. Každá komponenta má své specifické vlastnosti, které se nastavují pomocí Objekt inspektoru. Jeho použití je intuitivní podle názvu každého parametru. Zde se nastavují rozměry, barvy, cursor, font atd. a zároveň události, které chceme zachytit, abychom je nahradili vlastním programem. Např. pokud bylo zmáčknuté tlačítko, pak např. ukonči program. Dvojklikem na komponentu se obejeví v editačním okně příslušná prázdná funkce, zachytávající základní událost, kam je možné zapsat vlastní program. Např. napíšeme funkci Close(), která zajistí ukončení programu. Takto je možné vkládat text, checkboxy, radiobuttony, listboxy, menu a pod.


základní komponenty


program - základní komponenty

Použití základních komponent bude ukázáno na jednoduchém programu. Program bude mít statický nadpis, kde jsou změněny základní vlastnosti font barva, dále editační text, který se bude následně vypisovat vedle do dalšího statického textu. Dále je ukázán přístup ke komponentám typu checkbox a Radiobutton. Typ komponenty listbox umožňuje změnit barvu pozadí a tlčítko Konec ukončuje program.

Pro ukonční programu je využita funkce Close(), pro přístup k jednotlivým komponentám je dobré znát něco o objektovém programování, tedy programování tříd (class) a jejich následníků. Každá komponenta je tvořena vlastní třídou, vlastnosti jsou definované formou proměnných, které jsou součástí dané třidy. Při vložení komponenty, program vygenruje následníka dané třídy, a k jednotlivým komponentám se přistpuje pomocí operátoru -> . program ke stažení

definice třídy form

class TForm1 : public TForm{
__published:
TLabel *Label1;
TGroupBox *GroupBox1;
TCheckBox *CheckBox1;
TCheckBox *CheckBox2;
TGroupBox *GroupBox2;
TRadioButton *RadioButton1;
TRadioButton *RadioButton2;
TButton *Button1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TEdit *Edit1;
TLabel *Label7;
TListBox *ListBox1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall CheckBox1Click(TObject *Sender);
void __fastcall CheckBox2Click(TObject *Sender);
void __fastcall RadioButton1Click(TObject *Sender);
void __fastcall RadioButton2Click(TObject *Sender);
void __fastcall Edit1Change(TObject *Sender);
void __fastcall ListBox1Click(TObject *Sender);
private: // User declarations
public: // User declarations
virtual __fastcall TForm1(TComponent* Owner);
};
   definice následníka třídy TForm

   definice následníka třídy TLabel
   definice následníka třídy TGroupBox
   definice následníka třídy TCheckBox
   definice následníka třídy TCheckBox
   definice následníka třídy TGroupBox
   definice následníka třídy TRadioButton
   definice následníka třídy TRadioButton;
   definice následníka třídy TButton
   definice následníka třídy TLabel
   definice následníka třídy TLabel
   definice následníka třídy TLabel
   definice následníka třídy TLabel
   definice následníka třídy TLabel
   definice následníka třídy TEdit
   definice následníka třídy TLabel
   definice následníka třídy TListBox
   funkce obsluhující Button1Click
   funkce obsluhující CheckBox1Click
   funkce obsluhující CheckBox2Click
   funkce obsluhující RadioButton1Click
   funkce obsluhující RadioButton2Click
   funkce obsluhující Edit1Change
   funkce obsluhující ListBox1Click


   konstruktor

přístup k vlastnostem

každý následník přejímá vlastnosti svého předchůdce a každá třídy má své specifické vlastnosti. Přednastavení vlastností se prování v objekt inspektru a v programu pomocí příkazu

Label4->Caption="ANO";
Form1->Color=TColor(color[ListBox1->ItemIndex]);
  text položky Label4 bude ANO
  barva pozadí vude vybrána z listboxu


AnsiString - práce s řetězci


AnsiString(int cislo);
Edit1->Text.Length();
Edit1->Text.ToInt();
Edit1->Text.c_str();
Label1->Caption = "Počet znaků = " + AnsiString(Edit1->Text.Length());
Label1->Caption = strcat(char* s1 ,char* s2);
   převede číslo na AnsiString
   vrátí délku řetězce Edit1->Text
   převede řetězec Edit1->Text na INT
   převede řetězec Edit1->Text na char*
   příklad užití funkcí třídy AnsiString
   příklad převodu na AnsiString

obecné funkce


Close();
Form2->ShowModal();
Form2->Show();
OpenDialog->Execute();
Win API - InvalidateRect();

Win API - UpdateWindow(HWND hwnd);

Invalidate();
Update();
RePaint() a ReFresh();
MessageBeep(UNIT uType);
MessageBox(HWND hwnd,LPSTR lpText,LPSTR lpCation,UNIT uType);
WinExec(LPSTR lpCmdLine,UNIT uCmdShow);
práce se soubory pod Windows;
   ukončí program
   otevře okno Form2 - modálně
   otevře okno Form2 - nemodálně
   spouštění dialogů
   požadavek na překreslení okna, fce zasílá WM_PAINT, ale až potom co skončí fce, která IvalidateRect()volala
   zasílá okamžitě WM_PAINT, k překreslení dojde, pokud vyla předtím volaná fce InvalidateRect()
   celá oblast se maže a je označena za neplatnou
   překresluje oblast, pokud vyla předtím volaná fce Invalidate();
   jako volání funkcí Invalidate(); + Update();
   přehraje zvuk ze systému Windows - parametry
   vypíše okno - parametry
   spouští definovanou aplikaci - parametry
   soubory INI / DAT - parametry

funkce Listboxu


ListBox1->Items->Add(řetězec);
ListBox1->Items->Add(AnsiString(cislo));
ListBox1->ItemIndex=2;
číslo=ListBox1->ItemIndex;
ListBox1->Items->Strings[2]="xxxx";
řetězec=ListBox1->Items->Strings[2];
čislo=ListBox1->Items->Strings[2].ToInt();
ListBox1->Clear();
   přidá řetězec do seznamu
   přidá číslo do seznamu
   nastaví kurzor na položku číslo 2
   vrátí polohu kurzoru - vybrané položky
   změní název položky na třetí pozici
   vrátí název položky na třetí pozici
   převede název položky na INT a vrátí ho
   smaže všechny položky

grafika / kreslení


kreslení sprovádí pomicí třídy TCanvas, která přejímá vlastnosti tříd - především Brush, Font, Pen. Metody této třídy umožňují kreslit čáry, obrazce, měnit barvy, výplně a práci s bitmapovími obrázky.

ukázka použití základních funkcí grafiky



tabulky


bohužel, zatím podklady chybí


vzorové příklady CBuilder 4


základní komponenty

práce s myší a komponenta StatusBar

komponenty BitButton, ScrollBar, ProgresBar

práce s dialogy - Open, Font, Color, PrterSetup

program pro ovládání LPT portu - čtení, zápis dat

ukázka použití základních funkcí grafiky

ukázka použití práce se zvukem

vzorové příklady CBuilder 6


CheckListBox

prace s fontem

OLE Word

OLE Excel


návrat na domovskou stránku     návrat na programování     nahoru