UNIDAD I DELPHI PROGRAMACION VISUAL ELEMENTOS BASICOS

12.- COMPONENTE EDIT (Standard)


image38.jpg

Este componente es el mas importante componente visual de Borland Delphi, 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.

Es importante entender que la propiedad TEXT de este control o componente se cargara o se leera como una STRING, es decir para procesarlo se usa codigo similar a :

Edit10.Text := '3,1416';

String temporal := Edit10.Text;

Observar que aunque se cargue con un dato aparentemente de tipo REAL la propiedad TEXT solo puede contener STRINGS.

Se usaran mucho a lo largo de todo el curso las siguientes funciones de BROLAND DELPHI para estar conviertiendo de STRINNS a VALORES NUMERICOS y tambien de VALORES NUMERICOS a STRINGS.

a) Val(Edit1.Text,temporal,error) → ESTA FUNCION TOMA LA STRING QUE ESTA EN TEXT Y LA MANDA O CARGA LA VARIABLE NUMERICA (INTEGER O REAL ) TEMPORAL, APARTE VAL CARGA UNA VARIABLE INTEGER ERROR CON UN CODIGO DE ERROR SI SE DIO ALGUN ERROR EN EL PROCESO DE CONVERSION, ES DECIR VAL SE USA PARA CONVERTIR TEXT A VARIABLES NUMERICAS.

B) STR( 3.1416,temporal ) → SE USA PARA CARGAR UNA VARIABLE STRING TEMPORAL CON UN DATO O VALOR NUMERICO DETERMINADO, RECORDAR QUE SE USA PARA CONVERTIR DATOS NUMERICOS A STRINGS, NO TEXT

C) Edit1.Text:=FloatToStr(123.45) → SE USA PARA CARGAR LA PROPIEDAD TEXT DE UN EDIT CON UN DATO O VARIABLE ENTERA O REAL.

D) FloatToDecimal (PROCEDIMIENTO) → CONVIERTE U FLOTANTE A DECIMAL

E) FloatToStr (FUNCION) → EJEMPLO CASO C) CONVIERTE FLOTANTE A STRING

F) FloatToStrF (FUNCION) → SIMILAR A C) PERO SE PUEDE AGREGAR UN FORMATO, PARTE ENTERA Y DECIMALES (VER EJEMPLOS EN PROGRAMAS )

G) FloatToText(FUNCION) → CONVIERTE FLOTANTES A TEXT, INCLUYENDO FORMATO, PARTE ENTERA Y DECIMALES.

H) FloatToTextFmt(FUNCION) → CONVIERTE FLOTANTE A TEXT USANDO UN FORMATO DETERMINADO.

I) FormatFloat(FUNCION) → FORMATEA UN FLOTANTE:

EJEMPLO:

EDIT1.TEXT := '23.456789';

Format('%0:2f',[Edit1.Text]) → EL DESPLIEGUE SERA 23.45

ALGUNAS CONSTANTES DE FORMATEO SON:

%5:5d –> despliega cinco digitos enteros y cinco decimales, si el dato tiene menos partes enteras se rellenara con ceros 0000.

%u –> similar a %d excepto que no muestra el signo (+/-) del dato.

%e –> despliega en notacion cientifica o exponencial.

%f –> fijo dos decimales por default.

%g –> el compilador decide si lo manda a decimal o exponencial.

%n –> similar a %f solo que los miles se separan con comas.

%m –> formato monetario.

%x –> lo convierte a hexadecimal.

J) StrToCurr(FUNCION) –> CONVIERTE UNA STRING A FORMATO MONETARIO.

H) StrToFloat (FUNCION) –> CONVIERTE STRING A FLOTANTE.

I) TextToFloat(FUNCION) CONVIERTE TEXT A FLOTANTE.

ing-point value from a null-terminated string.

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 USAR LAS FUNCIONES APROPIADAS, como se muestra en el siguiente ejemplo.


temp := StrToFloat(Edit1.Text)* 5;

Edit1.Text := FloatToStrF(temp,ffGeneral,5,2); NOTA: ffCurrency, ffExponent, ffFixed, ffGeneral, ffNumber


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.

Codigo;

procedure TForm1.Button1Click(Sender: TObject);
var
temp:Real;
begin
temp := StrToFloat(Edit1.Text)* StrToFloat(Edit2.Text);
Edit3.Text:=Format('%0.2f',[temp]);
end;

corrida:

image306.jpg

notas:

Como se observa este componente Edit permite capturar datos por parte del usuario del programa.

Es mas sencillo considerar, estos componentes como variables normales y usarlos directamente.

Solo en problemas algebraicos usar propiedad Text con las funciones apropiadas.

Respetar la ortografía en el ejemplo, sobre todo en las instrucciones (las que terminan con ;)

Si son muchas operaciones en un problema, el procedimiento es similar, solo resolverlo por partes ya que una formula que contenga cuatro o cinco Edit, se convierte en un renglón de código gigante.

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:

Edit3.Text:=Format('%0.2f',[temp]);

Edit8→Text.ToDouble();

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 métodos asociados a la clase AnsiString , por ejemplo uno de esos métodos es;

Format('string de formato', var real);

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.


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.

EL RESUMEN DE CONVERSION DE DATOS A COMPONENENTE Y QUE SE USA A LO LARGO DE ESTE CURSO EN GENERAL DESCANSA EN LAS SIGUIENTES 4 FUNCIONES.

1.- IntToStr( dato o variable integer);

2.- StrToInt( variable string o propiedad text de un componente visual);

3.- FloatToStr( dato o variable real);

4.- StrToFloat(variable string o propiedad text de un componente visual);

ESTAS CUATRO FUNCIONES REPITO SERAN LAS MAS UTILIZADAS A LO LARGO DEL CURSO, PERO DE TODOS MODOS ESTUDIAR Y RECORDAR TODAS LAS ANTERIORES)

PROGRAMA EJEMPLO

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

image307.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 Click del componente Button1, queda así;

procedure TForm1.Button1Click(Sender: TObject);
var
temp:Real;
begin
temp := StrToFloat(Edit1.Text)* StrToFloat(Edit2.Text)/ 2;
Edit3.Text:=Format('%0.2f',[temp]);
end;

c) Pantalla de ejecución o de salida

image308.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 BORLAND DELPHI

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

Politica de Privacidad