<!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>