Hola...
Tienes varias opciones... usar un arreglo, o un TList... o hasta un TStringList:
O puedes copiar la lista a otra nueva y ordenarla y luego contar mientras no cambie el número:
Código Delphi
[-]
var
TempList: TStringList;
OutPutList: TStringList;
CurrentNumber: string;
CurrentNumberCount: Integer;
I: Integer;
begin
TempList := TStringList.Create;
TempList.Assign(ListBox1.Items);
TempList.Sort;
OutPutList := TStringList.Create;
CurrentNumber := '';
for I := 0 to Pred(TempList.Count) do
begin
if CurrentNumber <> TempList[i] then
begin
if CurrentNumber <> '' then
OutPutList.Add(Format('Del número %s hay %d repeticiones', [CurrentNumber, CurrentNumberCount]);
CurrentNumber := TempList[i];
CurrentNumberCount := 1
end
else
Inc(CurrentNumberCount)
end
end;
Este código lo hice al aire y no está probado, por lo que podría tener errores; pero te podría dar una idea de como hacerlo...
Saludos...