Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Fade in/out en formularios (https://www.clubdelphi.com/foros/showthread.php?t=93217)

elrayo76 19-06-2018 15:23:42

Fade in/out en formularios
 
Gente,

Alguien sabe como se puede hacer un Fade in/out en los formularios. Lo que quiero es que un formulario que se abre junto a los iconos de notificaciones o en algun otro lado de mi aplicación este un tiempo visible y luego se cierre solo usando Fade

Saludos

TOPX 19-06-2018 16:29:59

En lugar de hacer un Form con esa funcionalidad, le propongo que despliegue una notificación, con alguna de las ideas que muestran en: Si, a pesar de todo, aún quiere desvanecer un Form, vea: -

Neftali [Germán.Estévez] 19-06-2018 16:51:29

Puedes hacerlo utilizando la API de windows AnimateWindow.
Si creas un formulario con un botón y un label y colocas este código puedes probarlo.



Código Delphi [-]
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TFormMain = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    procedure ShowForm;
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

procedure TFormMain.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  AnimateWindow(FormMain.Handle, 2000, AW_SLIDE or AW_HIDE or AW_BLEND);
  FormMain.Hide;
end;

procedure TFormMain.FormShow(Sender: TObject);
begin
  ShowForm;
end;

procedure TFormMain.ShowForm;
begin
  Self.Left := 500;
  Self.Top := 500;
  AnimateWindow(FormMain.Handle, 2000, AW_SLIDE or AW_BLEND);
end;


El efecto final será algo así (no se si se acerca a lo que quieres).





Otra opción "manual" que puedes `robar es utilizar un Timer y las propiedades AlphaBlend y AlphaBlendValue del formulario para conseguir algo parecido.


La franja horaria es GMT +2. Ahora son las 14:25:27.

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