[Lazarus-es] Conocer si está seleccionado el texto en una celda de un TDBGrid en el evento KeyDown

Jesus Reyes jesusrmx en yahoo.com.mx
Lun Jun 20 20:38:29 CEST 2011



--- El lun 20-jun-11, Ismael L. Donis García <ismael en citricos.co.cu> escribió:

De: Ismael L. Donis García <ismael en citricos.co.cu>
Asunto: [Lazarus-es] Conocer si está seleccionado el texto en una celda de un TDBGrid en el evento KeyDown
A: "Spanish version of Lazarus List" <lazarus-es en lazarus.freepascal.org>
Fecha: lunes, 20 de junio de 2011, 8:48



 
 


 
Tengo 2 dudas sobre los TDBGrid
 
1.- Es posible conocer en el evento KeyDown de un TDBGrid 
si está o no seleccionado el valor de la celda?

algo asi como:
var
  editor: TWincontrol;
// Primero tendríamos que saber si el editor esta visibleif grid.EditorMode then begin
  // luego y suponiendo que se trata del editor por defecto
  editor := grid.EditorByStyle(cbsAuto);
  // despues de alguna verificacion de rigor ...
  if (editor is TCustomEdit)  then begin
    if TCustomEdit(Editor).SelLength>0 then begin       // si, algo esta seleccionado...
    end; 
 end;

// otro metodo de obtener el editor con algo de trampa
type
   TGridAccess=(TCustomGrid)
   end;
   Editor := TGridAccess(Grid).InplaceEditor;
(ambos casos, sin probar)
2.- Es posible convertir a mayúscula directamente el valor 
de una celda de un TDBGrid cuando se teclea en ella?
 
 El TEdit que se usa para editar tiene esa función, solo hay que activarla, usando el evento OnSelectEditor, el cual ya tiene el Editor como argumento, se pueden hacer varias cosas, por ejemplo, hacer que todos los campos sean introducidos en mayusculas y en forma adicional, limitar la segunda columna a 13 caracteres....
  TCustomEdit(Editor).CharCase := ecUppercase;
  TCustomEdit(Editor).MaxLength := 0;
  if Column.Index=1 then
    TCustomEdit(Editor).MaxLength := 13;

(probado y confirmado, suponiendo que "Editor" es el editor por defecto del dbgrid)
Jesus Reyes A.
 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20110620/4faa3620/attachment-0002.html>


More information about the Lazarus-es mailing list