Fórum Passagem de parametros?? #195200

15/11/2003

0

Estou desenvolvendo uma aplicação que utiliza uma mesma funcao varias vezes mas o conteudo de cada variavel muda por exemplo no cadastro de clientes chamo uma funcao para validar o codigo do cliente, e no cadastro de fornecedores faço uma outra para validar o codigo do fornecedor mas o conteudo eh o mesmo

function validarcodigoFor : boolean;
begin
DM1.TTemp.TableName := DM1.TFornecedores.tableName;
DM1.TTemp.IndexFieldNames := DM1.TFornecedores.IndexfieldNames;
DM1.TTemp.Open;
Result:= DM1.TTemp.Locate(´Codigo_Fornecedor´,
DM1.TFornecedoresCodigo_Fornecedor.AsInteger, []);
DM1.TTemp.close;
if result then
Begin
Messagebox(0,´Codigo já está cadastrado.´,
´Falha na validação de Dados´, MB_Iconstop or Mb_Ok);
End;
Result := Not Result;
end;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

function validarcodigocli : boolean;
begin
DM1.TTemp.TableName := DM1.TClientes.tableName;
DM1.TTemp.IndexFieldNames := DM1.TClientes.IndexfieldNames;
DM1.TTemp.Open;
Result := DM1.TTemp.Locate (´Codigo_cliente´,
DM1.TClientesCodigo_Cliente.AsInteger, []);
DM1.TTemp.close;
if result then
Begin
Messagebox(0,´Codigo já está cadastrado.´,
´Falha na validação de Dados´, MB_Iconstop or Mb_Ok);
End;
Result := Not Result;
end;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


este codigo esta em uma unit funcoes gostaria de saber uma maneira de passar somente os valores que mudam de uma unit para outra

ou seja quando eu clicar em salvar ele passar os valores DM1.TClientes.tableName;
ou
DM1.TFornecedores.tableName;

para a funcao


se alguem puder me ajudar agradeço

aguardo resposta pois isso irá minimizar e muito meu sistema...

grato desde já.
:?:


Dilele

Dilele

Responder

Posts

15/11/2003

Koplin

Acrescente o parâmetro como abaixo:

function validarcodigoFor(Tabela:TTable) : boolean;

depois use assim:

If not ValidarCodigoFor(DM1.TFornecedores) then TFornecedores.cancel;

fica +- assim:

function validarcodigoFor(Tabela:TTable) : boolean;
begin
DM1.TTemp.Open;
Result:= DM1.TTemp.Locate(´Codigo_Fornecedor´,
DM1.TFornecedoresCodigo_Fornecedor.AsInteger, []);
DM1.TTemp.close;
if result then
Messagebox(0,´Codigo já está cadastrado.´,
´Falha na validação de Dados´, MB_Iconstop or Mb_Ok);
End;


Obeserve que uso a variavel result para definir o caminho a tomar.
É o que diferencia uma função de uma procedure. A função retorna um valor que pode e deve ser usado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar