Fórum Como criar um vetor/matriz dinamicamente. É possivel? #241760
06/07/2004
0
:arrow: [color=red:e398f98f9a]Título alterado pelo Moderador oTTo. Removido ´vetor´.[/color:e398f98f9a]
Anicetojunior
Curtir tópico
+ 0Posts
06/07/2004
Flyskin
Espero que te ajude.
Gostei + 0
06/07/2004
Rômulo Barros
procedure TForm1.StringGrid1Click(Sender: TObject); Var MeuVetor : array of string; begin SetLength(MeuVetor,1000); end
Gostei + 0
06/07/2004
Cabelo
para utilizar um vetor deste tipo, declare em TYPES um vetor do Tipo Record..
type
r_teste = record
s_teste : char
end;
type
r_teste_1 = record
s_teste_1 : string;
s_teste_2 : array of r_teste;
end;
depois disso vc deve declarar uma variável em PUBLIC ou PRIVATE
s_v_teste : array ofr_teste_1;
depois no evento onCreate do Form que está declarado estas variáveis, vc deve utlizar assim :
por exemplo em dados :
for v_i := 0 to Query.recordcount - 1 do
begin
setlength(s_v_teste, length(s_v_teste) + 1);
with s_v_teste[v_i] do
begin
s_teste_1 := Query.fieldbyname(CAMPO).asstring;
for v_j := 0 to Query2.recordcount - 1 do
begin
setlength(s_v_teste[v_i].s_teste2, length(s_v_teste[v_i].s_teste2) + 1);
with s_v_teste[v_i].s_teste_2 do
begin
s_teste := Char(Query2.fieldbyname(CAMPO).asstring);
end;
end;
isto por exemplo seria um master detail de duas query´s distintas dentro de uma matriz..
espero ter ajudado..
sem mais
Cabelo
Gostei + 0
06/07/2004
Dopi
Gostei + 0
06/07/2004
Anicetojunior
como seria isso com uma tabela ?
Gostei + 0
06/07/2004
Cabelo
Se vc estiver dizendo uma tabela no banco de dados seria exatamente como eu disse :
vc dá um select para filtrar os dados que vc deseja trazer do banco de dados.
aí vc declara as variávei assim :
type
r_dados = record
s_dados : string;
end;
depois disso vc deve declarar uma variável em PUBLIC ou PRIVATE
s_v_tabela : array of r_dados;
no form create
Query.SQL.ADD(´select CAMPO_QUERY from TABELA order by CAMPO_QUERY);
Query.Open;
for v_i := 0 to Query.recordcount - 1 do
begin
setlength(s_v_tabela, length(s_v_tabela) + 1);
s_v_tabela[v_i].s_dados := Query.fieldbyname(´CAMPO_QUERY´).asstring;
end;
end;
espero ter ajudado..
só lembre-se que vc deve ter o mesmo número de variáveis declaradas no vetor quento os campos do select..
se precisar poste suas dúvidas..
sem mais
Cabelo
Gostei + 0
07/07/2004
Gollum
a sintaxe da criação de vetor Dinamico é .
var
Variavel : array of string;
begin
setlength(variavel,5);
variavel[0]:=´Dark´;
variavel[1]:=´Dada´;
variavel[2]:=´...´;
variavel[5]:=´Dom´;
showmessage(variavel[5]);
end;
Gostei + 0
08/07/2004
Anicetojunior
Gostei + 0
08/07/2004
Cabelo
O número cinco, é o tamanho máximo do seu vetor, portanto, seria necessário, vc utilizar exatamente como o colega Gollun passou, o problema é o seguinte, se vc quiser criar uma tabela de dados, em RUN Time, não tem como vc saber qual é o número máximo de registros que esta tabela irá conter, por isso é necessário vc criar um vetor do tipo record, assim como eu passei, pq com ele, não interessa quantos registros vc tiver na tabela, ele não irá parar de crescer..
além do que com ele vc cria matrizes, bem simples de utilizar..
sem muita mão de obra, vc deixa o processamento todo para o computador e não para suas mãos..
espero ter ajudado..
sem mais
Cabelo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)