Tipul TSrings

 

                                Variabilele cu tipul TSrings au rolul de a gestiona mai multe siruri de caractere de tipul AnsiString. O astfel de variabila este, daca vreti un vector de siruri de caractere. Primul sir are indicele 0 si ultimul n-1.

 

O multime de componenete au cate o proprietate de acest tip.

Proprietatile si metodele acestui tip le vom studia cu ajutorul proprietatii Items(care are tipul Tsrings) a componentelor de tip TComboBox.

 

Iata cateva metode, mai importante:

 

·                           Metoda Add are rolul de a adauga sirul transmis ca parametru ca ultim sir in lista de siruri. Ea returneaza indicele ultimului sir:

 

int Add(AnsiString s);

 

Exemplu: la apasarea unui buton se adauga o noua optiune unei listede tip TComboBox:

 

void__fastcall TForm1::Button1Click(TObject *Sender)

{ComboBox1->Items->Add(optiune adaugata”);}

 

Exercitiu :

La exemplul din laboratorul anterior adaugati in mod dynamic culori citite intr-un canp de text (TEdit) . Culorile se vor edita in engleza astfel incat sa puteti seta culoarea formularului: cl+Red =>clRed, etc

 

·                           Metoda Clear are rolul de a sterge toate sirurile din lista de siruri:

 

void Clear(void);

 

Exemplu: se sterg toate sirurile din lista de siruri:

 

ComboBox1->Items->Clear();

 

·                           Metoda Delete are rolul de a sterge sirul de indice dat din lista de siruri:

 

void Delete(int Index);

Exemplu: se sterge sirul de indice 0 (de fapt, prima optiune):

 

ComboBox1->Items->Delete(0);

 

·                           Metoda Insert are rolul de a insera un sir inaintea sirului de indice transmis ca parametru:

 

void Insert(int Index, AnsiString S);

 

Exemplu: se insereaza o prima optiune in lista:

 

ComboBox1->Items->Insert (0,”prima optiune”);

 

·                           Metoda Move are rolul de a insera sirul de indice CurentIndex pe pozitia NewIndex:

 

void Move(int CurentIndex, int NewIndex);

 

Exemplu: se inverseaza primele doua siruri in lista optiunilor:

 

ComboBox1->Items->Move(0,1);

 

·                           Metoda LoadFromFile are rolul de a incarca lista de siruri dintr-un fisier text:

 

void LoadFromFile(AnsiString FileName);

 

·                           Metoda SaveToFile are rolul de a salva lista de siruri intr-un fisier text:

 

void SaveToFile(AnsiString FileName);

 

Aceste doua metode sunt extrem de eficiente.Fisierul text nu trebuie declarat, citirea/scrierea se face la nivelul intregului fisier:

 

Formularul va contine un obiect de tip TComboBox. Lista optiunilor va fi incarcata, la apasarea unui buton, dintr-un fisier text.

 


Fisierul text se creeaza, de exemplu, cu utilitarul Notepad. Fisierul se salveaza sub un nume ales de dv.!

 


La apasarea butonului raspunde functia de mai jos, care incarca din fisier optiunile:

 

void__fastcall TForm1::Button1Click(TObject *Sender)

{

ComboBox1->Items->LoadFromFile(“optiuni.txt”);

}

 

 

Exercitiu propus:

 

Se vor adauga in mod dynamic cateva optiuni intr-o lista. Pentru a regasi optiunile la o noua rulare a aplicatiei acestea se vor salva in fisier. Noile optiuni se vor afisa din fisier. Se vor folosi metodele Add, SaveToFile si LoadFromFile

Iata si cateva proprietati ale acestui tip:

 

Capacityretine numarul de siruri din lista;

Exemplu de prelucrare:

 

int n=ComboBox1->Items->Capacity;

 

Strings[int Index] – retine sirul de indice dat.

 

Exemplu: listez a doua optiune:

 

ShowMessage(ComboBox1->Items->Strings[1]);

 

Text – retine toate sirurile(separate prin CR, LF).


 

Exemplu: afisez toate optiunile:

 

ShowMessage(ComboBox1->Items->Text);

 

Exercitiu : Se va adauga o noua optiune intr-o lista dupa ce se va verifica ca optiunea nu exista deja in lista