D4n1l0d Postado Janeiro 19, 2006 Denunciar Share Postado Janeiro 19, 2006 tipo, eu tenho uma array :array[0..29,0..29]of integer;eu queria que assimque eu pudesse adicionar mais espaço nelaai ficaria uma array de 31 depois de 32 etcalguém sabe como fazer issso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 19, 2006 Denunciar Share Postado Janeiro 19, 2006 Bom, da forma como está definido, é o que se chama de array estático; ou seja; você está dizendo que seu array possui 30 linhas e cada linha possui 30 colunas.Se você quiser redimensionar seu array, você deve definí-lo como dinâmico:var r:array of array of integer; i:Integer; begin SetLength(r, 31); for i := 0 to 30 do SetLength(r[i], 32); end;O código acima aloca memória para um array de 31 linhas e cada linha possuirá 32 colunhas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 D4n1l0d Postado Janeiro 19, 2006 Autor Denunciar Share Postado Janeiro 19, 2006 caramas tipo assim tela:array[0..24,0..29]of integer; eu to fazeno um jogo e o mapa tem o tamanho da array assim o mapa tem 25x30 quando eu vo adicionar um objeto neste mapa eu adiciono na array eu so queria saber a primeira parte [0..24 é o numero de colunas?? e segunda ,0..29] é o numero de linhas?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 D4n1l0d Postado Janeiro 19, 2006 Autor Denunciar Share Postado Janeiro 19, 2006 achei isso no help do delphi e a minha solução foi essa destacada no CODETo declare multidimensional dynamic arrays, use iterated array of ... constructions. For example, type TMessageGrid = array of array of string; var Msgs: TMessageGrid; declares a two-dimensional array of strings. To instantiate this array, call SetLength with two integer arguments. For example, if I and J are integer-valued variables, SetLength(Msgs,I,J); allocates an I-by-J array, and Msgs[0,0] denotes an element of that array. You can create multidimensional dynamic arrays that are not rectangular. The first step is to call SetLength, passing it parameters for the first n dimensions of the array. For example,var Ints: array of array of Integer;SetLength(Ints,10);allocates ten rows for Ints but no columns. Later, you can allocate the columns one at a time (giving them different lengths); for exampleSetLength(Ints[2], 5);makes the third column of Ints five integers long. At this point (even if the other columns haven't been allocated) you can assign values to the third column--for example, Ints[2,4] := 6.The following example uses dynamic arrays (and the IntToStr function declared in the SysUtils unit) to create a triangular matrix of strings.var A : array of array of string; I, J : Integer;begin SetLength(A, 10); for I := Low(A) to High(A) do begin SetLength(A, I); for J := Low(A) to High(A) do A[i,J] := IntToStr(I) + ',' + IntToStr(J) + ' '; end;end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 19, 2006 Denunciar Share Postado Janeiro 19, 2006 Bom, um array of array é uma matriz bi-dimensional. Sempre trabalhei considerando a primeira dimensão como linhas e a segunda como colunas.Se você tiver a mesma quantidade de colunas para todas a linhas, então você pode dar um SetLength(r, 25, 30); então ele terá 25 linhas com 30 colunas em cada linha.Se a quantidade de colunas variar para as linhas, então você terá que fazer um for (ou usar outro código) para a alocar colunas como está no último exemplo onde ele faz um trìângulo alocando colunas conforme o número da linha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 19, 2006 Denunciar Share Postado Janeiro 19, 2006 No próprio Help que você postou, veja onde ele diz:"allocates ten rows for Ints but no columns"Aloca 10 fileiras para Ints mas sem nenhuma coluna.Então acho que você pode considerar a primeira dimensão como linhas e a segunda como colunas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
D4n1l0d
tipo, eu tenho uma array
eu queria que assim
que eu pudesse adicionar mais espaço nela
ai ficaria uma array de 31 depois de 32 etc
alguém sabe como fazer issso?
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.