hammergod 0 Denunciar post Postado Maio 29, 2008 beleza... estou com um problema no array o tamanho dele é 5 certo só que eu queria fazer o seguinte...o array armazenou as 5 posições q vai ser tocada.. quando acabar de tocar a ultima posição automaticamente o "i" volta a valer 1 só que eu queria colocar as proximas 5 posição que vaum ser tocadas no array..6,7,8,9,10 alguem pode me ajudar.. o codigo é esse q toca as 5 posições <div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'> begin for i := 1 to 5 do if i < 5 then begin Lista.RecNo :=i; Channel := BASS_StreamCreateFile(FALSE, PChar(Lista.FieldByName('Arquivo').AsString), 0, 0, 0); end; Play(0); TocouPrima := true;</div> Compartilhar este post Link para o post Compartilhar em outros sites
Discorpio 1 Denunciar post Postado Maio 29, 2008 Boa tarde Hammergod. Voce pode utilizar um Array Dinâmico, onde voce pode redimencioná-lo a medida que quiser. Arrays Dinâmicos são aqueles arrays que inicialmente são declarados sem a especificação dos seus índices, depois é só redimencioná-lo assim: var Channel: array of Integer; begin SetLength(Channel, 5); .... end; Só que devo alertar que: 1º) Se voce dimenciona o array com 5 índices, então a faixa de índices será de 0 (zero) a 4 (quatro), se for 10 então de 0 (zero) a 9 (nove). 2º) Mesmo que voce o redimencione a segunda vez, aumentando o número de índices, não se preocupe que os valores armazenados nos índices anteriores não serão apagados. Exemplo: var Channel: array of Integer; I: Integer; begin SetLength(Channel, 5); for I := 0 to 4 do Channel[I] := I; for I := 0 to 4 do ShowMessage(IntToStr(Channel[I])); SetLength(Channel,10); for I := 5 to 9 do Channel[I] := I; for I := 0 to 9 do ShowMessage(IntToStr(Channel[I])); end; Um abraço. Compartilhar este post Link para o post Compartilhar em outros sites