Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com Array


Bettega

Pergunta


Estou tentando fazer um Form de Pesquisa, utilizando arrays.

Fiz da seguinte forma, mas não consigo definir os dados do array.

Sempre dá erro na declaração do array.

procedure TF_Pesquisa.FormShow(Sender: TObject); // Para definir os dados do DBGrid.
var
aCampos : array [ 1..2, 1..3 ] of String ;
// Campo 1 = Nome do campo da Tabela a ser pesquisado
// Campo 2 = Título no DBGrid
// Campo 3 = Largura do campo do DBGrid
i : Integer ;

begin

  if DONDE.Caption = 'Cad_Clientes' then
    aCampos := [ [ 'COD_CLIENTE', 'Cód.', '70' ], [ 'NOME', 'Cliente', '420' ] ] ;

  if DONDE.Caption = 'Cad_Fornecedores' then
    aCampos := [ [ 'COD_FORNECEDOR', 'Cód.', '70' ], [ 'RAZAO', 'Fornecedor', '420' ] ] ;

  for i := 1 to 2 do begin
    DBGrid1.Columns.Add ;
    DBGrid1.Columns[i-1].FieldName     := aCampos [ i, 1 ] ; // Coluna 0
    DBGrid1.Columns[i-1].Title.Caption := aCampos [ i, 2 ] ;
    DBGrid1.Columns[i-1].Width         := StrToInt ( aCampos [ i, 3 ] ) ;
  end;

end ;

procedure TF_Pesquisa.Ed_PesqExit(Sender: TObject);  // Ed_Pesq = tEdit - palavra a ser localizada
begin
  Query1.Close ;
  Query1.SQL.Clear ;
  if DONDE.Caption = 'Cad_Clientes' then begin
    Query1.SQL.Add ( 'Select * from Cad_Clientes' ) ;
    Query1.SQL.Add ( 'Where NOME like "%' + Ed_Pesq.Text + '%" ' ) ;
    Query1.SQL.Add ( 'Order by NOME' );
  end;
  if DONDE.Caption = 'Cad_Fornecedores' then begin
    Query1.SQL.Add ( 'Select * from Cad_Fornecedores' ) ;
    Query1.SQL.Add ( 'Where RAZAO like "%' + Ed_Pesq.Text + '%" ) ' ) ;
    Query1.SQL.Add ( 'Order by RAZAO' );
  end;
  Query1.Open ;
end ;


A pesquisa está funcionando perfeitamente.

O problema está na definição do array.

Obrigado,

Bettega.

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

A pesquisa está funcionando perfeitamente.

O problema está na definição do array.

Se a pesquisa está funcionando, não estou entendendo o motivo de se usar array

voce esta querendo armazenar no array ( FieldName ,  Title  e Width ) do campo da tabela

não vejo a lógica disso...

explique melhor a sua idéia

 

Link para o comentário
Compartilhar em outros sites

  • 0

voce tem muitos exemplos na internet

https://www.google.com.br/search?source=hp&ei=TnTTWrOwKomxwATgioPQCw&q=matriz+delphi+exemplo&o que=matriz+delphi&gs_l=psy-ab.1.1.0l2j0i22i30k1l5.1995.6615.0.11063.13.13.0.0.0.0.116.1373.1j12.13.0....0...1.1.64.psy-ab..0.13.1370...0i131k1j0i22i10i30k1.0.T5kzbncT29k

https://www.devmedia.com.br/arrays-dinamicos-no-delphi/26960

mas só exemplificando o seu array

   aCampos : array [ 1..2, 1..3 ] of String ;

    aCampos[1,1] := /// atribuir um valor tipo string
    aCampos[1,2] := /// atribuir um valor tipo string
    aCampos[1,3] := /// atribuir um valor tipo string
    aCampos[2,1] := /// atribuir um valor tipo string
    aCampos[2,2] := /// atribuir um valor tipo string
    aCampos[2,3] := /// atribuir um valor tipo string

o valor atribuido até poderia ser assim:

aCampos[1,1] :=   ''COD_FORNECEDOR , Cód. , 70';

mas não da maneira que voce colocou

OBS: Se voce olhar no Help do Delphi, vais achar exemplos e explicações sobre arrays

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
6 horas atrás, Jhonas disse:

aCampos : array [ 1..2, 1..3 ] of String ;

 

Obrigado pela resposta, mas da forma que você exemplificou ( com 6 linhas ), eu fiz utilizando variáveis.

Nos exemplos que eu encontrei,  só consigo utilizar array como constante, porém no formato que eu gostaria de fazer, precisaria ser um array com dados variáveis.

De qualquer forma, agradeço a atenção.

Bettega.

Link para o comentário
Compartilhar em outros sites

  • 0

no formato que eu gostaria de fazer, precisaria ser um array com dados variáveis.

o que voce quer é criar arrays dinamicos...  veja nesses links

https://www.google.com.br/search?source=hp&ei=RdPTWtKXKIyJwgTY4IWYCA&q=array+dinamico+delphi&o que=array+dina&gs_l=psy-ab.1.1.0l7.1253.3489.0.5354.10.10.0.0.0.0.111.966.8j2.10.0....0...1.1.64.psy-ab..0.10.962...0i131k1.0.Hxhp2-1f9k0

abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...