Ver Mensaje Individual
  #1  
Antiguo 01-07-2014
Neg90 Neg90 is offline
Miembro
NULL
 
Registrado: mar 2013
Posts: 29
Reputación: 0
Neg90 Va por buen camino
Cargar lista simple dentro de stringgrid

Buenas tengo que pedirles ayuda a ver si alguien se da cuenta donde esta el error, ya hace rato que trato de solucionarlo y me cerré, tengo que desde una lista de números, (ISBN, este es un numero de una tabla Libro), hago una consulta sql y traigo datos, los cuales cargo en un stringGrid, y necesito hacer un botón "refrescar" lo que hace es borrar todo el stringGrid y cargar los datos que traigo del Query . Ahora el problema en si, si hago click en "refrescar" por ejemplo teniendo 4 Libros cargados en la lista y en el stringGrid, cuando vuelve a cargarlos solo me carga los 3 últimos, debo estar usando mal algo en stringGrid ya no me doy cuenta. No estoy pidiendo que nadie me resuelva el problema , y también aclaro que no es un programa que yo este vendiendo, eso solo un trabajo que estamos haciendo para la universidad . Muchas gracias.

Código Delphi [-]
procedure TFormCatalogoLibros.SpeedButton8Click(Sender: TObject);
var
  cont1,cont,i:integer;
  aux:Lista;
begin

    Carrito.SQL.Text:='Select * From Libro where (ISBN =ato)'; //consulta de donde saco los datos
    //Borrar todo  de stringGrid
    for cont :=0 to Stringgrid1.colcount-1 do
        for cont1 :=0 to stringgrid1.rowcount-1 do
            stringgrid1.Cells[cont,cont1] := '';
        StringGrid1.Rowcount:=1;
    //Cargo nuevamente el stringGrid con datos de la lista
    Aux:=L; //L es la lista original que contiene los numeros , la paso a aux por si las dudas nada mas.
    while (Aux <> Nil) do begin
      Carrito.close;
      Carrito.Parameters.ParamByName('Dato').Value:=aux.Datos;
      Carrito.Active:=True;
      Carrito.Open;
      StringGrid1.Cells[0,StringGrid1.Row]:=Carrito.FieldByName('ISBN').AsString ;
      StringGrid1.Cells[1,StringGrid1.Row]:=Carrito.FieldByName('Titulo').AsString ;
      StringGrid1.Cells[2,StringGrid1.Row]:=Carrito.FieldByName('Autor').AsString;
      StringGrid1.Cells[3,StringGrid1.Row]:=Carrito.FieldByName('Editorial').AsString;
      StringGrid1.Cells[4,StringGrid1.Row]:=CurrToStr(Carrito.FieldByName('Precio').AsCurrency);
      StringGrid1.Row:=StringGrid1.Rowcount - 1;
      //Agranda la tabla con una fila mas
      with StringGrid1 do         
        begin       
          RowCount := RowCount +1;
          for i:= RowCount - 1 downto StringGrid1.Rowcount - 1 do
            Rows[i]:= Rows[i-1];
            Rows[StringGrid1.Rowcount - 1].Clear;
          end;
      Aux:=Aux^.sig;
    end;

end;
Responder Con Cita