Ver Mensaje Individual
  #4  
Antiguo 10-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
paquechu,

Cita:
Empezado por paquechu
...Pasar como argumento solo una dimensión de un array bidimensional...¿Se puede conseguir?...
Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
   LimMax = 10;
var
   i,j : Integer;
   A1 : Array[1..LimMax] of Integer;
   A2 : Array[1..LimMax,1..LimMax] of Integer;

   // Muestra los elementos de un arreglo pasado como parámetro
   procedure ShowArray(A3 : Array of Integer);
   var
      i : Integer;
   begin
      for i := Low(A3) to High(A3) do
         ShowMessage(IntToStr(A3[i]));
   end;

begin
   // Inicializa los arreglos A1 y A2 : Coloca un 0 en cada elemento
   FillChar(A1,SizeOf(A1),0);
   FillChar(A2,SizeOf(A2),0);

   // Carga en cada elemento del arreglo A2 el valor de la dimensión
   for i := 1 to LimMax do
      for j := 1 to LimMax do
         A2[i,j] := i;

   // Mueve la dimensión 5 (Quinto elemento de un arreglo de 2 dimensiones) a un arreglo de una sola dimensión
   Move(A2[5],A1,SizeOf(A1));

   // Mueve la dimensión 7 (Séptimo elemento de un arreglo de 2 dimensiones) a un procedimiento como parámetro
   ShowArray(A2[7]);
end;
El código anterior define un arreglo de dos dimensiones y pasa solo la dimensión que desea manipular en un momento dado a un arreglo de una dimensión y a un procedimiento como parámetro del mismo.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 10-11-2013 a las 20:00:39.
Responder Con Cita