[Lazarus-es] Error al actualizar

Ismael L. Donis García ismael en citricos.co.cu
Lun Mar 22 21:23:14 CET 2010


Realmente lo que quiero es capturar en el evento KeyDown de grid cuando se 
presiona Enter y en ese caso verificar si se escrito algo en la celda o no.

José me pasó un código pero me da error cuando declaro la variable y he 
buscado en la literatura que tengo y no he encontrado nada que haga 
referencia a TStringCellEditor.

Saludos reiterados
=========
|| ISMAEL ||
=========
----- Original Message ----- 
From: "Maxi" <maximiliano.duarte en gmail.com>
To: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Monday, March 22, 2010 12:47 PM
Subject: Re: [Lazarus-es] Error al actualizar


El día 22 de marzo de 2010 13:25, Ismael L. Donis García
<ismael en citricos.co.cu> escribió:
> José que Unit tengo que poner en uso para la definición:
> var
> MyEditor: TStringCellEditor;
>
> Me da el siguiente error:
>
> ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor"
>
> Gracias reiteradas
> =========
> || ISMAEL ||
> =========
> ----- Original Message ----- From: "José Mejuto" <joshyfun en gmail.com>
> To: "Spanish version of Lazarus List"
> <lazarus-es en lists.lazarus.freepascal.org>
> Sent: Tuesday, March 16, 2010 6:29 PM
> Subject: Re: [Lazarus-es] Error al actualizar
>
>
> 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é
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>


insmael, tenes que usar alguno de estos eventos: onvalidate,ongettext
onsettext del campo o, con ellos vas a saber que esta haciendo el
usuario sobre el campo antes de que llegue a la tabla.
La unidad que queres usar es de la componente dbgrid, y no le vas a
poder dar mucho uso.-


-- 
Maximiliano Duarte
Linux User #495070
Ubuntu User #28504

Tolerancia significa disculpar los defectos de los demás; tacto, no
reparar en ellos.

_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list