UNIDAD I C++BUILDER PROGRAMACION VISUAL ELEMENTOS BASICOS

13.- COMPONENTE EDIT C++BUILDER (Standard)


image38.jpg

Este componente es el mas importante componente visual, su función principal es manejar , todos los procesos de entrada y salida (input/output) al programa.

En resumen de este componente, se necesita entender lo siguiente:

Este componente Edit, es el equivalente a las variables en cualquier lenguaje de programación, mas la instrucción de captura o despliegue correspondiente, es decir;

a) En BASIC, Input Edad → Edit1

b) En PASCAL, Read(Ciudad) → Edit2

c) En C, printf(”%d”, sueldo) → Edit3

d) En C++, cin.get(nombre,30) → Edit4

e) En Cobol Display metros → Edit5

Ya aclarada su función, es necesario entender primero, que este componente permite capturar datos y también como en el caso del componente Label desplegar datos, textos, mensajes o resultados de operaciones de ser necesario, usando la propiedad Text del componente Edit.

Esta propiedad Text, así como la propiedad Caption en Label, permiten igualarse a muchos procesos básicos, es decir es fácil igualar Text o Caption a un dato, una variable, otro Text u Caption, o una expresión algebraica normal, como en los siguientes ejemplos;

Edit2->Text = 5;
Label3->Caption = "PATO";
Edit4->Text = 3 * 6.2 ;

En principio su valor de default es la palabra Edit1 y es en su propiedad Text donde se modifica, generalmente al principio de un programa se deja en blanco, y al ejecutarse el programa, el usuario lo llena con los datos solicitados o el programa lo llena con el resultado de las operaciones.

Cuando un usuario lo carga con un dato, recordar que el dato almacenado queda de tipo texto, no importa lo que haya escrito el usuario.

Para resolver el problema de usar datos numéricos dentro del Text de un componente Edit, en operaciones matemáticas, solo agregarle a la propiedad Text, las funciones .ToInt() o .ToDouble(), como se muestra en los siguientes ejemplos.

Edit3->Text= Edit2->Text.ToInt() * 5;
Edit5->Text= 3 * pow( Edit2->Text.ToDouble(), double (4) );

este ultimo es el problema de calcular

image39.jpg

En particular, se deberá asociar los Edit con las variables, y solo existirán en principio cuatro tipo de edits.

Formato Edit Tipo De Dato Ejemplo


Edit→Text String Nombre, Ciudad

Edit→Text[1] Char Grupo, Sexo, Letra

Edit→Text.ToInt() Entera Edad, Año

Edit→Text.ToDouble() Doble Sueldo, Pi


Realizar operaciones algebraicas con los componentes edit.

Recordar que el usuario, usara un componente Edit para almacenar los datos de entrada del problema, muchas veces estos datos son de tipo numérico, por ejemplo en un componente Edit se almacena la cantidad de pesos, el precio de un articulo, la edad de una persona, etc.

Solo recordar siempre usar el componente Edit, directamente como una variable cualquiera(con su método o función correspondiente ) y construir la operación o formula con los propios componente o cajas edit.

Es decir, por ejemplo, si se pide resolver el problema de multiplicar dos números cualesquiera, se ocuparan tres ` cajas Edit,(factor1, factor2, producto), es en estos casos donde se usan tres componentes Edit como si fuesen tres variables simples directamente.

Ya en programa se ocupan 3 componentes Label para títulos (Multiplicando, Multiplicador, Multiplicación), tres componentes Edit para los datos (dos proporcionados por el usuario y uno calculado por el programa) y un componente Button(OK) para realizar la operación.

El problema se resuelve de la siguiente manera;

Código y Pantalla de salida es ;
void __fastcall TForm1::Button1Click(TObject *Sender)
Edit3->Text=Edit1->Text.ToInt() * Edit2->Text.ToInt();

image40.jpg

notas:

Conversión de datos o variables numéricas a Texto de un componente Edit.

Para resolver este problema, donde se tiene una variable numérica cargada, con un resultado o dato numérico y se pretende mandarla a un componente Edit o Label para su despliegue, existen dos manera sencillas, estas son;

// área de declaración
int alfa;
double beta;
// área de captura
alfa = Edit1->Text.ToInt();
beta = Edit2->Text.ToDouble();
// área de operaciones
alfa = alfa+3;
beta = beta *5.1;
// área de despliegue y conversión de números a strings o Edits
Label3->Caption = AnsiString(alfa);
Edit4->Text = AnsiString(beta);
Como se observa se puede transferir variables numéricas tanto a Label
como a Edit vía la clase AnsiString.
<code>
sin embargo es mas sencillo usar el método que se usa en el programa dado
de ejemplo para la multiplicación, es decir considerar los componentes
Edit como variables normales, y usar:
<code>
Edit1->Text=Edit5->Text.ToInt(() * Edit2 etc - Edit50 etc

Recordar que es mas correcto usar propiedad Text y métodos ToInt() y ToDouble()), y cargar directamente la caja del Edit resultado.

De nuevo, Edit→Text o Label→Caption permiten que se igualen a una variable, un dato, o una expresión, es decir es valido;

Para el caso de resultados decimales , la salida incluye todo el conjunto de decimales asociados a un tipo double(muchos ceros), para resolver este problema se pueden usar directamente algunos de los métodos asociados a la clase AnsiString , por ejemplo uno de esos métodos es;

FormatFloat(“string de formato”, var double);

La string de formato contiene una serie de simbolos literales que se utilizan para darle el formato de salida deseado, esto simbolos o constantes literales son;

Const. Lit. Significado


0(cero) Rellena con 0(ceros) todas las posiciones indicadas, ejemplo “0000.00” para el numeró 23.4 la string de salida seria 0023.40

# Constante muy usada para formato de valores numéricos, esta constante solo despliega el valor numérico normal.

. Se utiliza para separar la parte entera de la parte decimal.

,(coma) Se utiliza para separar el valor numérico en

UNIDADes de millar.

E+, E-, e+, e- Se utilizan para convertir a notación científica exponencial el valor de salida.


Notas;

El valor de salida es redondeado a tantos decimales como 0s, o #s, existan en la string de formato.

Si la string de formato no incluye un punto decimal, entonces el resultado es redondeado al valor entero mas cercano.

ejemplo;

button1click(---){
// área de declaración
double alfa;
// captura y conversión
alfa = Edit1->Text.ToDouble();
// operaciones
alfa = alfa / 3.1416 ;
// conversión y despliegue
Edit2->Text= FormatFloat("###,###.##", alfa);
}

También es valido usar FormatFloat() con lo visto en Edit, es decir es valido y mas correcto;

Edit5->Text= FormatFloat("###.##", Edit3->Text.ToInt() * 3.1416);

En resumen, este componente Edit, es el componente mas importante y elemental en todo problema que involucre el procesamiento de datos en ambientes visuales, se debe acostumbrar a considerarse como un elemento importante en cualquier problema visual, y acostumbrarse a procesarlo como si fuese una variable normal cualesquiera.

Se construye y resuelve el segundo programa del modelo de solución del área del triángulo.

Para crear y diseñar la forma y sus componentes se ocupa, una forma, seis labels, tres edits y un Button, quedando así;

a) Pantalla de diseño

image41.jpg

b)Programa

El código o miniprograma ( es miniprograma porque no se tiene que programar mucho de la pantalla), solo diseñarla, y dentro del evento OnClick del componente Button, queda así;

void __fastcall TForm1::Button1Click(TObject *Sender)
Edit3->Text=FormatFloat("###.##",Edit1->Text.ToDouble() *
Edit2->Text.ToDouble()/ 2 );

c) Pantalla de ejecución o de salida

image42.jpg

Recordar que cuando se capturen los datos de base y altura, no dejar espacios en blanco antes del primer numero o se darán problemas y errores de conversión a valores numéricos.

Para resolver mejor este problema de formatos mas adecuados para captura de datos, se usaran nuevos componentes que se analizan mas adelante.

TAREAS PROGRAMACION C++BUILDER

1.- CONVERTIR A PROGRAMAS TODOS LOS PROBLEMAS VISTOS EN EL MODELO DE SOLUCION.

Politica de Privacidad