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)'; for cont :=0 to Stringgrid1.colcount-1 do
for cont1 :=0 to stringgrid1.rowcount-1 do
stringgrid1.Cells[cont,cont1] := '';
StringGrid1.Rowcount:=1;
Aux:=L; 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;
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;