Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2008
gerald gerald is offline
Miembro
 
Registrado: oct 2008
Posts: 10
Poder: 0
gerald Va por buen camino
Efectos de Ventanas

Tengo un form q trabaja como un grid y con un boton se me ejecuta. Quisiera saber como le puedo dar un efecto al mostrar y al ocultar sin usar las api de windows porq deberia de ejecutarse en cualquier version de windows Si me pudieran ayudar agradeceria mucho.....
Responder Con Cita
  #2  
Antiguo 29-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, al menos deberías explicar qué clase de efectos necesitas, eso es algo extenso

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 29-10-2008
gerald gerald is offline
Miembro
 
Registrado: oct 2008
Posts: 10
Poder: 0
gerald Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola, al menos deberías explicar qué clase de efectos necesitas, eso es algo extenso

Saludos.
Mostrar y ocultar la ventana como si se desvaneciera desde abajo hacia arriba cuando se oculta y arriba hacia abajo cuando se muestra. no lento pero no tan rapido me entiendes???
Responder Con Cita
  #4  
Antiguo 29-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
con TForms no se como se pueda hacer, pero con las DevExpress, puedes usar un TDockPanel, agregar páneles y listo.
__________________

Responder Con Cita
  #5  
Antiguo 29-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El efecto de desvanecerse está disponible desde windows 2000 (con algún service pack) o superior y en delphi, creo recordar que desde delphi 6 con las propiedades AlphaBlend, etc...

¿de verdad tienes windows 95/98 todavía por ahí?

Algo que sí te va a funcionar en todos los windows es el "Roll up" esto es, decrementar el Height y width del TForm hasta que sean muy pequeños y después ocultar la ventana.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 29-10-2008
gerald gerald is offline
Miembro
 
Registrado: oct 2008
Posts: 10
Poder: 0
gerald Va por buen camino
no entiendo exactamente lo qme dices papa y como es un programa administrativo no deseo tener problemas con que windows usan los clientes por eso no quiero meterme en eso. Si me podrias explicar eso q me dijiste seria de mucha ayuda estoy urgido por solucionar ese incomveniente
Responder Con Cita
  #7  
Antiguo 30-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pon esto en un botón de la ventana que quieres ocultar:
Código Delphi [-]

var PasoAnimaciones :integer;
begin
  PasoAnimaciones := 2;

while ClientHeight >3 do
begin
  Height := Height -PasoAnimaciones;
  Top := Top + Pasoanimaciones;
  application.ProcessMessages;
  application.ProcessMessages;
end;
Hide;

En otro botón, pon este código, hará la animación de mostrarse:
Código Delphi [-]
var PasoAnimaciones :integer;
    FAlto :integer;
    FAncho:integer;
begin
  PasoAnimaciones := 2;
  FAlto := 200; // alto que se quiere de la ventana
  FAncho := 300;
    Width:=3;
    ClientHeight:= Pasoanimaciones;
    Show;
    Height := 1;
    while Height < FAlto do
    begin
      Height:= Height+Pasoanimaciones;
      application.ProcessMessages;
      application.ProcessMessages;
    end;
 end;
 Selft.SetBounds(left, top,  Falto, Fancho);
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 30-10-2008
gerald gerald is offline
Miembro
 
Registrado: oct 2008
Posts: 10
Poder: 0
gerald Va por buen camino
ok entiendo porq mandas a ejecutar dos veces el aplication.processmessages eso no lo entiendo
Responder Con Cita
  #9  
Antiguo 30-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En principio, al haber 2 llamadas, hace una pausa más grande, ya que los eventos de repintado tienen poca prioridad en windows.

La verdad, ese código tiene bastante tiempo, no recuerdo si produce algún tipo de fallo al repintar, con uno debería bastar.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 30-10-2008
gerald gerald is offline
Miembro
 
Registrado: oct 2008
Posts: 10
Poder: 0
gerald Va por buen camino
Smile

entiendo porq yo hize uno pero con el form como si fuera un grid y bueno no me da problemas pero al hacer click a donde se activa otro evento la primera vez funciona bien pero despues mientras hace el cerrado del form y se activa el otro evento pareciera q no terminara el proceso y deja la mitad del form ahi. cuando se termina la ejecucion del otro regresa al del form lo termina de cerrar y como el optro evento q uso tiene el evento repeatclick se vuelva a ejecutar y no se ve nada bien. No se como solucionar el problema por eso te pregunto sobre el metodo application.processmessages porq yo uso solo uno no se si deba colocar dos o hay otra forma de hacerlo de todas maneras aqui te paso el codigo ahi solo le faltan las coordenadas de donde se encuentra el grid pero ese funciona

procedure TFFComboBox.EjecutarEfecto(canActivate :Boolean ; pSize :Integer ; pAlign :tAlign );
var nSize: integer;
begin
nSize := 0;
while nSize < GRID_ComboBox.Height +4 do
begin
nSize := nSize + pSize;
if (nSize > GRID_ComboBox.Height +4) then
pSize := (GRID_ComboBox.Height - (nSize - pSize)) + 2;

//Formulario Activo
if canActivate = True then
begin
if not (Height > GRID_ComboBox.Height +4) then
Height := Height + pSize;
end
//oculta el formulario
else if canActivate = False then
begin
if not (Height = 0) then
begin
Height := Height - pSize;
end
end;
Application.ProcessMessages;
end;
end;
Responder Con Cita
  #11  
Antiguo 30-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No entiendo muy bien tu explicación, pero según dices, deberías sustituir el Application.processmessages por Update.

Processmessages hace que el programa "respire", por eso permite intercalar la ejecución de ese otro evento mientras se está cerrando el Form.

Update lo que hace es forzar el repintado de la ventana, pero no deja "respirar" a la aplicación. En este caso, mientras se esté cerrando el Form, no permitirá ejecutar intercalar la ejecución de ese evento que hablas.

Prueba a ver.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Efectos del Calor FGarcia La Taberna 13 14-05-2008 00:12:00
Efectos a Imagenes sac Gráficos 7 18-07-2007 21:13:58
Ventanas,Ventanas Mdi=Dolor de cabeza ? IVAND Varios 7 08-05-2006 17:27:24
Efectos de Ventanas Aldo API de Windows 2 29-03-2005 11:24:22
efectos de la marihuana haron Humor 12 26-05-2004 07:04:19


La franja horaria es GMT +2. Ahora son las 00:48:22.


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