PDA

Ver la Versión Completa : como verificar el cambio de estado o valor de una variable


gonza_619
06-09-2010, 18:22:43
hola miren al seleccionar un registro en un dbgrid lo asigno el id ppal de esa tabla a una variable(X), pero quiero verificar tirando un showmessage que diga 'asigno', por ej:
en una grilla selecciono un registro y a traves del evento oncellclick, codifico

X:=table1.fieldbyname(IDtable).asinteger;
if X=??????? then
showmessage('se asigno');

funciona si coloco :
if X=2 then...
ya que se cual ID voy a sleccionar, pero cuando selecciono uno distinto no se como hacer, bueno gracias, las tablas estan hechas en paradox. pense que se puede verificar usando tquery pero nose como grax!

ecfisa
06-09-2010, 18:52:04
Hola.

Si querés saber si a X se le asigno algún valor, es:

X:= table1.fieldbyname(IDtable).asinteger;
if X > 0 then
showmessage('se asigno');


Saludos.

gonza_619
06-09-2010, 19:05:31
bien si lo entendi pero eso pasaria la primera vez? o la variable vuelve a 0, o qeda con el registro anterior? y si qeda con el registro 2 por ejemplo como lo vuelvo a 0? gracias

rrf
06-09-2010, 19:11:00
Yo podría una nueva línea en este orden:


X:= 0 ; // <<<=== Nueva línea
X:=table1.fieldbyname(IDtable).asinteger;
if X=??????? then
showmessage('se asigno');


Así te aseguras siempre que la variable X tiene el valor 0 antes de asignarle el valor del campo.

Saludos.

gonza_619
06-09-2010, 19:21:23
gracias, lo voy a aplicar, una pregunta mas, un campo de tipo integer, al estar vacio, tiene valor 0? o ''
muchas gracias!

ecfisa
06-09-2010, 19:46:31
gracias, lo voy a aplicar, una pregunta mas, un campo de tipo integer, al estar vacio, tiene valor 0? o ''
muchas gracias!

Hola Gonza.

Si.

Saludos.

elarys
06-09-2010, 20:39:35
los integer tienen valor predeterminado 0, entonces si preguntas

if entero = '' then

te va a dar error, creo que por ahi venia tu pregunta supongo

ecfisa
06-09-2010, 20:48:41
Es exáctamente como dice elarys.
No tiene sentido comparar un entero con cadena vacía y dá error de tipo.

Leí la pregunta hasta el '?', se me escapó el ( o '')... :)

Saludos.