FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Delphi 5 errores en u subprograma
hola, que tal? Soy nuevo, y es que es el primer año que programo en delphi (bueno, los primros meses...) y aun no entiendo el depurador ni tengo una tabla donde me diga el error en concreto como lo tenia en pascal... bueno, el caso es que no se por qué me sale en este subprograma un error.
El subprograma lo que quiero es que entrando un entero, lo pase a booleano y la forma que le he dado es: FUNCTION f(Fila:integer):char; BEGIN CASE Fila OF 0: f:='0'; 1: f:='1'; 2: f:='2'; 3: f:='3'; 4: f:='4'; 5: f:='5'; 6: f:='6'; 7: f:='7'; 8: f:='8'; 9: f:='9'; end; {case} END;{function fila} El error que me da es Ubarquitos.pas (44) Error Return value of function 'f' might be undefinned cuando pulso el error me sale justo la linea roja en el " END; {function fila} " No se si lo que tendria que hacer seria, en vez de meterlo directamente en la variable de la funcion f el caracter que quiero que tenga, poner una variable char auxiliar y que al final del case poner f:=variableauxiliar, es que asi me sale otro error, me pone cuando es f:=auxi Not enought actual parameters... que desesperacion ajjajaa Es que no estoy seguro del todo si eso podria ayudar porque es del mismo tipo |
#2
|
|||
|
|||
por si ayuda, este subprograma lo uso en el procedimiento generarflota
en la unidad, en interface he puesto este orden: VAR PROCEDURE Inicializa(solucion:TTablero); PROCEDURE GenerarFlota; FUNCTION c(columna:integer):char; FUNCTION f(Fila:integer):char; {igual que la anterior pero para la fila} procedure colocandobarco(VAR solucion:TTablero;VAR valido:boolean; fila,columna,tipobarco,plusbarco,direccion:integer; c,f:char); {coloca el barco en la matriz} SI subo c y f a arriba del todo me dice que despues de (columna: integer en vez de ) tengo que poner ; (lo mismo para ambas) |
#3
|
||||
|
||||
Hola,
Usa "Result" en lugar de "f". Creo que antes, con Pascal, era posible retornar el valor de una función mediante el nombre de la propia función, pero, en Delphi no sé si hay que "tocar" alguna directiva del compilador o algo así. Pero, como digo, prueba con "Result", que es la forma en que en Delphi se asigna el resultado de las funciones. Por ejemplo:
|
#4
|
||||
|
||||
Bueno, no es exactamente un Error, es un Warning... el compilador a encontrado que en tu función hace falta asegurar el hecho de que ella te devuelva siempre un valor y por eso te muestra dicha precaución.
Por ejemplo, ¿Que pasaría si alguien coloca como parametro un valor que este fuera del rango del 0..9?, por ejemplo el 1000, seguramente dicha función te devolvera el número que "caiga" luego de pasar 1000 veces evaluando opcion por opcion (La numero 1000 sera tu resultado, en este caso el 8). Como solucionar este "problemita", asegurandonos que esta función te devuelva un valor "fijo" en caso de que el parametro no tenga un valor que este dentro de ese rango 0..9, asi por ejemplo:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 22-11-2007 a las 19:48:36. Razón: Colocar comentario en el codigo |
#5
|
|||
|
|||
ahora lo que si que me salta es un error cuando hago la asignacion para la function
Es decir yo en mi codigo pongo: f:=fila; que la funcion f use fila, puesme dice [error] Ubarquitos.pas (142) : Not enought actual parameters |
#6
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#7
|
|||
|
|||
es que el valor de fila lo saco de un random, es decir
fila:=random(10); {se calcula el punto de partida de la fila} columna:=random(10); {y el de la columna} c:=columna; {y se traspasan a char} f:=fila; los subprogramas son f y c Última edición por tuflotas fecha: 22-11-2007 a las 19:54:51. Razón: se me olvido poner una aclaracion |
#8
|
|||
|
|||
ya lo entendi, jope, no pensaba que estuviera tan oxidado en esto ...
|
#9
|
||||
|
||||
Otra cosa, no se que pretendes con dicha función, pero si lo que quieres es convertir de numerico a caracter, puedes lograr ese efecto usando la función IntToStr que viene con delphi...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi 7 a Delphi 2007.Errores en la migracion | Gaby123 | Varios | 2 | 22-05-2007 23:25:20 |
Errores Delphi W98 - XP | marcial | Varios | 0 | 21-01-2006 19:12:11 |
Errores en Delphi 7 con win xp | Gabriel2 | Varios | 6 | 25-08-2005 17:02:47 |
Errores Delphi 5 | sur-se | OOP | 2 | 09-05-2005 11:28:51 |
Errores en Delphi | agonzalez | Varios | 1 | 16-03-2004 18:22:11 |
|