GARANTIR DESCONTO

Fórum Listview - calcs - pegar MAIOR e MENOR salario #274081

25/03/2005

0

Olá Pessoal !!! Como fazer para:

--- Problem -----------------------------

Preciso pegar de um ListView o MAIOR e MENOR salario listado e mostrar total em um EDIT :

- Maior salario ( edit1 )
- Menor salario ( edit2 )

--- OK ------------------------------------

- Média - codigo abaixo esta funcionando
- Soma - taliza todos salarios, ok

--- CODE ---------------------------------

procedure TCalculaSalario_Frm.Bit_IncluirClick(Sender: TObject);
var
Item : TListItem;
I, T : Integer;

begin
Item := ListView1.Items.Add; // Adiciona um Item
Item.Caption := Edit_Nome.text;

Item.SubItems.Add(ComboBox1_Sexo.Text); // 0
Item.SubItems.Add(Edit_Cargo.Text); // 1
Item.SubItems.Add(Edit_Salario.Text); // 2

sal_mais := StrToFloat(Edit_Salario.Text);

// Soma salários

Sal_Total := Sal_Total + StrToFloat(Item.SubItems[2]);

// Média
Sal_Media := (Sal_Total / ListView1.Items.Count);

//----

{ preciso saber MAIOR e MENOR salario }
{ apanhando kkkk ??? }

end;


Ewb

Ewb

Responder

Posts

25/03/2005

Michael

Olá amigo!

O Delphi dispoê das funções [b:0134196eb4]Max[/b:0134196eb4] e[b:0134196eb4] Min[/b:0134196eb4], na unit [b:0134196eb4]Math[/b:0134196eb4], que recebem como parâmetros dois valores e retorna o maior ou o menor deles, respectivamente. Não me recordo agora se elas aceitam valores de ponto flutuante, ou apenas inteiros. Dê uma olhada no help do Delphi. Em caso positivo, vc pode usar o código abaixo:

var 
  I : integer;
  Maior, Menor : real;
begin
  Maior := 0;
  Menor := StrToFloat(ListView.Items[0].SubItems[2]);

  for I := 0 to ListView.Items.Count - 1 do
    begin
      Maior := Max(StrToFloat(ListView.Items[I].SubItems[2]), Maior);
      Menor := Min(StrToFloat(ListView.Items[I].SubItems[2]), Menor);
    end;
end;


O ideal seria que vc fizesse a checagem à medida que os itens forem sendo adicionados, para evitar de ter mais de um loop como este.


[]´s


Responder

Gostei + 0

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

Aceitar