PDA

Ver la Versión Completa : Convertir OleVariant a TField


Jere_84
05-06-2012, 13:43:01
Hola, quiero convertir una parámetro tipo OleVariant a uno tipo TFields, estuve mirando la ayuda que trae el Delphi 2010 y no encontré nada interesante, por ahi alguno de ustedes probo algo.


Procedure Nombre(ownerdata: OleVariant);
var
vCampo: TField;
begin
if ownerdata is TField then
vCampo := ownerdata;
end;


Saludos!

Al González
05-06-2012, 18:13:59
¿Podrías ampliar la pregunta?

En Delphi, variantes y objetos no son directamente compatibles, pero una manera de convertir un objeto a Variant es guardar su referencia como Cardinal (o Integer):
V := Cardinal (O);

La operación inversa sería:
O := TObject (Cardinal (V));

De todas formas, creo que deberías extenderte con el mayor detalle posible sobre lo que tienes pensado hacer. Imagino que lleva relación con esto (http://www.clubdelphi.com/foros/showthread.php?t=79001).

Saludos. :)

Jere_84
05-06-2012, 18:19:47
¿Podrías ampliar la pregunta?

En Delphi, variantes y objetos no son directamente compatibles, pero una manera de convertir un objeto a Variant es guardar su referencia como Cardinal (o Integer):
V := Cardinal (O);

La operación inversa sería:
O := TObject (Cardinal (V));

De todas formas, creo que deberías extenderte con el mayor detalle posible sobre lo que tienes pensado hacer. Imagino que lleva relación con esto (http://www.clubdelphi.com/foros/showthread.php?t=79001).

Saludos. :)
Exacto tiene relación, es un sist. datasnap que va a pasar ciertos campos TField a través del la variable Ownerdata en el caso de que estos campos estén null volverán de la misma forma en que fueron y se mostrara un mensaje en la aplicación cliente para q el usuario complete dischos campos "obligatorios". No comprendí muy bien lo que hace el cardinal, lo voy a probar y te aviso.

Gracias Al.

maeyanes
05-06-2012, 19:50:42
Hola...

Jere_84, Cardinal es un tipo de datos y lo que Al González está haciendo en el ejemplo es un "casting" de tipos.



Saludos...

StartKill
08-06-2012, 02:04:36
Hola Jere_84

Muy aparte de tu pregunta central, me voy a la necesidad que estas plantenado

Dices:

.... , es un sist. datasnap que va a pasar ciertos campos TField a través del la variable Ownerdata en el caso de que estos campos estén null volverán de la misma forma en que fueron y se mostrara un mensaje en la aplicación cliente para q el usuario complete dischos campos "obligatorios". No comprendí muy bien lo que hace el cardinal, lo voy a probar y te aviso.


Te te refieres a validar datos???

Te sugiero que estos campos deberían ser validados en el mismo cliente ( es una buena regla para evitar tráfico de datos innecesario )

Your friend

StartKill
Lima-Perú