Está en la página 1de 5

INTERCAMBO DINAMICO DE DATOS (Dinamic Data Exchange) DDE El intercambio dinmico de datos es una utilidad de Windows que utiliza

Visual Basic, y nos ermite crear a licaciones que tomen datos una de otras! "ara asar datos de una a licaci#n a otra se necesitan al menos dos a licaciones! "uede darse el caso que una a licaci#n est$ recibiendo datos de otra a licaci#n, y a su %ez en%&e datos a una tercera! ' la a licaci#n que en%&a la in(ormaci#n se le llama aplicacin servidor, y a la que la recibe, aplicacin cliente! )a a licaci#n ser%idor debe estar (uncionando antes de que la a licaci#n cliente le ida la in(ormaci#n! *i no es as&, se generar un error! )os datos a tras asar de una a licaci#n a otra ueden ser + ,extos, de un )abel o un ,extBox! -mgenes, de un "ictureBox! El origen de un intercambio DDE siempre es un formulario! Dentro de este (ormulario origen estar el )abel, ,extBox o "ictureBox que contiene la in(ormaci#n a en%iar! "ara indicar que un (ormulario es origen de in(ormaci#n ara un intercambio DDE se le debe decir en sus ro iedades Lin Mode y Lin Topic! El destino de un texto ha de ser necesariamente un La!el, un Te"tBo", y el destino de un gr(ico debe ser un #ictureBo"! .uando se quiere que uno de estos controles sea el destino de un intercambio DDE se debe indicar en sus ro iedades Lin Mode, Lin Topic, Lin Item$ e indicar el tiem o de es era ara un intercambio en la ro iedad Lin Timeout! #ropiedad Lin Mode ,iene distinta (orma si se trata de un control "ictureBox) # un (ormulario! "ara un formulario tiene dos %alores osibles + / 0 1one 1o uede existir comunicaci#n DDE con ese (ormulario 20 *ource El (ormulario ermite que exista una comunicaci#n D)) entre uno de sus controles y otra a licaci#n! *i se establece el %alor de esta ro iedad a / en tiem o de dise3o, no odr cambiarse en tiem o de e4ecuci#n! *i se establece a 2 en tiem o de dise3o, se odr cambiar a / y %ol%er a onerla a 2 en tiem o de e4ecuci#n! ()abel, ,extBox y

"ara un control, la ro iedad )in56ode le ermite que inicie una con%ersaci#n DDE con una a licaci#n ser%idor, (origen), y c#mo iniciarla! ,iene 7 %alores osibles + /01one! 1o existe comunicaci#n DDE con ese control 20'utomtico )os datos se tras asarn desde la a licaci#n ser%idor a este control de la a licaci#n cliente cada %ez que cambie el dato en la a licaci#n ser%idor (origen) 806anual )os datos se tras asarn cuando lo ida la a licaci#n cliente (destino), mediante la orden )in59equest! :01oti(y .uando existe un cambio en los datos de la a licaci#n origen, $sta noti(ica a la a licaci#n destino que el dato ha cambiado, ero no le en%&a el dato nue%o! En el control de la a licaci#n destino donde debe lle%arse la in(ormaci#n, se genera el e%ento )in51oti(y, en cuyo rocedimiento odremos escribir el c#digo necesario de endiendo de nuestra a licaci#n! "ara traer la in(ormaci#n, debe e4ecutarse la orden )in59equest! En tiem o de e4ecuci#n, ara un control, esta ro iedad es de lectura y escritura, es decir, se uede usar ara saber que %alor tiene esta ro iedad en un determinado control, o ara (orzar esa ro iedad a un determinado %alor! )a sintaxis de esta ro iedad es + objeto!Lin Mode ;0 nmero< donde nmero es un entero que es eci(ica el ti o de conexi#n! (/, 2, 8 # :) y objeto es el nombre del control! #ropiedad Lin Topic Esta ro iedad es de lectura y escritura, tanto ara los controles como ara los (ormularios! .uando un control destino quiere establecer una comunicaci#n DDE =llama> a la a licaci#n origen, y dentro de ella, al (ormulario que contiene el control cuya in(ormaci#n debe ser tras asada (la a licaci#n origen uede tener %arios (ormularios)! 'l (ormulario odr&a llamarle or su nombre, ero no lo hace as&! )e llama or un nombre que se le debe oner al (ormulario en su ro iedad Lin Topic! ' este nombre se le denomina Tema! )a ro iedad Lin Topic, ara un (ormulario de origen, de%uel%e o establece el tema al que el (ormulario =res onde> en una con%ersaci#n DDE! *intaxis nombredel(ormulario!Lin Topic ;0 tema<

"ara un control destino, )a ro iedad )in5,o ic contiene el nombre de la a licaci#n y el tema, ambos se arados mediante el carcter ? (carcter 287) *intaxis nombredelcontrol!Lin Topic ;0 a licacionorigen?tema<

El nombre de la a licaci#n origen ser el nombre del royecto de Visual Basic sin la extensi#n !VB" (si la a licaci#n se est e4ecutando en el entorno de desarrollo de Visual Basic), o el nombre de la a licaci#n de Visual Basic sin la extensi#n !E@E (si se e4ecuta como un archi%o e4ecutable inde endiente)! El tema ser el mismo al que =res onde> el (ormulario donde se encuentra el control que contiene la in(ormaci#n a tras asar! #ropiedad Lin Item )a ro iedad )in5-tem solamente la tiene el control destino de la in(ormaci#n! 1o la tiene el (ormulario origen! En esta ro iedad deber ex resarse el nombre del control origen de la in(ormaci#n! Esta ro iedad es de lectura y escritura, es decir, tanto sir%e ara saber el nombre del control origen de los datos, como ara establecerlo en tiem o de e4ecuci#n! *intaxis objeto!)in5-tem ;0 cadena<

donde cadena es el nombre del control origen que tiene los datos y objeto es el nombre del control al que se le esta oniendo la ro iedad )in5-tem! #ropiedad Lin Timeout De%uel%e o establece la cantidad de tiem o que un control es era una res uesta a un mensa4e DDE! *intaxis objeto!)in5,imeout ;0 nmero<

donde nmero es una ex resi#n num$rica que es eci(ica el tiem o de es era en d$cimas de segundo! El tiem o de res uesta DDE desde a licaciones origen %ar&a! Esta ro iedad se usa ara a4ustar el tiem o que un control destino es era la res uesta de una a licaci#n origen! *i se usa Lin Timeout de (orma correcta se uede e%itar la generaci#n de un error or Visual Basic si una a licaci#n origen tarda mucho en res onder! Nota % El lazo mayor de tiem o que un control uede es erar es AB!B:B d$cimas de segundo, es decir, sobre 2 hora y 7C minutos! 'l establecer Lin Timeout a 2 se indica al control que es ere la res uesta en una con%ersaci#n DDE durante el mayor lazo de tiem o! El usuario uede (orzar que el control de4e de es erar resionando la tecla E*.! Evento Lin Notif& Dcurre cuando el origen ha cambiado el dato de(inido or el %&nculo DDE si la ro iedad )in56ode del control destino est establecido a : (1oti(icar)! "ri%ate *ub ob4etoE)in51oti(y(;&ndice 's -nteger<) End *ub

En este rocedimiento se uede escribir el c#digo necesario ara la a licaci#n, sabiendo que este e%ento se roduce cuando cambia la in(ormaci#n en origen! "osiblemente no se quiera de ositar de inmediato en el control destino, uesto que si (uese as& se habr&a uesto la ro iedad )in56ode a 2! .uando se quiera colocar el dato en el control destino, se uede utilizar el m$todo )in59equest ara obtener el nue%o dato de la (uente! M'todo Lin Re(uest "ide a la a licaci#n origen de una con%ersaci#n DDE que actualice el contenido de un control )abel, "ictureBox o ,extBox! *intaxis objeto!)in59equest *iendo objeto el nombre del control destino de la a licaci#n! Db4eto es el nombre de un control )abel, "ictureBox o ,extBox in%olucrado en una con%ersaci#n DDE como destino! )in59equest ro%oca que la a licaci#n origen en%&e los datos actuales al ob4eto, actualizando la ro iedad .a tion si ob4eto es un control )abel, la ro iedad "icture si ob4eto es un control "ictureBox o la ro iedad ,ext si ob4eto es un control ,extBox! *i la ro iedad )in56ode del ob4eto est de(inida como 2 ('utomtico), la a licaci#n origen actualiza ob4eto automticamente y )in59equest no es necesario! *i la ro iedad )in56ode del ob4eto est de(inida como 8 (6anual), la a licaci#n origen actualiza ob4eto s#lo cuando se usa )in59equest! *i la ro iedad )in56ode del ob4eto est de(inida como : (1oti(y), el origen noti(ica al destino que los datos han cambiado in%ocando el m$todo )in51oti(y! El destino debe entonces usar el m$todo )in59equest ara actualizar los datos! M'todo Lin Send ,rans(iere el contenido de un control "ictureBox a la a licaci#n destino de una con%ersaci#n DDE! *intaxis objeto!)in5*end Objeto debe ser un control "ictureBox de un ob4eto Form que sea origen de una con%ersaci#n DDE! .uando otras a licaciones establecen %&nculos automticos con un ob4eto Form de su a licaci#n, Visual Basic las noti(ica cuando el contenido de un control ,extBox o )abel origen cambia! *in embargo, Visual Basic no noti(ica automticamente a una a licaci#n destino DDE cuando el %alor de la ro iedad "icture de un control "ictureBox origen cambia! .omo la cantidad de datos de un gr(ico ueden ser muy grande y como no tiene sentido actualizar la a licaci#n destino or cada cambio de &xel de la imagen, Visual Basic requiere el uso del m$todo Lin Send ara noti(icar ex l&citamente a las a licaciones destino DDE cundo cambia el contenido de un control "ictureBox!

M'todo Lin #o e ,rans(iere el contenido de un control )abel, "ictureBox o ,extBox a la a licaci#n origen de una con%ersaci#n DDE! *intaxis objeto!Lin #o e

Objeto es el nombre del control )abel, "ictureBox o ,extBox in%olucrado en la con%ersaci#n DDE como destino! *i objeto es un control )abel, Lin #o e trans(iere el contenido de la ro iedad .a tion al origen! *i objeto es un control "ictureBox, )in5"o5e trans(iere el contenido de la ro iedad "icture al origen! *i ob4eto es un control ,extBox, )in5"o5e trans(iere el contenido de la ro iedad ,ext al origen! 1ormalmente, en una con%ersaci#n DDE la in(ormaci#n (luye de origen a destino! *in embargo, )in5"o5e ermite que un ob4eto destino suministre datos al origen! 1o todas las a licaciones origen ace tan in(ormaci#n de esta (ormaG si la a licaci#n origen no ace ta los datos, se roduce un error!

También podría gustarte