| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Xpto Lt

Registrado: 24 Abr 2003Mensajes: 92Ubicación: Pamplona
|
Publicado: Jue 02 Oct, 2003 9:42 pm Asunto: Hacer que un form se vea poco a poco (solución) |
|
|
Hola a todos, no se si la respuesta está ya en el foro pero me lo he encontrado de casualidad.
El siguiente código (el ejemplo es el primero que se me ha ocurrido, en este caso con un form) hace que apretando un botón, el form1 aparezca poco a poco y no de repente:
| Código: |
Form1->Hide();
AnimateWindow (Form1->Handle,2000,AW_BLEND);
Form1->Show();
|
yo he puesto 2 seg, si es más ya sabéis 4000, 6000....
Bueno espero que os sirva a todos, y a imaginaros a lo que podéis aplicarlo.
Saludos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Xpto Lt

Registrado: 24 Abr 2003Mensajes: 92Ubicación: Pamplona
|
Publicado: Vie 03 Oct, 2003 8:31 am Asunto: |
|
|
Vale, lo acabo de poner.
Saludos |
|
| Volver arriba |
|
 |
Niteman Lt

Registrado: 19 Dic 2002Mensajes: 92Ubicación: Sant Boi (Barcelona)
|
Publicado: Mar 07 Oct, 2003 9:42 am Asunto: |
|
|
Hola.
He aplicado la función AnimateWindow a un splash form de mi programa.
Éste form es simplemente un TImage. La cuestion es que solo funciona con el form y no con la imagen. Me aparece poco a poco el form (rectángulo gris) y cuando acaba sale la imagen (porque le tengo puesto un repaint).
Alguna solucion??
Salu2. |
|
| Volver arriba |
|
 |
|VVV| Invitado
|
Publicado: Vie 10 Oct, 2003 12:19 am Asunto: |
|
|
Asegurate de poner el AnimateWindow en el evento OnShow del form del splash.
Creo que asi no tendras problemas.
Un saludo! |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Vie 10 Oct, 2003 9:45 am Asunto: |
|
|
Gracias Xpto hace tiempo pregunté por algo similar y estube buscando por el foro, pero no dí con el.
Por cierto, me sucede lo mismo que a Niteman, me aparece poco a poco el form pero no lo el TImage que tiene dentro. Por cierto si pongo llamo al metodo Hide desde el metodo OnShow, me salta una excepción.
Ciao. |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 15 Oct, 2003 2:09 pm Asunto: |
|
|
Alguien que pueda echarnos una mano, para terminar esta historia ?
Gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 15 Oct, 2003 6:22 pm Asunto: |
|
|
| Cita: | | ...me sucede lo mismo que a Niteman, me aparece poco a poco el form pero no lo el TImage que tiene dentro... |
Además de añadir AnimateWindow en el evento OnShow como se ha dicho mas arriba, añade lo siguiente en la parte privada de la clase del form por ejemplo:
| Código: | void __fastcall WmEraseBkgnd(TWMEraseBkgnd& msg)
{
BitBlt(msg.DC, 0, 0, ClientWidth, ClientHeight,
Image1->Canvas->Handle, 0, 0, SRCCOPY);
}
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WmEraseBkgnd)
END_MESSAGE_MAP(TForm) |
Puedes bajarte si prefieres el ejemplo para BCB4, 5 y 6, desde:
http://cppbuilder.hypermart.net/AnimateWindow_TImage.zip
|
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 15 Oct, 2003 11:00 pm Asunto: |
|
|
Ahhhhhhhhiiiiiiiiiiiiii _Leo que hariamos sin tí. Gracias funciona estupendamente. Como no podría ser de otra manera viniendo de tí.
Ciao y mil gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 14 Sep, 2004 11:55 pm Asunto: |
|
|
_Leo, el enlace no funciona, gracias.. _________________
 |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 24 Sep, 2004 12:22 am Asunto: |
|
|
Gracias!! _________________
 |
|
| Volver arriba |
|
 |
diabolik100 Cdt

Registrado: 05 Ago 2004Mensajes: 15
|
Publicado: Lun 27 Sep, 2004 10:29 pm Asunto: |
|
|
Hola, he probado este método en un form de presentación que contiene solo una imagen y funciona muy bien, el problema es que en la propiedad position de mi form tengo poScreenCenter pero no puedo hacer que la animación del form salga también centrado; es decir, si mi form en tiempo de diseño esta colocado a la izquierda de la pantalla, ahi es donde se empieza a mostrar y hasta que termina de mostrarse se pasa al centro de la pantalla. ¿Como lo puedo remediar?
Gracias!! |
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Lun 27 Sep, 2004 10:37 pm Asunto: |
|
|
añade en el OnCreate()
| Código: |
Form1->Top=Screen->Height/2-(Form1->Height/2);
Form1->Left=Screen->Width/2-(Form1->Widht/2);
|
Creo que es asi y creo que esta bien escrito  _________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
diabolik100 Cdt

Registrado: 05 Ago 2004Mensajes: 15
|
Publicado: Lun 27 Sep, 2004 10:54 pm Asunto: |
|
|
| Es exactamente lo que necesitaba, Gracias!!!! |
|
| Volver arriba |
|
 |
|