mover controles entre paginas de un multipaginas

19/01/2007 - 19:32 por Ivan | Informe spam
hola a tosdos

¿como podria mover controles entre diferentes contenedores en tiempo
de ejecucion? pej: de una pagina a otra de un multipagina, o del propio
userform a una pagina concreta o a un frame.

no se si sera posible. El metodo move no parece incluir un argumento
para cambiar de contenedor, o al menos yo no lo veo

si sabeis de alguna forma os lo agradezco

un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#16 daniel
26/01/2007 - 11:27 | Informe spam
hola yo tampoco e tenido mucho tiempo
lo miro y tecomento
muchas gracias por tu interes


un saludo
"Vinchenzo vinç" escribió en el mensaje
news:%231GX%
"Ivan" <@> escribió en el mensaje
news:

en cuanto a mover con el raton, si has encontrado algo ( yo me voy a
liar a buscar un rato ahora) te agradezco si lo comentas, pues me estoy
volviendo loco con mis intentos.



Hola Iván,
cuando tenga un momento, te adapto un pequeño ejemplo y le añado unos
comentarios, para que puedas ver una forma de habilitar al usuario a mover y
redimensionar controles con el ratón, en tiempo de ejecución.
Aunque vas a ver cómo hay algún inconveniente-limitación, como por
ejemplo, que ciertos controles no pueden pasar al frente de ciertos otros
(que yo sepa es "by design, for resign").
Algún que otro detalle seguramente también incordiará, y si se dá ya
miraremos a ver cómo lo solucionamos (en caso de que se pudiese).

Básicamente, se trata de usar un módulo de clase para los tipos de
control que se les quiera posibilitar el cambio de posición y tamaño,
declarando en ese módulo un objeto con eventos de su clase, que será el que
interceptará los eventos 'MouseDown/MouseMove' para nuestro propósito, y
actuará en función de una propiedad que indique si se está en "modo
edición", o no.
El hecho de interceptar los eventos en la clase no interfiere con los
eventos del propio objeto, es decir, como el objeto de la clase será una
referencia asignada del control del formulario, los eventos de la clase
serán "una copia", por consiguiente, si tuvieses codificado un mismo evento
en ambos módulos, se ejecutarían los dos.
Digamos que una clase 'CButton', que contenga un objeto con eventos
'MSForms.CommandButton', te servirá para todos los botones que asignes a un
objeto de esa clase, unificando así todos los procedimientos comunes a cada
tipo de control en un sólo módulo de código.

El redimensionamiento se puede permitir a como estamos acostumbrados,
simulando en tiempo de ejecución los ocho nodos que rodean un control en
tiempo de diseño cuando seleccionamos un control, tarea para la cual
usaremos ocho controles 'Image', en cuyos eventos '_MouseMove' se asignarán
las propiedades correspondientes del control seleccionado.
Estos ocho nodos (y aquí me voy al tema de trasladar físicamente un
control de un contenedor a otro) los crearemos con eventos (declarados
WithEvents), para precisamente poder crearlos sobre controles contenidos en
contenedores diferentes, pues, tal como pudiste comprobar, para el cambio de
contenedor sólo tenemos la posibilidad (al menos, que yo sepa) de realizarlo
con controles que hayan sido creados en tiempo de ejecución a través de la
colección 'Controls' de cada contenedor.


PD: Como seguramente no te gusta el Spam, te interesará leer el último
apartado del segundo enlace de mi firma, donde te aconseja "Acerca de las
direcciones de correo electrónico y la Privacidad".

Lo digo porque cada vez que se abre una respuesta, el correo del
destinatario queda expuesto al público, y aunque yo siempre intento fijarme
si el correo de quien respondo "aparenta" ser real o no, y si "puede ser",
lo elimino para no perjudicar, ...uno a veces se despista. Otros simplemente
no prestan atención al detalle. Por eso te sugiero que leas el apartado que
te he indicado.

PD 2: Como veo que publicas desde 'groups.google', te comento (por si no lo
sabes, y por si puede interesarte) que en caso de que dispongas de un lector
de noticias como Oultook Express, quizá te apetezca consultar el grupo desde
él, pues podrás leer y responder las preguntas (a mi parecer) más
cómodamente, como si se trataran de correos electrónicos, y además te
facilita el seguimiento de conversaciones pudiendo marcarlas, incluso
filtrar tus conversaciones rápidamente para saber si te han respondido en
una conversación en la que participabas, etc...

Yo, por si acaso, aquí te dejo un enlace que te explica cómo
configurarlo fácilmente:
· Utilizar un lector NNTP
http://www.microsoft.com/spain/comu...r/nntp.asp


Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas
Respuesta Responder a este mensaje
#17 daniel
26/01/2007 - 11:32 | Informe spam
el codigo de mover si que me va perfecta mente :-)
lo que tengo problemas con los link que me as dado

si pudieses me los mandabas por correo los archivos

cuando tengas tiempo no me es de mucha urgencia


un saludo y muchas gracias
"Ivan" escribió en el mensaje
news:
Acabo de encontrar un codigo que parece solucionar el problema del
cursor (debe de ser la unica combinacion que no habia probado). En mis
pruebas funciona bien

cortesia de Alex, del foro de VB ->

Option Explicit
Dim fMover As Boolean
Dim X0 As Single
Dim Y0 As Single
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
fMover = True
X0 = X
Y0 = Y
End Sub

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
If fMover Then
CommandButton1.Left = CommandButton1.Left + (X - X0)
CommandButton1.Top = CommandButton1.Top + (Y - Y0)
End If
End Sub

Private Sub CommandButton1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
fMover = False
End Sub



el vinculo->> http://tinyurl.com/2uwvhw

posiblemente tendrias que ponerlo en todos los eventos 'mouse' de los
controles a mover

un saludo
Ivan

Respuesta Responder a este mensaje
#18 Ivan
26/01/2007 - 18:36 | Informe spam
hola Vinchenzo, muchas gracias de nuevo

cuando tenga un momento, te adapto un pequeño ejemplo y le añado unos
comentarios, para que puedas ver una forma de habilitar al usuario a mover
y >redimensionar controles con el ratón, en tiempo de ejecución



estaré encantado de seguir aumentando mi déuda contigo intentando aprender
con tú ejemplo. Así, a lo mejor me animo a irle metiendo mano a las clases,
por las que tengo un (quizás exagerado) respeto. O cuanto menos, seguro que
me será muy útil para empezar a comprenderlas.

los eventos de la clase serán "una copia", por consiguiente, si tuvieses
codificado un mismo evento en ambos módulos, se ejecutarían los dos.

Digamos que una clase 'CButton', que contenga un objeto con eventos
'MSForms.CommandButton', te servirá para todos los botones que asignes a
un objeto de esa clase, unificando así todos los procedimientos comunes a
cada tipo de control en un sólo módulo de código.
-



este era uno de los principales obstáculos que veía en este tema, pués
áunque en el ej. preparado para Daniel se podría ( chapuceramente ) más o
menos usar mi propuesta, en mi caso (más de 60 controles, un tabstrip -
antes multipage -, diferentes formularios de destino, ...) podría llegar a
resultar engorroso, cuando no arriesgado, ir cargando de código pí eventos
de nosecuantos controles.

de hecho, estoy mas bién probando el añadirlos en ejecución, pero esto me
dejaba (creo/creía) totalmente limitado en lo que a los eventos se refiere.
Aunque no lo he probado, había pensado que quizás con CallByName (o algo
parecido, si es que existe) a lo mejor podía capturarlos (o al menos
intentar imitarlos).

Imaginaba que por la vía de las clases si existían otras posibilidades, pero
no acababa de decidirme, así que quizás esto sea el empujón que me hacía
falta.

simulando en tiempo de ejecución los ocho nodos que rodean un control en
tiempo de diseño cuando seleccionamos un control, tarea para la cual
usaremos ocho controles 'Image', en cuyos eventos '_MouseMove' se
asignarán las propiedades correspondientes del control seleccionado.
-



este es justo uno de los siguientes puntos en mi (elástica y caòtica)
'agenda', gracias por partida múltiple.

y en cuanto a las postdatas, la verdad es que no es la 1ª vez que alguien me
lo aconseja ( si no me equivoco, HMiguel ya lo había hecho para ambos casos)
pero, entre mi desconocimiento de los riesgos (de hecho los dos enlaces creo
haberlos leido mas de una vez, pero me temo que la terminología <sobre todo
sus sobreentendidos> informática y yo, a veces vamos por caminos paralelos)
y mi vaguería a la hora de cambiar de hábitos, no me había decidido a dar el
salto. Ahora, tras tus consejos, y aprovechando que parece que google a dado
un cambiazo (para mi gusto a peor) a su interface, creo que voy a
aprovechar.

por cierto, lo que no se como hacer es 'camuflar' el correo. Al principio
entré a los grupos a traves de TuTiempo.Net (el grupo de excel parece haber
desaparecido del mapa), y ahí si me lo permitió. Pero al entrar por google
directamente no consigo aclararme en como hacerlo, posible consecuencia de
mi enemistad con la citada terminología.

lo dicho, muchas gracias por todo y quedo a la espera, y sin prisa, de ese
ejemplo.

un saludo y hasta pronto
Ivan

PD: voy a mandarle (y/o a volver a colgar) a Daniel el archivo incluyendo
los movimientos con el mouse. Ya que esta, igual a alguien le viene bien.

PPD: en lo que se refiere a consultas anteriores, ahí sigo poco a poco
intentando avanzar por tus explicaciones (lo de intentando se debe a mi poca
capacidad, no a tus claras exposiciones y prácticos ejemplos <áunque parezca
pelotéo, te aseguro que es totálmente lo que pienso>, unido a mi constumbre
de 'dispersarme')
Respuesta Responder a este mensaje
#19 Ivan
26/01/2007 - 19:40 | Informe spam
hola Daniel, a la espera de Vinchenzo, voy a intentar mandartelo por correo,
aunque no se si te llegara. Voy a probar desde aqui (OE), aunque suelo usar
Outlock a secas. Si no te llega comentas. He incluido el movimiento con el
raton, y por si acaso lo he vuelto a colgar en internet. A mi si me
funcionan bien los vinculos, aunque las ventanas que se abren pueden
despistar. En este caso, si bajas un poco por la pagina que se abre, veras
una flechita roja moviendose señalando al vinculo.

sigue sin explicaciones. Pruebalo, y si tienes muchas dudas, y con un poco
de tiempo, le podemos echar un ojo.

un saludo y hasta pronto
Ivan

los dos son el mismo, pero por si acaso los pongo:
http://tinyurl.com/2o9oto
http://www.sendspace.com/file/as0mxu



"daniel" escribió en el mensaje
news:
el codigo de mover si que me va perfecta mente :-)
lo que tengo problemas con los link que me as dado

si pudieses me los mandabas por correo los archivos

cuando tengas tiempo no me es de mucha urgencia


un saludo y muchas gracias
Respuesta Responder a este mensaje
#20 daniel
27/01/2007 - 18:37 | Informe spam
hola Ivan
muchisimas gracias por aver mandado el archivo era lo que necesitaba

perfectisimo le ago unos arreglos y me queda que ni pintado

espero poder ayudarte en posibles dudas que tengas en el foro
un saludo y muchas gracias


"Ivan" escribió en el mensaje
news:
hola Vinchenzo, muchas gracias de nuevo

cuando tenga un momento, te adapto un pequeño ejemplo y le añado unos
comentarios, para que puedas ver una forma de habilitar al usuario a mover
y >redimensionar controles con el ratón, en tiempo de ejecución



estaré encantado de seguir aumentando mi déuda contigo intentando aprender
con tú ejemplo. Así, a lo mejor me animo a irle metiendo mano a las
clases, por las que tengo un (quizás exagerado) respeto. O cuanto menos,
seguro que me será muy útil para empezar a comprenderlas.

los eventos de la clase serán "una copia", por consiguiente, si tuvieses
codificado un mismo evento en ambos módulos, se ejecutarían los dos.

Digamos que una clase 'CButton', que contenga un objeto con eventos
'MSForms.CommandButton', te servirá para todos los botones que asignes a
un objeto de esa clase, unificando así todos los procedimientos comunes a
cada tipo de control en un sólo módulo de código.
-



este era uno de los principales obstáculos que veía en este tema, pués
áunque en el ej. preparado para Daniel se podría ( chapuceramente ) más o
menos usar mi propuesta, en mi caso (más de 60 controles, un tabstrip -
antes multipage -, diferentes formularios de destino, ...) podría llegar a
resultar engorroso, cuando no arriesgado, ir cargando de código pí eventos
de nosecuantos controles.

de hecho, estoy mas bién probando el añadirlos en ejecución, pero esto me
dejaba (creo/creía) totalmente limitado en lo que a los eventos se
refiere. Aunque no lo he probado, había pensado que quizás con CallByName
(o algo parecido, si es que existe) a lo mejor podía capturarlos (o al
menos intentar imitarlos).

Imaginaba que por la vía de las clases si existían otras posibilidades,
pero no acababa de decidirme, así que quizás esto sea el empujón que me
hacía falta.

simulando en tiempo de ejecución los ocho nodos que rodean un control en
tiempo de diseño cuando seleccionamos un control, tarea para la cual
usaremos ocho controles 'Image', en cuyos eventos '_MouseMove' se
asignarán las propiedades correspondientes del control seleccionado.
-



este es justo uno de los siguientes puntos en mi (elástica y caòtica)
'agenda', gracias por partida múltiple.

y en cuanto a las postdatas, la verdad es que no es la 1ª vez que alguien
me lo aconseja ( si no me equivoco, HMiguel ya lo había hecho para ambos
casos) pero, entre mi desconocimiento de los riesgos (de hecho los dos
enlaces creo haberlos leido mas de una vez, pero me temo que la
terminología <sobre todo sus sobreentendidos> informática y yo, a veces
vamos por caminos paralelos) y mi vaguería a la hora de cambiar de
hábitos, no me había decidido a dar el salto. Ahora, tras tus consejos, y
aprovechando que parece que google a dado un cambiazo (para mi gusto a
peor) a su interface, creo que voy a aprovechar.

por cierto, lo que no se como hacer es 'camuflar' el correo. Al principio
entré a los grupos a traves de TuTiempo.Net (el grupo de excel parece
haber desaparecido del mapa), y ahí si me lo permitió. Pero al entrar por
google directamente no consigo aclararme en como hacerlo, posible
consecuencia de mi enemistad con la citada terminología.

lo dicho, muchas gracias por todo y quedo a la espera, y sin prisa, de ese
ejemplo.

un saludo y hasta pronto
Ivan

PD: voy a mandarle (y/o a volver a colgar) a Daniel el archivo incluyendo
los movimientos con el mouse. Ya que esta, igual a alguien le viene bien.

PPD: en lo que se refiere a consultas anteriores, ahí sigo poco a poco
intentando avanzar por tus explicaciones (lo de intentando se debe a mi
poca capacidad, no a tus claras exposiciones y prácticos ejemplos <áunque
parezca pelotéo, te aseguro que es totálmente lo que pienso>, unido a mi
constumbre de 'dispersarme')


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida