Ajuda com lógica
23/07/2008
0
varbool := (var1 <> ´´) and (var2 <> ´´) and (var3 <> ´´), pois são muitas variáveis e ficará muito feio o código e ilegível. Se eu declara uma variável Integer e for somando em cada variável carregada, também não ficaria legal. Então pergunto: Tem uma forma limpa de fazer isso? São umas 30 variáveis que após o descarregar são zeradas.
Paulo
Posts
23/07/2008
Aroldo Zanela
Eu usaria um contador mesmo. Mas uma outra alternativa que não necessita empregar um grande esforço seria usando vetor ou matriz. Veja um exemplo que preparei:
var Vars: array[1..3] of string; I: Integer; Pronto: Boolean; begin Vars[1] := ´sskdkçskk çsk skççskdçaskdçk´; Vars[2] := ´jjjjjjjjjjj´; for I := 1 to 3 do begin if Vars[I]=´´ then begin Pronto := False; Break; end; end; if not Pronto then begin Application.MessageBox(´O ciclo de processamento não está finalizado.´, ´Erro´, MB_OK + MB_ICONSTOP + MB_DEFBUTTON2); end; end;
23/07/2008
Paulo
23/07/2008
Aroldo Zanela
Visando melhorar a legibilidade e elegância do código, fiz uma pequena alteração com uma função de array aberto. Veja:
procedure TForm1.btn1Click(Sender: TObject); var Vars: array[1..3] of string; I: Integer; Pronto: Boolean; begin Vars[1] := ´sskdkçskk çsk skççskdçaskdçk´; Vars[2] := ´jjjjjjjjjjj´; if not CicloCompleto(Vars) then Application.MessageBox(´O ciclo de processamento não está finalizado.´, ´Erro´, MB_OK + MB_ICONSTOP + MB_DEFBUTTON2); end; function CicloCompleto(Vars: array of string): Boolean; var I: SmallInt; begin Result := True; for I := Low(Vars) to High(Vars) do begin if Vars[I]=´´ then begin Result := False; Break; end; end; end;
Clique aqui para fazer login e interagir na Comunidade :)