terça-feira, 5 de maio de 2009

Função Iif()

Usei muito esta função no Clipper e como não a encontrei no Delphi, recriei-a e estou publicando para compartilhar com a comunidade

function Iif(lCondicao: Boolean; VERDADEIRO, FALSO: Variant): Variant;
begin
if lCondicao then
Iif := VERDADEIRO
else
Iif := FALSO;
end;

Um exemplo em que podemos utilizá-la é o seguinte: Imagine um RadioGroup com as opções Codigo e Nome. Um Edit e um Button para pesquisar. De acordo com a opção selecionada no RadrioGroup, o Button pesquisa o texto do Edit no campo Código ou no campo Nome.

Uma maneira de implementarmos isso seria::

if RadioGroup1.ItemIndex = 0 then
ShowMessage('CODIGO = ' + Edit1.Text)
else
ShowMessage('NOME = ' + Edit1.Text);

Com esta função, resumimos o código em:

ShowMessage(
Iif(RadioGroup1.ItemIndex = 0, 'CODIGO', 'NOME') + ' = ' + Edit1.Text
);

E é isso. Sempre me foi muito útil. Espero ajudar alguém.

Abraços!

Por: Luis (luis_fessel)
Contato: luis_fessel@itelefonica.com.br

Dica do Editor

Apenas para o conhecimento de todos, o Delphi já possui algumas funções com a mesma finalidade, porém, disponíveis apenas para os tipos de dados String, Integer, Int64 e Double:

unit StrUtils;

function IfThen(AValue: Boolean; const ATrue: string; AFalse: string = ''): string;

unit Math;

function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload;
function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload;
function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload;

Sendo assim, se a sua necessidade é trabalhar somente com um destes tipos acima, não é necessário declarar uma nova função. Entretanto, é muito mais prático ter uma única função e trabalhar com qualquer tipo de dados, através do tipo Variant, não é mesmo?! Portanto, eu recomendo o Iif !

Principal

Nenhum comentário:

Política Privacidade adicoaraci suervisores

Política Privacidade A sua privacidade é importante para nós. É política do adicoaraci supervisor respeitar a sua privacidade em relação a q...