Fórum Problemas com const numa funcao, porque nao vem o vlr certo? #288189
15/07/2005
0
function Localiza(Tabela, Condicao, SQLPers, IndexCampo: string; const ShowSQLPers: boolean = True): Boolean; begin DM.QrLocalizar.close; TabelaLocalizar := Tabela; CondicaoLocalizar := Condicao; SQLPersonal := SQLPers; CampoIndex := IndexCampo; ShowSQLPersonal := ShowSQLPers; FrmLocalizar := TFrmLocalizar.Create(Application); if ((FrmLocalizar.ShowModal = mrOk) and (DM.QrLocalizar.RecordCount > 0)) then Result := True else Result := False; end;
Bem, minha intenção é não querer passar o parâmetro [b:5c402a7f57]ShowSQLPers[/b:5c402a7f57], msa se passar pegar o valor dele, pois bem, por isso usei o const, mas ele SEMPRE está vindo como False, ou seja, se eu nao informar ele na chamada da funcao, deveria vir True, não é?
segue como eu chamo a funcao:
Localiza(´CAIXA´, ´´, ´´, ´HISTORICO´);
Onde está o erro na função?
Desde já agradeço
Titanius
Curtir tópico
+ 0Posts
15/07/2005
Paulo_amorim
O que permite vc não passar o parâmetro não é o ´const´, mas sim o ´= True´... esse const só serve pra vc não poder alterar o valor dele na função.
Fiz um teste simples fazendo sua função somente retornar o que foi passado no parâmetro ShowSQLPers:
function TForm1.Localiza(Tabela, Condicao, SQLPers, IndexCampo: string; const ShowSQLPers: boolean): Boolean; begin Result := ShowSQLPers; end;
Pra mim funcionou de acordo... como você sabe que ele está passando errado?
Será qe vc não está alterando o valor de ShowSQLPersonal depois, no outro form?
Até+
Gostei + 0
15/07/2005
Titanius
o que eu quero eh o seguinte: nao quero informar este parametro sempre, msa se eu informar ele devera pegar o valor informado.. e se eu nao informar, queria que tivesse um valor como padrao..
nao sei se eh o jeito certo, teria outro modo?
[]s
Gostei + 0
15/07/2005
Massuda
Gostei + 0
15/07/2005
Titanius
ShowSQLPersonal := ShowSQLPers;
e esta variavel nao eh alterada no form localizar, somente alterada pela funcao Localiza.
muito estranho.. :(
Gostei + 0
16/07/2005
Marco Salles
so uma perguntinha para ver se eu esto entendendo direito ...
Quando voce fala que esta vindo como false , voce esta se referindo ao valor da variável ShowSQLPersonal ou ao valor de retorno da Função Localizar :?: :?: :?:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)