Liste
Exista situatii in care, chiar daca
utilizatorul poate selecta o singura optiune, numarul total al optiunilor este
mare, motiv pentru care nu se folosesc butoane radio, ci liste derulante, care
sunt obiecte de tip TComboBox.
Astfel de liste, numite si liste derulante, au avantajul ca ocupa foarte putin
spatiu in formular, pentru ca afiseaza numai selectia curenta.
Atunci cand utilizatorul doreste, se pot afisa toate optiunile, asa cum se vede in figura alaturata-se executa click pe sageata, apoi click pe optiunea dorita.
Iata cum se selecteaza optiunea de tip TComboBox.
Optiunile propriu-zise se incarca cu ajutorul editorului de texte asociat proprietatii Items(de tip TStrings, tip care va fi studiat).
Pentru lansarea editorului se executa click asupra celor trei puncte.
Optiunile se scriu in mod obisnuit, cate una pe rand Pentru a trece la un rand nou, se tasteaza Enter. Editorul este inzestrat cu un buton OK care trebuie apasat dupa introducerea optiunilor.
Se obtine:
Dupa scrierea optiunilor, lista nu afiseaza nimic, dar un click asupra sagetii are ca efect afisarea lor. De acum este permisa selectia unei optiuni si aceasta este ulterior afisata.
· proprietatea Text, de tip AnsiString are rolul de a retine optiunea selectata.Dar, prin utilizarea inspectorului de obiecte, se poate atribui de la inceput o optiune. Aceasta va fi afisata de la inceput de lista.
Exemplu:
Formularul afiseaza o lista derulanta si un buton.La apasarea butonului se afiseaza selectia efectuata de catre utilizator!
Optiunile se scriu, asa cum am aratat,
cu ajutorul editorului apelat din cadrul proprietatii Items. De asemenea, optiunea implicita s-a obtinut scriind-o direct
in proprietatea Text a listei.La
apasarea butonului raspunde functia:
void _fastcall
TForm1::Button1Click(TObject *Sender)
{
ShowMessage(ComboBox1->Text);
};
Aceeasi secventa
se scrie daca se renunta la Button1 activarea facandu-se direct la selectarea
unei optiuni (evenimentul este OnClick):
void __fastcall
TForm1::ComboBox1Click(TObject *Sender)
{
ShowMessage( ComboBox1->Text);
}
Urmatorul
exemplu permite ca prin alegerea unei optiuni din lista sa se schimbe culoarea
formularului:
void __fastcall
TForm1::ComboBox1Click(TObject *Sender)
{AnsiString
s=ComboBox1->Text;
if
(s.AnsiCompare("rosu")==0)
Form1->Color=clRed;
else
if (s.AnsiCompare("galben")==0)
Form1->Color=clYellow;
else
if
(s.AnsiCompare("albastru")==0)
Form1->Color=clBlue;
else
Form1->Color=clWhite;
}