Delphi - Problemas con matrices y funciones

 
Vista:

Problemas con matrices y funciones

Publicado por Sergio Cantero (8 intervenciones) el 25/10/2003 09:35:46
holaaa!!!, tengo un probelma con un programita que estoy haciendo en delphy 7, paso a explicar:
Resulta que tengo declaradas 2 matrices como globales y ademas tengo 2 funciones una que se encarga de cargar matrices y la otra de compararlas, dichas matrices son pasadas por parametro a dichas funciones. El problema que tengo es que cuando termino de cargar las 2 matrices con la funcion correspondiente y llamo a la funcion de comparacion, las matrices estan vacias, osea que cuando le paso por parametro las matrices recien cargadas a la funcion comparar estas estan vacias y no tengo idea porque es la razon...desde ya disculpen mi ignorancia y agradezco de antemano la ayuda del que pueda tirarme una idea de cual puede ser el problema ...muchas gracias y saludos!!
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:Problemas con matrices y funciones

Publicado por Diego Romero (636 intervenciones) el 25/10/2003 11:07:19
¿Cómo tienes declaradas las cabeceras de las funciones?
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:Problemas con matrices y funciones

Publicado por sergio cantero (8 intervenciones) el 26/10/2003 05:22:18
En realidad tengo 1 procedimiento cargar Matriz y una funcion comparar matriz la cual me devuelve verdadero si las matrices son iguales, de lo contrario falso. Las declaraciones de las cabeceras son asi:

function compararMatriz(mat1, mat2: mat): boolean
{"mat" es un tipo de dato que lo cree en la seccion TYPE asi: mat=array [1..4,1..4] of char; }

procedure CargarMatriz(matriz: mat);
{aca tambien utilizo el mismo tipo de dato "mat"}

el procedimento donde llamo ambos codigos es asi:

{ puzzleObj y puzzle son justamente las matrices declaradas como globales}
procedure TForm1.Button17Click(Sender: TObject);
begin
cargarMatriz(puzzleObj);
cargarMatriz(puzzle);
if compararMatriz(puzzleObj,puzzle) then
edit1.Text:='son iguales!!! :0)'
else
edit1.Text:='NOOO son iguales!!! :0(';
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:Problemas con matrices y funciones

Publicado por Diego Romero (636 intervenciones) el 26/10/2003 23:24:05
Tal como me lo temía, estas pasando los parámetros a los procedimientos por valor y no por referencia. Debería ser así:

function compararMatriz(VAR mat1, mat2: mat): boolean

procedure CargarMatriz(VAR matriz: mat);

Aunque en el caso de la primera (compararMatriz) no sería necesario.
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:Problemas con matrices y funciones

Publicado por Sergio Cantero (8 intervenciones) el 27/10/2003 05:47:08
Muchas gracias Diego, yo tambien estuve probando por mi parte y otra forma de solucionar este problema que encontre fue declarando los parametros como salida con OUT en el procedimiento cargarMatriz, lo cual tambien me funciono.

procedure CargarMatriz(OUT matriz: mat);

pero tu solucion me parece que es la mas correcta no se que pensas vos? ...desde ya muchas Gracias y saludos!!!

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:Problemas con matrices y funciones

Publicado por Diego Romero (636 intervenciones) el 27/10/2003 15:37:04
Creo que VAR es más adecuado para este caso.
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

no puedo crear matriz de botones

Publicado por Diana Chacón (1 intervención) el 02/03/2005 19:44:06
Tengo dos días probando para hacer una matriz de botones para crear un juego de gato tridimensional, necesito ayuda, lo más rápido posible, para ayer.
les agradecería su colaboracion.
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

Problemas con matrices

Publicado por Angélica Espinoza R. (3 intervenciones) el 02/03/2005 20:43:20
Tengo que desarrollar un juego gato utilizando matriz multidimensional y no entiendo cómo crearla. Podrías 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:Problemas con matrices

Publicado por [endless_loop] (11 intervenciones) el 03/03/2005 00:08:33
definis un array bidimensional de objetos TButton.

var
matriz : array[1..m,1..n] of TButton;
{m y n son dos valores q elegis vos}

y al crear el programa usas un ciclo en el form1.create
sean i,j dos var enteras

for i := 1 to m do
for j := 1 to n do
begin
matriz[i,j] := TButton.Create(self);
matriz[i,j].visible := true;
{das el valor necesario para el caption, ancho, alto, x, y, ...}
matriz[i,j].onclick := procedmanejadordeevento;
....
end;

{nota: no se si esa asignacion onclick, pero si es q se puede, procura crear un procedure que tome un parametro SENDER: TOBJECT, y en el cuerpo buscas \"quien es Sender\" y trabajas con él.
Lo que podes hacer tambien es crear una subclase del boton y redefinir el ONCLICK, creando una nueva clase de EVENTO, que ademas tome un I y un J como parametro....pero es mas complicado y no lo voy a explicar x aca :s}
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