Holitas
Cita:
Empezado por Delphius
StringGrid1.Cols[Numero].Clear;
// o bien...
StringGrid1.Rows[Numero].Clear;
Lo que hace el Clear es borrar TODA la fila o clumna, según sea el caso.
|
Marcelo el Clear no borra una fila o columna, lo que hace es limpiar la columna o fila.
Para borrar una fila de un StringGrid debes utilizar el procedimiento DeleteRow donde le pasas como parametro la fila a eliminar, pero como es un metodo protegido, primero defines un nuevo tipo que herede de un TStringGrid.
Código Delphi
[-]
type
StringG = class (TStringGrid);
.........................
.........................
procedure TForm1.ButtonBorrarClick(Sender: TObject);
begin
StringG(StringGrid1).DeleteRow(StringGrid1.Row);
end;
Sobre actualizar, como te dice Marcelo, esta mal la sintaxis del update, supongo que quieres actualizar la fila actual, si es así no necesitas el ciclo.
Código Delphi
[-]
procedure TForm1.BitBtnModificarClick(Sender: TObject);
var
i:integer;
begin
for i:=1 to sgEvaluacion.ColCount -1 do
sgEvaluacion.cells[1,i]:=IntToStr(i);
query1.close;
query1.sql.clear;
query1.sql.add('update tevaluacion set eval_descripcion=:eval_descripcion, eval_nivel=:eval_nivel, ');
query1.sql.add('eval_ult_version=:eval_ult_version, eval_ver_usada=:eval_ver_usada');
query1.ParamByName('eval_descripcion').asstring:=(sgEvaluacion.Cells[1,sgEvaluacion.Row]);
query1.ParamByName('eval_nivel').asstring:=(sgEvaluacion.Cells[2,sgEvaluacion.Row]);
query1.ParamByName('eval_ult_version').asstring:=(sgEvaluacion.Cells[3,sgEvaluacion.Row]);
query1.ParamByName('eval_ver_usada').asstring:=(sgEvaluacion.Cells[4,sgEvaluacion.Row]);
try
query1.execsql
except
............
Ahora no se si tu quieres actualizar todas las filas de tu StringGrid, de la forma que esta tu ciclo, se va actualizar la cantidad que tienes en ColCount y la fila i.
No te olvides poner una condición a tu update, sino la actualización se hara para todos tus registros.
Saluditos