3.2.6. Programación en Lazarus: Ejemplo del uso del val y str

La función val permite convertir un string (como el caso del texto del edit) en valor (número). Su formato es:

VAL(variable_string, variable_numérica_que_almacenará_el_valor_del_string, variable_numérica_que_almacenará_un_código_de_error).

Así, si tenemos un Edit1 y en el colocamos un número, para convertir ese número (que se encuentra en el edit como un texto o string), escribiremos en el código del programa lo siguiente:

VAL(Edit1.Text,A,D);

donde A es una variable entera o real y D es una variable entera. La función entonces cambiará el valor que se encuentra en el edit1.text a un valor numérico y lo almacenará en la variable A. Si la conversión es efectiva, en la variable D se almacenará un cero y si hay error en la conversión, en D se almacenará un valor diferente de cero. De esta manera podemos validar que efectivamente el proceso de conversión fue correcto. Un ejemplo de esa validación será:

if D = 0 then
ShowMessage(‘Error en los datos’);

Así mismo, en en el segundo procedimiento val(edit2.text,B,D) almacenará lo que hemos colocado en el texto de edit2 en la variable numérica B.

La función STR hace lo contrario: convierte un valor o número a string. Su formato es: Str(variable_numérica, variable_string).
Así por ejemplo, Str(comision:6:2,sueldo) convertirá el valor almacenado en la variable comision y lo almacenará en el string sueldo, con 6 cifras y dos decimales.

Ejemplo; Queremos sumar dos números que se encuentran cada uno en un edit (edit1 y edit2) y al hacer clic en un boton, nos suma los dos valores y nos muestra el resultado en un tercer edit (edit3). El proceso de creación del programa es el siguiente:

1. Colocamos en el formulario tres edit: edit1, edit2 y edit3 y un botón al que en su propiedad caption le escribimos el signo +
2. El procedimiento es como sigue: Como lo que coloquemos en los edit son string siempre, al valor colocado en el edit1 lo vamos a convertir y almacenar en la variable primero que será declarada como real, utilizando la función VAL. Al valor colocado en el edit2 lo vamos a convertir y almacenar en la variable segundo que será real. Sumamos los dos números: primero + segundo y el resultado lo vamos a almacenar en la variable resultado que también deberá ser declarada de tipo real. Como la variable resultado es de tipo real, para poder almacenarla en el edit3 (que es de tipo string), debemos convertirla de número a string, por medio de la función STR.
3. Al darle doble clic al botón + escribimos:

procedure TForm1.Button1Click(Sender: TObject);
var
primero, segundo, resultado : real;
D : integer;

begin
val(edit1.text, primero, D);
If D 0 then
Showmessage( ‘ Error en datos ‘ );
val(edit2.text, segundo, D);
If D 0 then
Showmessage( ‘ Error en datos ‘ );
resultado := primero + segundo;
edit3.text := str(resultado:6:2,sueldo);

end;

Deja un comentario