C++ Builder
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
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

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
