Fórum Form Splash com Efeito #12157

26/11/2009

0

Olá,     Preciso montar um tela de splash que apareça durante uma determinada rotina.   Gostaria de colocar um efeito subindo e sumindo gradativamente.   Fiz conforme abaixo, mas sem o efeito de sumir gradativamente ou quase transparente a medida que sobe.      Application.CreateForm(TFormSplash, FormSplash);
   FormSplash.WindowState :=  wsMaximized;
     FormSplash.Caption := Titulo;
     FormSplash.mmo1.Lines.Add(Mensagem);
      with FormSplash do
     begin
       Top    := 695;
       Left   := 1134;
       Height := 144;
       Width  := 270;
       show;
     end;     unit USplahs; interface uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, BackgroundWorker; type
  TFormSplash = class(TForm)
    mmo1: TMemo;
    tmr1: TTimer;
    tmr3: TTimer;
    BackgroundWorker1: TBackgroundWorker;
    procedure tmr3Timer(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure BackgroundWorker1DoWork(Sender: TObject);
  private
    { Private declarations }
 procedure WMNChitTest(var M: TWMNchitTest);
 message WM_NCHITTEST;
  public
    { Public declarations }     end; var
  FormSplash: TFormSplash; implementation {$R *.dfm} procedure TFormSplash.tmr3Timer(Sender: TObject);
begin
  close;
end;   procedure TFormSplash.tmr1Timer(Sender: TObject);
VAR
  I :Integer;
begin BackgroundWorker1.RunWorkerAsync;
end;   procedure TFormSplash.WMNCHitTest(var M: TWMNCHitTest); begin
  inherited;
  if M.result = htclient then
   M.result := htCaption; end;   procedure TFormSplash.BackgroundWorker1DoWork(Sender: TObject);
begin   FormSplash.Top := FormSplash.Top - 75;
  FormSplash.Left := 1134;
  FormSplash.Height := 144;
  FormSplash.Width := 270;
end; end.   Att.. Ricardo
Frigorifico Sa

Frigorifico Sa

Responder

Posts

26/11/2009

Rodrigo Mourão

Olá amigo.

O Delphi possui duas propriedades para fazer um form ficar transparente.

AlphaBlend e AlphaBlendValue.

A primeira ativa a "transparencia" e a segunda o nivel de transparencia onde 0 e 100% transparente e 255 e 100% opaco.

No seu caso vc terá que colocar  a propriedade AlphaBlend como true e a AlphaBlendValue como 255. A medida que o form for subindo vc vai diminuindo o AlphaBlendValue como fez com o top até chegar a 0.

Acho que é isso.

Abs !!

Responder

Gostei + 0

26/11/2009

Frigorifico Sa

Olá  Rodrigo,   Funcionou perfeitamente.   Pode encerrrar.   Muito Obrigado.   Att.. Ricardo  
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar