Ver Mensaje Individual
  #3  
Antiguo 23-07-2011
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Reputación: 17
escorpionrojo43 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola escorpionrojo43.

Probá de este modo:
Código Delphi [-]
...
type
  TStringGrid = class(Grids.TStringGrid);
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    ...
  end;
...
implementation

(* Agrupar y acumular precios por codigo *)
procedure AgruparGrid(StrGrd: TStringGrid);
var
  i,j: Integer;
  v1,v2: Double;
begin
  i:= StrGrd.FixedRows;
  while i < StrGrd.RowCount  do
  begin
    j:= i+1;
    while j < StrGrd.RowCount  do
    begin
      if (StrGrd.Cells[0,i]=StrGrd.Cells[0,j])  // código en columna 0
        and TryStrToFloat(StrGrd.Cells[2,i],v1) and TryStrToFloat(StrGrd.Cells[2,j],v2) then
      begin
        StrGrd.Cells[2,i]:= FloatToStr(v1+v2);
        StrGrd.DeleteRow(j); // el error esta en esta linea, si la comento entonces como quiera no me hace el trabajo. 
      end
      else
        Inc(j);
    end;
    Inc(i);
  end;
end;

(* llamada *)
procedure TForm1.btnAgruparClick(Sender: TObject);
begin
  AgruparGrid(StringGrid1);
end;

Saludos.
ecfisa companero Estoy tratando de implementar este codigo pero el asunto es que no me anda. me da un error de compilacion porque
Tstringgrid no contiene un miembro llamado deleterow.
[DCC Error] loteriaventa.pas(870): E2362 Cannot access protected symbol TCustomGrid.DeleteRow
no se si estoy haciendo algo mal pero no me funciona.

se queda haciendo un bucle infinito en el while
Responder Con Cita