adrianno 7 Denunciar post Postado Agosto 16, 2011 Olá gente, gostaria de saber a forma correta de criar e depois chamar um procedure no delphi, EXE: no meu form teria ações que precisaria repetir, varias vezes. como exemplo uma consulta SQL olha só eu sei que nao esta completo , porem nao vou digitar todo o necessario aqui SQL.add('select * from clientes '); showmessage('achei estes clientes'); exato, porem queria fazer esta mesma consulta sem duplicar ela como faço ela dentro de um procedimento e chamo de outro lugar no form toda vez que eu quiser procedure NomeDoProcedimento(Parâmetro1: Tipo; ParâmetroN : Tipo); var {declaração de variáveis locais á função quando necessárias} begin SQL.add('select * from clientes '); showmessage('achei estes clientes'); end; Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 16, 2011 Procedures e Functions tem uma estrutura padrão para sua declaração. Você pode declarar sua procedure na seção Implementation ou dentro de uma outra procedure/function. A estrutura mínima para procedures é: Procedure {Nome Procedure}; //Variaveis,Constantes e Funçoes internas a prcedure são declaradas aqui, caso necessário Begin //Comandos end; e para Functions é: Procedure {Nome Procedure}:{Tipo de resultado(String, Integer, Boolean, etc)}; //Variaveis,Constantes e Funçoes internas a prcedure são declaradas aqui, caso necessário Begin //Comandos Result := {Retornando resultado da função}; end; Considerando o exemplo apresentado, acredito que você queira fazer algo próximo a isto: Procedure BuscaClientes; begin if SQLQuery1.Active = True then SQLQuery1.Active := False; SQLQuery1.SQL.Clear; SQLQuery1.SQL.Add('SELECT *'); SQLQuery1.SQL.Add('FROM tbClientes'); Try SQLQuery1.Open; Except ShowMessage('Falha ao buscar lista de clientes!'); end; DataSource1.DataSet := SQLQuery1; end; Compartilhar este post Link para o post Compartilhar em outros sites
adrianno 7 Denunciar post Postado Agosto 16, 2011 é isso ai, suponha que eu precise fazer este bloco de codigo 2 ou 3 vezes em um form, bastaria então apenas , como eu chamo ele : Procedure botao1click; begin BuscaClientes(); /// aqui eu chamo ele em diversas situações? end; Procedure CampoTextoOnchange; begin BuscaClientes(); end; ??? seria assim ? Porque precisaria executar um bloco de codigo, por exemplo quando preciso checar o estoque ( ja faço uma consulta na tabela produtos e verifico estoque) na hora de um lançamento de pedido, tipo, ao selecionar um produto pelo leitor de barras , no mesmo instante um procedimento verificar se posso adicionar aquela quantidade de determinado produto, e se eu o lançamento pelo nome digitado, preciso fazer a mesma verificação , mais é muito amador eu realizar novamente aquele bloco de codigo, todo ele , nesta forma, eu queria apenas chamar o procedure, que ja contem o codigo todo uma unica vez. E isso quantas vezes eu quiser desculpe gente, eu vim do PHP, e até acostumar com o delphi, vai levar um tempo, ja apanhei um pouco ao usar comandos como FOR por exemplo, e funções tambem parece diferente, principalmente pela declaração de tipo, que nao usava em PHP Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 18, 2011 desculpe gente, eu vim do PHP, e até acostumar com o delphi, vai levar um tempo, [...], e funções tambem parece diferente, principalmente pela declaração de tipo, que nao usava em PHP Esta dificuldade é previsível visto que você vem de uma linguagem de Tipagem Fraca para uma Linguagem de Tipagem Forte, mas com o tempo você contorna.... ??? seria assim ? Seria sim... Compartilhar este post Link para o post Compartilhar em outros sites