<!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.18702">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Walter yo traté por esa vía (recuerda que no tengo 
conocimientos de pascal) pero no encontré como, porque no encontré un evento que 
se disparara cuando comienzas la edición de una celda (de una celda, no de un 
registro) ni tampoco cuando finalice la edición de dicha celda.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Yo rebusque y como dice Jesús para mi eso nunca ha 
sido pensado en ser implementado en Lazarus porque creo que Delphi (creo porque 
no lo he usado, solo he leído libros de este sistema) no lo trae 
implementado. No ocurriendo así en los lenguajes de programación de 
Microsoft ya que estos han enfocado su trabajo en este tipo de metodología en 
los últimos tiempos como vía de mejorar el rendimiento de los sistemas para el 
trabajo sobre la Web, aunque también es perfectamente aplicable a las 
aplicaciones de escritorio.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Trate con dataset que trabajasen solo en memoria 
pero no encontré dicha funcionalidad, ojala de que existiese o que se pueda 
crear. Cualquiera de las 2 opciones para mi serían de una excelente utilidad ya 
que representarían la vuelta 100% a Lazarus. Además c</FONT><FONT size=2 
face=Arial>reo que no solo sería de mi utilidad sino que ampliaría mucho 
más el horizonte de este gran proyecto.</FONT> </DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Saludos Reiterados</FONT></DIV>
<DIV>=========<BR>|| ISMAEL ||<BR>=========</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=wmeson@gmail.com href="mailto:wmeson@gmail.com">Walter</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> Friday, May 25, 2012 10:41 AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Lazarus-es] sobre 
  codetyphon</DIV>
  <DIV><BR></DIV>Hola Ismael, mis saludos para vos y la gente del foro.<BR>Estoy 
  siguiendo este hilo, y se me ocurre algo, ¿no sería mejor que en vez de 
  trabajar con el DBGrid, trabajes con los eventos de la tabla y/o consulta que 
  alimenta tu grilla de datos?, es decir, validar en los eventos Before y After 
  de tu fuente de datos ?, (no recuerdo ahora exactamente las sintaxis).Tal vez 
  te compliques la vida tratando sobre la grilla y deberías trabajar sobre el 
  dataset.Recordá que la grilla es un "contenedor/mostrador" de tu fuente de 
  datos, salvo que si o si tengas que tratar sobre la grilla, en ese caso, 
  habría que ver de agregarle esa funcionalidad creando una clase derivada de tu 
  grilla y escribirle los eventos para tal fin.No descubrí la rueda, pero tal 
  vez sirva para encarar tu problema desde otro punto de 
  vista.<BR><BR>Saludos.<BR><BR clear=all><FONT size=4>Walter 
  Mesón</FONT><BR><FONT color=#888888><I><B>Servicio técnico de computadoras, 
  notebooks y netbooks.</B></I><BR>Particulares y 
  empresas.<BR><I>Hardware/Software.<BR>Programas a medida.<BR>Retiro y entrega 
  a domicilio.<BR><IMG 
  src="http://www.compu-solutions.com.ar/images/logo_chico.gif"><BR></I><B><A 
  href="http://www.compu-solutions.com.ar/" 
  target=_blank>http://www.compu-solutions.com.ar</A><SPAN 
  style="WIDTH: 16px; PADDING-RIGHT: 16px; HEIGHT: 16px" class=wrc0 
  onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525133340'}, self.className)},600);" 
  onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);"></SPAN></B><BR>
  <DIV 
  style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 130%; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; WORD-WRAP: break-word; COLOR: black; MARGIN-LEFT: 0px; FONT-SIZE: 10px; OVERFLOW: hidden; PADDING-TOP: 0px"></DIV></FONT><BR>
  <DIV 
  style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 130%; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; WORD-WRAP: break-word; COLOR: black; MARGIN-LEFT: 0px; FONT-SIZE: 10px; OVERFLOW: hidden; PADDING-TOP: 0px"></DIV><BR><BR><BR>
  <DIV class=gmail_quote>El 25 de mayo de 2012 11:11, Ismael L. Donis Garcia 
  <SPAN dir=ltr><<A href="mailto:ismael@citricos.co.cu" 
  target=_blank>ismael@citricos.co.cu</A>></SPAN> escribió:<BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>Si pero es eso mismo no encuentro el evento para tomar el 
    valor de la celda antes de entrar en modo edición y una vez salido de modo 
    edición. Eso mismo es lo que me inhabilitó el usar Lazarus.<BR><BR>Por todo 
    lo demás a mi me gustó muchísimo Lazarus, pero me tropecé con algo 
    infranqueable para mi y fue eso poder validar los datos que voy 
    introduciendo en las celdas de los grid. Si yo encontrara una forma de hacer 
    eso volvería para Lazarus ya que Monodevelop es un poco más complicado su 
    instalación y distribución en Linux.<BR><BR>Saludos Reiterados a to2s
    <DIV class=im><BR>=========<BR>|| ISMAEL ||<BR>=========<BR>----- Original 
    Message ----- From: "Jose Daboin" <<A 
    href="mailto:metalbox9000@gmail.com" 
    target=_blank>metalbox9000@gmail.com</A>><BR>To: "Spanish version of 
    Lazarus List" <<A href="mailto:lazarus-es@lists.lazarus.freepascal.org" 
    target=_blank>lazarus-es@lists.lazarus.<U></U>freepascal.org</A>><BR></DIV>Sent: 
    Thursday, May 24, 2012 7:49 PM
    <DIV class=im><BR>Subject: Re: [Lazarus-es] sobre 
    codetyphon<BR><BR><BR></DIV>
    <DIV class=im>No se si te entendi y mi repusta te va a srvir:<BR><BR>R= Por 
    qie no tomas el valor de la Grib antes de editar y lo guardas<BR>en una 
    variable auxiliar, luego modificas y haces tus comparaciones,<BR>¿Entiendes 
    lo que digo?<BR><BR>El 24/05/12, Ismael L. Donis Garcia <<A 
    href="mailto:ismael@citricos.co.cu" 
    target=_blank>ismael@citricos.co.cu</A>> escribió:<BR></DIV>
    <BLOCKQUOTE 
    style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
    class=gmail_quote>
      <DIV class=im>Yo quiero introducir los datos en el grid, pero validar 
      tanto el dato que<BR>existe en la celda tanto antes como después de 
      editarla. Nada de a la hora<BR>de abrir la consulta. Porque no abro 
      consulta alguna (en muchos casos).<BR><BR>Es para agregar datos al grid o 
      modificar los datos agregados. Pero estos<BR>deben cumplir reglas de 
      validaciones variables.<BR><BR>Por ejemplo si en la columna 1 pongo 20 en 
      la 2 puede solo poner X o Y, y<BR>así, pero sin seguir normas fijas. Y si 
      al editarla tenía 20 restarlo del<BR>valor de otra columna y cuando la 
      termine de editar sumarla a la columna<BR>anterior.<BR><BR>Son 
      validaciones dinámicas por lo que necesito es poder tener un evento 
      en<BR>el grid que sea after edit y otro before edit o por el estilo. Pero 
      del grid<BR><BR>ya que eso no va a parar a un registro de forma 
      directa.<BR><BR>En los lenguajes de Microsoft suelo utilizar los eventos: 
      AfterColEdit y<BR>BeforeColEdit que me permiten realizar estas 
      validaciones de los cuales<BR>puedo tomar los datos existentes en una 
      celda determinada de la siguiente<BR>forma: Valor = 
      Grid.Columns(ColIndex)<BR><BR>Saludos Reiterados<BR></DIV>
      <DIV class=im>=========<BR>|| ISMAEL ||<BR>=========<BR>----- Original 
      Message -----<BR>From: "Jose Daboin" <<A 
      href="mailto:metalbox9000@gmail.com" 
      target=_blank>metalbox9000@gmail.com</A>><BR>To: "Spanish version of 
      Lazarus List"<BR><<A 
      href="mailto:lazarus-es@lists.lazarus.freepascal.org" 
      target=_blank>lazarus-es@lists.lazarus.<U></U>freepascal.org</A>><BR></DIV>
      <DIV class=im>Sent: Wednesday, May 23, 2012 8:48 PM<BR>Subject: Re: 
      [Lazarus-es] sobre codetyphon<BR><BR><BR></DIV>
      <DIV class=im>En cuanto a validar los datos para que lo deseas hacer?, si 
      no quieres<BR>habrir la consulta y que no se muestre en la grib yo lo que 
      hago es<BR>consultar los field del query pero no para validar si no para 
      otras<BR>cosas, yo prefiero validar antes de ingresar los datos a la 
      BD<BR><BR><BR><BR><BR></DIV>
      <DIV 
      class=im>______________________________<U></U>_________________<BR>Lazarus-es 
      mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus.freepascal.org" 
      target=_blank>Lazarus-es@lists.lazarus.<U></U>freepascal.org</A><BR><A 
      href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" 
      target=_blank>http://lists.lazarus.<U></U>freepascal.org/mailman/<U></U>listinfo/lazarus-es</A><SPAN 
      style="WIDTH: 16px; PADDING-RIGHT: 16px; HEIGHT: 16px" class=wrc0 
      onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" 
      onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);"></SPAN><BR><BR></DIV></BLOCKQUOTE>
    <DIV class=HOEnZb>
    <DIV 
    class=h5><BR>______________________________<U></U>_________________<BR>Lazarus-es 
    mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus.freepascal.org" 
    target=_blank>Lazarus-es@lists.lazarus.<U></U>freepascal.org</A><BR><A 
    href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" 
    target=_blank>http://lists.lazarus.<U></U>freepascal.org/mailman/<U></U>listinfo/lazarus-es</A><SPAN 
    style="WIDTH: 16px; PADDING-RIGHT: 16px; HEIGHT: 16px" class=wrc0 
    onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" 
    onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);"></SPAN><BR><BR><BR><BR>______________________________<U></U>_________________<BR>Lazarus-es 
    mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus.freepascal.org" 
    target=_blank>Lazarus-es@lists.lazarus.<U></U>freepascal.org</A><BR><A 
    href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" 
    target=_blank>http://lists.lazarus.<U></U>freepascal.org/mailman/<U></U>listinfo/lazarus-es</A><SPAN 
    style="WIDTH: 16px; PADDING-RIGHT: 16px; HEIGHT: 16px" class=wrc0 
    onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" 
    onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);"></SPAN><BR></DIV></DIV></BLOCKQUOTE></DIV><BR>
  <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>