Ver Mensaje Individual
  #2  
Antiguo 10-04-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
  • Agregué comentarios
  • Las barras de estado solo necesitan inicializarse una vez, ya que al principio ya sabes los datos.
  • Moví el cálculo de cad1 fuera del bucle que recorre per, ya que siempre calcula lo mismo (depende del indice del bucle i)
  • Moví el refresco de información de barra fuera del bucle que recorre per ya que solo depende del i.
  • Agregue algún begin..end porque me gusta mas como se ve el código.

Código Delphi [-]
// Inicializo barras de estado
barra.Max := lista3.Items.Count;
barra2.Max := per.Items.Count;

// Recorro lista3
for i := 0 to lista3.Items.Count -1 do
begin
  // Calculo CAD1 cada vez que cambia el indice de lista3
  with lista3 do
  begin
    Selected := Items[i];
    cad1 := Items.Item[i].SubItems[0] +
    ' '+ Items.Item[i].SubItems[1] +' '+ Items.Item[i].SubItems[2]+
    ' '+ Items.Item[i].SubItems[3] +' '+ Items.Item[i].SubItems[4];
  end;

  // Actualizo panel de informacion relacionada con recorrido de lista3
  barra.Position := i + 1;
  stB.Panels.Items[4].Text := FormatFloat('0.00',(i * 100) / lista3.items.Count)+'%';

    // Recorro per
  for j := 0 to per.Items.Count -1 do
  begin
    // Actualizo panel de informacion general
    stB.Panels.Items[2].Text := '[C. '+IntToStr(i+1)+'],'+'[P. '+IntToStr(j+1)+']';

    // Actualizo panel de informacion relacionada con recorrido de per
    barra2.Position := j;

    // Calculo CAD2 cada vez que cambia el indice de per
    cad2 := per.Items.Strings[j];

    // Si lista3 y per son "iguales" agrego un registro a listaResumen2
    if cad2 = cad1 then
    begin
      with listaResumen2.Items.Add do
      begin
        inc(cinco);
        caption:= lista3.Selected.Caption;
        subitems[0]:= lista3.Items.Item[i].SubItems[0];
        subitems[1]:= lista3.Items.Item[i].SubItems[1];
        subitems[2]:= lista3.Items.Item[i].SubItems[2];
        subitems[3]:= lista3.Items.Item[i].SubItems[3];
        subitems[4]:= lista3.Items.Item[i].SubItems[4];
        subitems[5]:= lista3.Items.Item[i].SubItems[5];
        subitems[5]:= IntToStr(5);
        subitems[6]:= IntToStr(cinco);
      end;
    end;
  end;
end;

Última edición por duilioisola fecha: 10-04-2018 a las 09:50:25.
Responder Con Cita