<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><br><br>--- El <b>lun 20-jun-11, Ismael L. Donis García <i><ismael@citricos.co.cu></i></b> escribió:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>De: Ismael L. Donis García <ismael@citricos.co.cu><br>Asunto: [Lazarus-es] Conocer si está seleccionado el texto en una celda de un TDBGrid en el evento KeyDown<br>A: "Spanish version of Lazarus List" <lazarus-es@lazarus.freepascal.org><br>Fecha: lunes, 20 de junio de 2011, 8:48<br><br><div>
<style></style>
<div><font face="Arial">Tengo 2 dudas sobre los TDBGrid</font></div>
<div> </div>
<div><font face="Arial">1.- Es posible conocer en el evento KeyDown de un TDBGrid
si está o no seleccionado el valor de la celda?</font></div><div><font face="Arial"><br></font></div><div><font face="Arial"><br></font></div></div></blockquote><div><div><font face="Arial">algo asi como:<br></font></div><div><font face="Arial">var<br></font></div><div><font face="Arial"> editor: TWincontrol;<br></font></div><div><font face="Arial">// </font><font face="Arial">Primero tendríamos que saber si el editor esta visible</font></div><div><font face="Arial">if grid.EditorMode then begin<br></font></div><div><font face="Arial"> // luego y suponiendo que se trata del editor por defecto<br></font></div><div><font face="Arial"> editor := grid.EditorByStyle(cbsAuto);<br></font></div><div><font face="Arial"> // despues de alguna verificacion de rigor ...<br></font></div><div><font face="Arial"> if (editor is TCustomEdit) then begin<br></font></div><div><font face="Arial"> if
TCustomEdit(Editor).SelLength>0 then begin</font></div><div><font face="Arial"> // si, algo esta seleccionado...<br></font></div><div><font face="Arial"> end; <br></font></div><div><font face="Arial"> end;<br></font></div><div><font face="Arial"><br></font></div><div><font face="Arial">// otro metodo de obtener el editor con algo de trampa</font><font face="Arial"><br></font></div><div><font face="Arial">type<br></font></div><div><font face="Arial"> TGridAccess=(TCustomGrid)</font><font face="Arial"><br></font></div><div><font face="Arial"> end;<br></font></div><div><font face="Arial"> Editor := TGridAccess(Grid).InplaceEditor;</font></div><div><br></div><div>(ambos casos, sin probar)</div></div><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><div>
<div><font face="Arial">2.- Es posible convertir a mayúscula directamente el valor
de una celda de un TDBGrid cuando se teclea en ella?</font></div>
<div> </div>
<div> </div></div></blockquote><div id="yiv1319945751"><div>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....</div><div><br></div><div> TCustomEdit(Editor).CharCase := ecUppercase;<br> TCustomEdit(Editor).MaxLength := 0;<br> if Column.Index=1 then<br> TCustomEdit(Editor).MaxLength := 13;<br><br></div><div>(probado y confirmado, suponiendo que "Editor" es el editor por defecto del dbgrid)</div><div><br></div><div>Jesus Reyes A.</div><div><br></div></div><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><div>
</div></blockquote></td></tr></table>