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;
--- 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
Curtir tópico
+ 0
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:
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
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
Clique aqui para fazer login e interagir na Comunidade :)