Delphi - verificaion de funcion

 
Vista:

verificaion de funcion

Publicado por Luchito (9 intervenciones) el 14/12/2004 01:49:17
hola tengo la siguiente funcion y queria ver caso me podrian ayudar a ver por
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:verificaion de funcion

Publicado por luchito (9 intervenciones) el 14/12/2004 01:53:35
sorry pero no se que paso que se envio el mensaje anterior sin el codigo bueno tengo el siguiente y me gustaria saber por que me marca error, el objetivo de esta funcion es que tome el valor que se carga en el edit 1 y realize toda la operacion para luego verificarlo con lo que este en el edit 16, aca va la funcion espero que me puedan ayudar ademas el error qye me marca es el siguiente : [Error] Unit2.pas(96): Statement expected but 'FUNCTION' found bueno no se caso esta mal definida la funcion no se realmente que podra tener
Function( ValRut(edit1.text: String):String);
var
Cuenta, Suma, totalrut, Revisa : Integer;
begin
Suma:=2;
TotalRut:=0;
For Cuenta:=Length(Trim(edit1.text)) downto 1 do
begin
if Suma>7 then Suma:=2;
Totalrut:=Totalrut+((StrToInt(copy(edit1.text,cuenta,1)))*suma);
Suma:=Suma+1;
end;
Revisa:=Round((frac(Totalrut/11)*10)+0.5);
Revisa:=11-revisa;
If Revisa=10 then Result:='K'
else
begin
If Revisa=11 then Result:='0'
else Result:=IntToStr(Revisa);
end;
end;
if (Result = edit16.text) then
begin
showmessage('rut,valido');
end
else
begin
showmessage('rut invalido')
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificaion de funcion

Publicado por Kwerty (112 intervenciones) el 14/12/2004 02:48:58
Ese error usualmente tiene que ver con algún end que falta en algún lado. Es decir, se esperaba una sentencia peqro se encontró una función. De todos modos, le he echado un vistazo al código y veo (si no me he equivocado) que los begin y end cierran el código antes de la sentencia if (Result=Edit16.Text) then... Compruébalo.
Por otro lado, la declaración de la función es muy rara (no había visto antes una así). Una función se declara así:

function NombreDeLaFuncion (ParametroEntrada1: String; ParametroEntrada2: Integer): ParametroSalida;

Si quieres pasarle a la función el valor del Edit16, deberás declararla así:

function MiFuncion (valRuta: String): String;
{Implementacion}

Luego, cuando quieras llamarla, la llamas así MiFuncion (Edit16.Text);

Espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simple

Publicado por Janus (32 intervenciones) el 14/12/2004 13:47:39
Lo que sucede es que en tu función encerraste el nombre del módulo entre paréntesis. En vez de :

Function( ValRut(edit1.text: String):String);

Debería ir:

Function ValRut(edit1.text: String):String;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta como implementrar la funcio

Publicado por luhito (9 intervenciones) el 14/12/2004 16:23:45
hola amigos la funcion la probe y funciono pero lo que pasa s que quiero que el resultado lo muestre en un edit, y otra cosa si tengo una cadena de numeros guardados en mi base de datos 123456789 y quiero que me muestre en un edit 12345678 y en otro edit 9 como se hace eso ???

gracias... de antemano..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta como implementrar la funcio

Publicado por Dr Juzam (821 intervenciones) el 14/12/2004 16:43:49
Si la función devuelve un string, pues así.

Edit1.Text:=FuncionQueDevuelveUnString (ValorDeEntrada);

Con respecto a lo que quieres que te muestre los resultados en dos edits, puedes hacer algo así:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:='';
Edit3.Text:='';
Edit2.Text:=Copy (Cadena, 0, Length(Cadena)-1);
Edit3.Text:=Cadena[Length(Cadena)];
end;

Si cadena es '123456789' entonces el ejemplo anterior copia '12345678' al Edit2 y '9' al Edit3. Si lo que quieres es copiar hasta que encuentres un determinado caracter, deberás hacer una búsqueda dentro de la cadena.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta comprendi pero no se como aplicar

Publicado por Luchito (9 intervenciones) el 14/12/2004 18:58:20
hola comprendi lo que dices mi idea es la siguiente..para ver caso me ayudan con esto porfavor,,..
quiero juntar lo que esta en el edit1 conlo que esta en el edit2
una cosa haci
a:= add('edit1.text edit2.text); cosa que a quede con lo que tiene edit1 y edit 2 si edit 1 tiene 111 y edit 2 tiene 222 a quedaria haci a= 111222 ;

como puedo hacer eso ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta comprendi pero no se como aplicar

Publicado por Dr Juzam (821 intervenciones) el 14/12/2004 20:56:41
Hay un operador de cadenas que es +.
Por ejemplo, si en el edit1 hay 'Hola' y en el Edit2 hay 'mundo' y quieres juntar las dos cadenas en una variable, pues haces
a:=Edit1.Text+Edit2.Tex;
Esto da 'Holamundo'. Para poner un espacio, ponermos algo así:
a:=Edit1.Text+' '+Edit2.Text;
Y Queda 'Hola mundo'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Juzam esta = al tuyo y pero no funciona chequeaeto

Publicado por ju_goso (22 intervenciones) el 15/12/2004 00:35:49
C: definida como integer

C:= edit1.text+'-'+edit2.text; me marca error de incompatibilidad;
C:= StrToInt(edit1.text)+'-'+StrToInt(Edit2.Text); lo mismo error?? como debo hacer esto entonces
lo que quiero concatenar son numeros pero separados pòr un - espero puedas ayudarme..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Juzam esta = al tuyo y pero no funciona chequea

Publicado por Dr Juzam (821 intervenciones) el 15/12/2004 01:08:16
Vamos a ver, un integer es un número y no existe ningún numero así 233-234 ¿no? Por eso, si defines C como integer no te va a dejar meterlo nunca. Sin embargo, si defines C como una cadena de texto (un string) podrás ponerlo como quieras y quedará un string así '321-324'.
Sin embargo, sigo sin ver el problema de meter dos números en dos campos como claver primaria. Defines a dos campos integer como clave primaria de la tabla y así, si sólo si los dos campos son diferentes te permite hacer la inserción, por ejemplo. Y de este modo te liberas de un montón de problemas, además del hecho de que se trabaja de manera más lenta con cadenas de texto que con números.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar