[Lazarus-es] Error al actualizar

José Mejuto joshyfun en gmail.com
Mie Mar 17 00:29:11 CET 2010


Hello Ismael,

Tuesday, March 16, 2010, 11:01:40 PM, you wrote:

ILDG> Ahora lo que tengo pendiente es solo ver puedo obtener el valor de una celda
ILDG> al presionar enter dentro de un tdbgrid en el evento KeyDown?

El problema que hay con esto es que no sabes que celda estás editando,
en el keydown puedes saber que fila estás editanto consultando el
dataset, pero no que columna.

Si eso te da igual y es un campo de texto se haría así, suministrando
un editor de datos propio en vez del que crea el grid por defecto.

var
  MyEditor: TStringCellEditor;

[..........]
  
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  s: string;
begin
  if Key=VK_RETURN then begin
    if Assigned(MyEditor) then S:=MyEditor.Text;
    //S contiene el valor editado antes del post.
  end;
end;

procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn; var Editor: TWinControl);
begin
  if MyEditor=nil then begin
    MyEditor:=TStringCellEditor.Create(DBGrid1);
  end;
  if Column.Index=1 then begin //Columna que interesa
    Editor:=MyEditor;
  end;
end;



-- 
Best regards,
 José





More information about the Lazarus-es mailing list