<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19046"></HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial>Detallo a continuación:</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV>TCustomEdit(Editor).CharCase := ecUppercase; // Perfecto<BR></DIV>
<DIV>TCustomEdit(Editor).MaxLength // da error si presiona la tecla escape
2 veces después de haber entrado en edición. El error lo da en la línea:</DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>TWSCustomEditClass(WidgetSetClass).SetMaxLength(Self,
Value); // (línea 338)<BR></FONT></DIV>
<DIV><FONT face=Arial>del procedimiento:</FONT></DIV>
<DIV><FONT face=Arial> </DIV></FONT>
<DIV><FONT face=Arial>procedure TCustomEdit.SetMaxLength(Value :
Integer);<BR></DIV></FONT>
<DIV><FONT face=Arial>Si logro solventar este error no necesito validar el
primer punto, caso contrario si estoy obligado a validar si está seleccionado o
no.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>El error que da es el típico error SIGSEGV</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>Voy a tratar de investigar las causas del error, si
encuentras algo de ello, me sería de gran utilidad.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>1 Millón de Gracias por lo expuesto, ha contribuido a
enriquecer mis pobres conocimientos.</DIV></FONT>
<DIV><FONT size=2 face=Arial>=========<BR>|| ISMAEL ||<BR>=========</FONT></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B>
<A title=jesusrmx@yahoo.com.mx href="mailto:jesusrmx@yahoo.com.mx">Jesus
Reyes</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=lazarus-es@lists.lazarus.freepascal.org
href="mailto:lazarus-es@lists.lazarus.freepascal.org">Spanish version of
Lazarus List</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, June 20, 2011 2:38 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Lazarus-es] Conocer si está
seleccionado el texto en una celda de un TDBGrid en el evento KeyDown</DIV>
<DIV><BR></DIV>
<TABLE border=0 cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD vAlign=top><BR><BR>--- El <B>lun 20-jun-11, Ismael L. Donis García
<I><<A
href="mailto:ismael@citricos.co.cu">ismael@citricos.co.cu</A>></I></B>
escribió:<BR>
<BLOCKQUOTE
style="BORDER-LEFT: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px"><BR>De:
Ismael L. Donis García <<A
href="mailto:ismael@citricos.co.cu">ismael@citricos.co.cu</A>><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"
<<A
href="mailto:lazarus-es@lazarus.freepascal.org">lazarus-es@lazarus.freepascal.org</A>><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: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-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: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px">
<DIV></DIV></BLOCKQUOTE></TD></TR></TBODY></TABLE>
<P>
<HR>
<P></P>_______________________________________________<BR>Lazarus-es mailing
list<BR>Lazarus-es@lists.lazarus.freepascal.org<BR>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<BR></BLOCKQUOTE></BODY></HTML>