TSTRINGLIST C++ BUILDER

De nuevo, TList se especializa en el almacenamiento y procesamiento detoda clase de objetos, TStringList en principio es una clase derivada deTList, esto significa que HEREDA o que puede usar muchas de laspropiedades y métodos que pertenecen a TList, además de

 

III

UNIDAD C++BUILDER ARREGLOS

6.- TStringList C++BUILDER

De nuevo, TList se especializa en el almacenamiento y procesamiento detoda clase de objetos, TStringList en principio es una clase derivada deTList, esto significa que HEREDA o que puede usar muchas de laspropiedades y métodos que pertenecen a TList, además de poder usarigualmente algunas propiedades y métodos que le son propios.

La diferencia básica, con TList, es que TStringList solo permitealmacenar strings, como este es el caso mas común en el ambiente visualque se ha venido desarrollando, así como en los sistemas o problemas deinformación de naturaleza administrativa, el resto del capitulo se dedicaa estudiar, analizar y construir aplicaciones con esta clase.

Sus propiedades y métodos son;

1.- Propiedades;

Count.- Cuenta las strings en la lista

Duplicates.- Permite strings duplicadas en una lista ordenada de strings

Objects.- Asocia un objeto a una string existente (ej. un bitmap a unastring).

Sorted.- Especifica que las strings en la lista deben ser ordenadasautomáticamente, solo poner esta propiedad en True.

Strings[reng].- La mas importante, se usa para accesar, y leer omodificar una posición o elemento especifico o determinado.

2.- Métodos;

Add.- Inserta un objeto nuevo al final de la lista y regresa el lugar oposición donde se realizo la inserción.

Clear.- Se usa para vaciar el arreglo, también libera la memoria ocupadapor los objetos de la lista.

Delete.- Se usa para eliminar un objeto especifico, lleva como argumentoo parámetro la posición del objeto.

Exchange.- Intercambia dos objetos de la lista.

Find.- Regresa la posición de una string en una lista ordenada.

IndexOf.- Regresa la posición del objeto en la lista.

Insert.- Inserta un objeto en la posición deseada.

Sort.- Ordena los objetos de la lista, usando QuickSort.

Recuerde que objetos(variables) derivadas de TStringList pueden usartambién muchas de las propiedades y métodos de TList.

Se analiza ahora el procesamiento normal de estos objetos o desde unaperspectiva mas tradicional variables arreglo de tipo lista.

Lo mas importante a recordar es combinar lo ya visto para tratamiento devariables tipo lista normales y usar igualmente las propiedades y métodosque contiene esta clase.

Para declarar un objeto o variable derivada de esta clase, recordar queaquí son dos pasos, primero se debe declarar el objeto o variable ysegundo se debe crear una instancia real en memoria de este objeto ovariable, como se muestran en los siguientes ejemplos;

Creación y declaración de una lista de 8 ciudades

// área de declaraciónTStringList *ciudades;ciudades = new TStringList;

nota recordar que esta listas son dinámicas, y que no tiene sentido asignarle un tamaño fijo, que también se podría hacer.

Creación y declaración de una lista de 6 edades;

// declaración y creación de las listasTStringList *edades;edades = new TStringList;

Recordar que son listas de strings, si ocupan operaciones con números se deberá usar ToInt() y ToDouble().

Recordar además que estos dos renglones que se ocupan para ladeclaración, van a ir juntos al principio del onclick del botón Ok, perosi la captura se realiza usando un montón o conjunto de componentes editsy otros botones realizan otro proceso con la lista, entonces tendrán queir separados en su lugar respectivo ( mas delante se indica como ).

Para capturar sus elementos usando de momento el método que se analizo enlistas normales, es decir un montón de componentes Edit, como en elsiguiente ejemplo;

// área de declaración y creaciónTStringList *ciudades;ciudades = new TStringList;// captura de datosciudades->Strings[0]=Edit1->Text;ciudades->Strings[1]=Edit2->Text;

párrafos arriba se encuentra la definición de la propiedad Strings[];

Recordar que son listas y por tanto la primera posición, o primer renglón es la posición 0(cero).

Para desplegar los datos recordar que se puede usar un componente ListBoxo un componente ComboBox que permiten manipular el conjunto de datos a lavez, solo usar las propiedades Text, tanto del ListBox, así como de lavariable objeto derivada de TStringList, como en el siguiente ejemplo; Home Security Tips and buying guides Home Security Tips and buying guides

void __fastcall TForm1::Button1Click(TObject *Sender){ TStringList *ciudades;ciudades = new TStringList;// procesos con la lista// despliegue de la listaListBox1->Items->Text = ciudades->Text;}

La pantalla de salida es:

image72.jpg

Para el caso de procesos mas comunes como operaciones, comparaciones,etcétera, solo recordar combinar las propiedades y métodos de TStringListcon los métodos vistos y aplicados ya para componentes visuales y paralos de variables de tipo arreglo ya vistas.

Esto es importante porque exige conocer y familiarizarse con esta clasemas a fondo, por ejemplo un caso sencillo, capturar una lista de 5 edadesen años, convertirlos posteriormente a meses y al final desplegar lasedades convertidas a meses.

Una de las posibles soluciones es:

Código

void __fastcall TForm1::Button1Click(TObject *Sender){ TStringList *edad;edad = new TStringList;int reng;// captura de datosedad->Add(Edit1->Text);edad->Add(Edit2->Text);edad->Add(Edit3->Text);edad->Add(Edit4->Text);edad->Add(Edit5->Text);// procesos con la listafor(reng=0;rengCount;reng++){ edad->Strings[reng]=FormatFloat("###.##",edad->Strings[reng].ToInt() *12);};}

notas:

En el for se esta usando la propiedad Count que devuelve la cantidad deelementos que contiene la lista, esto es con la finalidad de no tener masque procesar los elementos existentes.

La operación es un solo renglón en el programa.

Recordar que Propiedad Strings[] permite manipular una posiciónespecifica dentro de una lista, recordar igualmente que la primeraposición, es la 0(cero).

Para pasar los elementos de edad a ListBox, ambos componente yvariable/objeto usan propiedad Text, porque ambos la comparten o laheredan esto es importante porque demuestra que realmente no son cosas oelementos diferentes.

Lo mas importante, es que se debe entender, aprender y aplicarcombinaciones de propiedades, métodos y operaciones como en el ejemplo.

La pantalla de salida es;

image73.jpg

Para poder usar un solo componente edit para capturar todos los elementosde la lista:

1. La declaración de la lista se pone en dos partes diferentes, dentroy arriba de la Unit, como se observa en el siguiente ejemplo;

#include #pragma hdrstop#include "Unit1.h"//-------------------------------------------#pragma resource "*.dfm"TForm1 *Form1;TStringList *edad;//-------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){edad=new TStringList;}//-------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){edad->Add(Edit1->Text);}

La captura no ocupa ciclo for, pero si ocupa su propio BUTTON OK, solocon Caption ="insertar o agregar" y su código usa el método Add como enel ejemplo de arriba.

Operaciones y comparaciones son normales, es decir un for renglón hastaque sea menor que Count, etc., en el onclick del segundo botón.

Despliegues igualmente en forma normal, es decir sin ciclo for eigualando Text en ambos, el TStringList y el Listbox.

TAREAS PROGRAMACION C++BUILDER

1.- CAPTURAR Y DESPLEGAR 5 MUEBLES DE HOGAR

2.- CAPTURAR EN UNA LISTA 5 ESTATURAS EN CENTIMETROS, DESPLEGARLASCONVERTIDAS EN PULGADAS ( 1 PULGADA = 2.54 CM.)

3.- CAPTURAR EN UNA LISTA 6 PESOS EN KG., CONVERTIRLOS POSTERIORMENTE ALIBRAS Y SOLO DESPLEGAR EN EL ListBox RESPECTIVO PESOS MAYORES DE 120LIBRAS.

4.- CAPTURAR EN SUS CUATRO LISTAS RESPECTIVAS, MATRICULA, NOMBRE,CALIFICACION DE MATEMATICAS, CALIFICACION DE FISICA, DE 5 ALUMNOS,CALCULAR POSTERIORMENTE UNA LISTA DE PROMEDIOS, Y EN LOS ListBox DESALIDA SOLO DESPLEGAR LOS DATOS DE ALUMNOS APROBADOS.

MÁS INFORMACIÓN

El contenido original se encuentra en https://programacionfacil.com/cpp_builder/tstringlist/
Todos los derechos reservados para el autor del contenido original (en el enlace de la linea superior)
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente