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 onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525133340'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span></b><br>


<div style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;word-wrap:break-word;color:black;font-size:10px;text-align:left;line-height:130%">
</div></font><br><div style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;word-wrap:break-word;color:black;font-size:10px;text-align:left;line-height:130%"></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 class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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 class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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 onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></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 onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></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 onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':0},'flags':{},'single':false,'ttl':7200,'expireTime':'20120525125030'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

</div></div></blockquote></div><br>