Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2005
Avatar de kakesoft
kakesoft kakesoft is offline
Miembro
 
Registrado: dic 2004
Ubicación: Cuba
Posts: 99
Poder: 20
kakesoft Va por buen camino
Unhappy Ayuda con animatewindow

Miren tengo una aplicación con dos formularios, en uno, o sea, en el form1, tengo un botón el cual al darle clic se mostrará el otro form que es el 2, pero se mostrará mediante este código

procedure TForm1.Button1Click(Sender: TObject);
begin
AnimateWindow(form2.Handle, 1000, AW_SLIDE or AW_BLEND )
end;


y al mostrarse el form2, se me muestra con animación, pero no me muestra los componentes que tiene insertado, o sea, un edit, un image y un button que le he puesto a este form2.

Graciass a todos de antemano y saludosssss
Responder Con Cita
  #2  
Antiguo 12-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Después de un rato buscando en Google y de leer la ayuda de la función he podido averiguar dos cosas: que la función funciona; que no poca gente tiene problemas con esta función.

No solamente es que al mostrar el segundo formulario no aparezcan los oportunos controles, es que no puede cerrarse el formulario, de ninguna manera. Al menos a mí me ocurre así con Delphi 7 y Windows XP SP2.

En todo caso, creo que una posible solución estriba en escribir la instrucción con la función "AnimateWindow" en el evento "OnShow" del segundo formulario. Así "la cosa" parece ir bien.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-07-2005 a las 18:40:57. Razón: (corrección del texto)
Responder Con Cita
  #3  
Antiguo 12-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
Después de un rato buscando en Google
Eso pasa por desconfiar del ClubDelphi Si hubieran empezado por aquí quizá hubieran econtrado este mensaje.

// Saludos
Responder Con Cita
  #4  
Antiguo 12-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En modo alguno roman: busqué en los Foros, aunque, a lo que se ve, no como debía. Por otro lado me lanzé a Google porque no encontré ninguna referencia a la función "AnimateWindow" en la ayuda de Delphi ni tampoco en el Win32 SDK. Así fue que topé con la ayuda de la función en la página Web de MSDN.

Cita:
Empezado por roman
Lo que sí me ocurrió es que si la ventana está de inicio invisible (Form.Visible = false) al usar la función no se muestra correctamente, esto es, no aparecen los controles dentro de ella. Pero bastó poner Visible := true justo antes de la función y ya funcionó.
En todo caso llevas razón en la solución roman: tal como dices no "desaparecen" los controles del formulario y creo mucho mejor hacerlo de esa manera ( Form.Visible := true; ) que no hacer uso de la función "AnimateWindow" en el evento "OnShow" del formulario, tal y como propuse arriba.

Actualización:
¿Nuestro gozo en un pozo? A punto he estado de decirlo, porque creí haber probado el hacer "visible" el formulario antes de llamar a la función, a raiz de algo (no sé bien qué) que leí en la ayuda de la función "AnimateWindow", y, terminé decantándome por el evento "OnShow", algo que sigo sin considerar del todo conveniente, si hubiera otra forma de lograr lo que se pretende.

Sin embargo no lo hize, porque al probar lo que proponías en el hilo a que te refieres más arriba roman, me cegué cuando vi aparecer los controles en el formulario.

Pero, parece ser que no funciona... roman, comprueba que, efectivamente, el formulario aparece con sus controles si antes de llamar a "AnimateWindow" lo haces "visible", pero, ¡no se llega a realizar la animación de la ventana!... (¿?)

Actualización: Parece ser que si se sitúa la función "AnimateWindow" en el evento "OnShow" del formulario a "animar"... ¡funciona a veces sí a veces no! ¿Pero esto qué es lo que es?... Por cierto que antes dije que la solución que ofrecías roman no funcionaba... pero tal vez ocurra lo mismo: que lo haga a veces y otras veces no.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-07-2005 a las 21:32:08. Razón: (ampliación del texto)
Responder Con Cita
  #5  
Antiguo 12-07-2005
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
Hola...

cuando se publico el hilo en que explica argami la funcion animatewindow lo integre a lo que seria una muestra de un programa y me encontre con lo que se menciona en este hilo en ocaciones no se mostraban los controles (en mi caso texto) que estaba en el form, hice la siguiente chapuza y en primea instancia funciono, el proyecto no se llevo a cabo y no guarde el codigo pero la idea era la siguiente :

al crear la ventana la colocaba en una ubicacion de la pantalla en la que no fuera posible verla (mas alla de los limites visibles) ponia su propiedad visible a true (esto por lo que me di cuenta forzaba el dibujado de los elementos) luego cambiaba su visible a false, asiganaba las propiedades left y top para posicionarla en donde yo queria que apareciera y ya entonces utilizaba la funcion AnimateWindow, y zas!!! se mostraba como se espera... al parecer esto no es necesario si la ventana es autocreate, pero yo creaba las ventanas solo cuando las necesitaba...

espero les sirva....

saludos...
Responder Con Cita
  #6  
Antiguo 13-07-2005
Avatar de kakesoft
kakesoft kakesoft is offline
Miembro
 
Registrado: dic 2004
Ubicación: Cuba
Posts: 99
Poder: 20
kakesoft Va por buen camino
Socios muchísimas gracias a todos pero les diré una cosa, al poner la función animatewindow en el evento OnShow del Form2, se me muestran los controles tales como el memo y el button que fue con los que probé,el label se muestra cuando hago alguna acción en el form, o sea es como si el mismo se upgradara, se actualizara y chasssss se muestra pero inserté un timage y no se me muestra nada de nada, en fin, lo quiero hacer es un form que se me parezca a la ventanita que saca con animación a la derecha de la ventana PANDA2005, esta ventana según yo ví, tiene tlabels, tbuttons e timages.

graciass a todos nuevamente y ayúdenme por favor
Responder Con Cita
  #7  
Antiguo 16-06-2006
raf.rsr raf.rsr is offline
Registrado
 
Registrado: ene 2006
Posts: 9
Poder: 0
raf.rsr Va por buen camino
Wink

Para usar el AnimateWindow

form2.BringToFront;
AnimateWindow(form2.Handle,2000,AW_BLEND);
form2.show;

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:29:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi