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 02-10-2005
slim jim slim jim is offline
Registrado
 
Registrado: oct 2005
Posts: 2
Poder: 0
slim jim Va por buen camino
timer +1

hola, me gustaria hacer ke mi aplicacion apareciera poco a poco usando AlphaBlendValue (de la form) e intente haciendolo con un timer ke hiciera ke la variable se aumentara +1 pero el problema es ke soi nuevo con esto de las variables y no se que me esta fallando

Código Delphi [-]
unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, ExtCtrls;
 
 type
   TForm1 = class(TForm)
   Timer1: TTimer;
   procedure FormCreate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
   blaz: integer = 1;
 
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
   form1.AlphaBlend:=true;
   form1.AlphaBlendValue:= blaz;
 end;
 
 procedure TForm1.Timer1Timer(Sender: TObject);
 begin
   form1.AlphaBlendValue:= blaz +1;
 end;
 
 end.
aqui esta el codigo.. alguien me puede explicar por ke no me funciona?

grax

Última edición por dec fecha: 02-10-2005 a las 03:20:20. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 02-10-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,

Fíjate que no estás incrementando el valor de la variable "blaz", de tal modo que "AlphaBlendValue" valdrá siempre dos, esto es, "blaz + 1" (recuerda que "blaz" la inicializas en 1). Por otro lado podrías omitir el uso de dicha variable, incrementando el valor de "AlphaBlendValue" directamente, tal que así:

Código Delphi [-]
  AlphaBlendValue := AlphaBlendValue + 1;
En cualquier caso vigila estas dos cosas: primero, controla que al llegar a "AlphaBlendValue >= 255" paras el "TTimer", puesto que si este continúa habilitado la variable "AlphaBlendValue" se reiniciará a cero, creándose un "bucle infinito"; segundo, por si no lo sabías, te recuerdo que la transparencia de los formularios está disponible en Windows XP y no sé si Windows 2000, pero, desde luego, no en ninguna otra versión anterior de Windows.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-10-2005 a las 03:40:56. Razón: Corrección del texto.
Responder Con Cita
  #3  
Antiguo 02-10-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,

Recordé este Hilo publicado hace tiempo y, para lograr un efecto como el que precisas, no necesitas sino la siguiente instrucción en el evento "OnCreate" del formulario:

Código Delphi [-]
  AnimateWindow(Form1.Handle, 1000, AW_BLEND);
De todos modos (no estoy ahora del todo seguro) es posible que el efecto "de transparencia" siga sin ser válido en todas las versiones de Windows.

Actualización: Según la descripción de la función "AnimateWindow" que puede encontrarse aquí mismo dicha función está disponible en Windows 98 y Windows 2000... desde luego también en Windows Xp e ignoro si en otras versiones de Windows.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-10-2005 a las 03:52:32. Razón: Actualización del texto.
Responder Con Cita
  #4  
Antiguo 02-10-2005
slim jim slim jim is offline
Registrado
 
Registrado: oct 2005
Posts: 2
Poder: 0
slim jim Va por buen camino
gracias por responderme se me hizo mas manejable el ke me diste primero (alphablendvalue := alphablendvalue +1) ya lo prove y me funciono como lo esperaba
Responder Con Cita
  #5  
Antiguo 02-10-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,

Yo me plantearía el uso de la función "AnimateWindow". Primeramente porque lo considero más sencillo: no necesitas "TTimer". En segundo lugar porque dicha función parece estar disponible a partir de Windows 98, mientras que la propiedad "AlphaBlend" (según la ayuda en Delphi) no funcionará en máquinas que no tengan instalada una versión de Windows 2000 ó superior. Pero, en fin, el programa lo haces tú, pues no faltaba más.
__________________
David Esperalta
www.decsoftutils.com
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 12:34:42.


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