Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Animación/Efecto Forms MDIChild

Animación/Efecto Forms MDIChild.

Existe alguna funcion o posibilidad de animar la creacion y destruccion de un MDIChild??? al estilo AnimateWindow. (esta no me fuciona con los MDIChild).

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 29-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si esto sirva o si se podra usar en un MDIChild:
Código Delphi [-]
var
retardo: integer;
begin
  retardo:= 10000;//retardo en milisegundos
  Form2.BringToFront;
  AnimateWindow(Form2.Handle,Retardo, AW_HOR_POSITIVE + AW_VER_POSITIVE );
  Form2.Show;
De donde saque esto dice:
Cita:
Los parámetros son:
- El handle al form que queremos animar.
- El retardo, que es el tiempo que queremos que dure la animación.
- Y el tipo de animación podemos elegir entre estas:
AW_HOR_NEGATIVE
AW_VER_POSITIVE
AW_VER_NEGATIVE
AW_BLEND
AW_CENTER
AW_HOR_POSITIVE, pueden hacerse además combinaciones: AW_HOR_POSITIVE + AW_VER_POSITIVE
Saludos
Responder Con Cita
  #3  
Antiguo 29-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
No me funciona, me tira error ("Access violation at address .....")



Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 30-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
No sabía que existiera esa función....
Pero en Delphi3000 he encontrado esto:

Cita:
AnimateWindow is a API which can enhance your GUI by adding special animations to your forms. However, the API is not valid in all operating systems. It is only valid in Windows 98 / 2000 and >

This code shows you how to use AnimateWindow when (and only when) it is supported. Without crashing and burning when it is not supported.
Donde está declarada esa función ??
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 30-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Vale, ya la he pillado...

En un form normal, si funciona... en un MDI no lo he probado..
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #6  
Antiguo 30-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Y ahora si, la he probado en MDI y funciona perfectamente.

Código Delphi [-]
procedure TForm2.FormCreate(Sender: TObject);
begin
  BringToFront;
  AnimateWindow(Handle,500,  AW_VER_POSITIVE);
end;
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #7  
Antiguo 30-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Se ve la diferencia cuando un Maestro interviene , me alegro que lo resolvieras ArdiIIa, me parecia que se podia pero no estaba seguro, nunca he trabajado con MDI, Gracias.
Saludos
Responder Con Cita
  #8  
Antiguo 30-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Gracias a ambos.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #9  
Antiguo 30-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Pero igual sigo teniendo un problema.
Las MDIChild a medida que se van creando, se posicionan es cascada. Si yo siempre creo y destruyo las MDIChild para que siempre exista una y solo una creada, cada vez que esta se crea y se destruye, a medida que se va creando una y otra vez, va rotanto la posicion de esa cascada, lo que da un efecto visual muy desagradable, no es lo mismo cuando se crea arriba de todo que abajo de todo, se ve como se "maximiza", lo que da un efecto muy molesto. Hay alguna forma de que el formulario se visualice solo cuando todo este creado?. La verdad es que no se como evitar o que hacer para no tener ese efecto visual desagradable.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #10  
Antiguo 30-07-2007
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
Pues controla tú mismo la posición. Pon la propiedad Position del formulario hijo en poDefaultPosOnly y en su evento OnShow ajustas sus propiedades Left y Top a la posición deseada.

// Saludos
Responder Con Cita
  #11  
Antiguo 30-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por mamu
Pero igual sigo teniendo un problema.
Si te refieres al problema del Access violation at address .....
Tal ves sea porque está tratando de hacer operaciones con un form MDI que todavía no existe. Fíjate que yo puse la función dentro del método create del formulario Child.


Cita:
Empezado por mamu
Las MDIChild a medida que se van creando, se posicionan es cascada. Si yo siempre creo y destruyo las MDIChild para que siempre exista una y solo una creada...
Saludos
Si estoy entendiendo bien, quieres decir, que solamente permites una Child visible en un momento dado... Si es así, creo que eso se aparta de la filosofía MDI.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #12  
Antiguo 30-07-2007
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 ArdiIIa
Si es así, creo que eso se aparta de la filosofía MDI.
Totalmente de acuerdo. Hay cierta tendencia en los foros a manejar MDI para lo que no están diseñadas. Incluso he visto quienes quieren mostrar una MDIChild modalmente.

// Saludos
Responder Con Cita
  #13  
Antiguo 30-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por roman
Totalmente de acuerdo. Hay cierta tendencia en los foros a manejar MDI para lo que no están diseñadas. Incluso he visto quienes quieren mostrar una MDIChild modalmente.

// Saludos
Lo que pasa es que, tengo la aplicacion dividida en modo usuario y modo administrador, en modo administrador, se abren todos los childs como en una aplicacion MDI normal, pero en modo usuario no.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #14  
Antiguo 30-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por roman
Pues controla tú mismo la posición. Pon la propiedad Position del formulario hijo en poDefaultPosOnly y en su evento OnShow ajustas sus propiedades Left y Top a la posición deseada.

// Saludos
Sabes, que lo he probado, y efectivamente el formulario se crea en la pos que yo defina, pero la barra de titulo, se desplaza hasta donde tendria que crearse el child y luego vuelve y se maximiza. Siempre tengo ese efecto molesto.

PD: todas las Childs tienen en WindowState en wsMaximized ya que las necesito maximizadas, no se si esto es lo que causa el efecto feo.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #15  
Antiguo 30-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
SOLUCIONADO

Encontré este código por el foro, ya que a alguien tuvo este mismo problema. Y eso que busqué y busqué, pero debe ser por la forma de expresiones que abundan en todo foro de alcance internacional

Código Delphi [-]
procedure Animacionform(Enable: Boolean);
 var
   Info: TAnimationInfo;
 begin
   Info.cbSize := SizeOf(TAnimationInfo);
   LongBool(Info.iMinAnimate) := Enable;
   SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
 end;
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar Animación GIF Delar Varios 2 19-10-2006 21:53:09
Animacion por frames Drake C++ Builder 2 28-12-2005 19:30:44
MDIChild: Efecto visual indeseado Mauro.NET OOP 1 12-06-2005 16:37:22
Animacion Troyano Varios 2 16-06-2004 15:29:02
Centrado de Forms MDIChild lafirma OOP 1 24-02-2004 21:07:53


La franja horaria es GMT +2. Ahora son las 08:28:01.


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