Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2008
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Array bidimensional dinámico

Buenas,

estoy tratando de declarar un array bidimensional dinámico.

Tengo lo siguiente

Código:
TFila = 1..26;
TColumna = 'A'..'Z';

TTablero = array [TFila, TColumna] of Char;
Código:
 var
    TableroPrograma : TTablero;
    maxFilas        : TFila;
    maxColumnas     : TColumna;
 begin
    SetLength(TableroPrograma,maxFilas,maxColumnas);
Me dice que en SetLength los tipos son incompatibles. He probado con SetLength (TableroPrograma,1,1), con SetLength(TableroPrograma,1,'A') ... pero me sigue dando el mismo error.

¿Qué estoy haciendo mal?

Gracias
Responder Con Cita
  #2  
Antiguo 27-12-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Para mi está mal definido, tu array bidimensional está formado por vectores fila y luego por vectores columna, no tiene sentido.

Saludos
Responder Con Cita
  #3  
Antiguo 27-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si no recuerdo mal, SetLenght sólo permitía cambiar la última dimensión de un array dinámico (consulta la ayuda para estar seguro).

Por otra parte, tu tablero no está definido como un array dinámico, es estático, tiene 26 filas y ¿27? columnas.

Código Delphi [-]
type TmiArray: array of char;
var v:TmiArray
begin
SetLength(v,27);
end;
Aquí TmiArray si es dinámico, porque no define los índices entre corchetes.

Tal y como lo tienes definido, no tienes que preocuparte por el tamaño, siempre que accedas entre los índices definidos, todo irá bien.

Recuerda inicializar los valores del array antes de leer un índice, o leerás cualquier cosa.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 31-03-2015
viveba viveba is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
viveba Va por buen camino
Matriz dinámica.

Puedes hacer lo siguiente:

Código Delphi [-]
type
  Vector = array of Integer;
  Matriz = array of Vector;

var
  C,D: Matriz;

procedure TForm3.Button1Click(Sender: TObject);
var
  i,j,N: Integer;

begin
  N := 10;
  setlength(C,N,N);
  setlength(D,N,N);
  for i := 0 to N-1 do
    for j := 0 to N-1 do
    begin
      C[i,j] := i;
      D[i,j] := j;
    end;
end;

básicamente, así lo hago yo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Array Dinamico Gizhe JAVA 4 04-07-2008 20:39:46
Liberar array bidimensional de botones Raze Varios 2 16-05-2006 13:45:14
pasar como parámetro un array bidimensional nsr048 Varios 2 08-11-2005 11:54:20
Array Dinamico VRO Varios 6 14-06-2005 12:40:16
Array Dinamico senpiterno Varios 4 22-07-2004 18:37:06


La franja horaria es GMT +2. Ahora son las 12:27:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi