Form - exibindo um form com efeito especial (darth vader)

Top  Previous  Next

// para criar um efeito que mostra a janela filha aparecendo aos poucos

// de transparente para opaca crie 2 forms... no form principal coloque:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Form2 := TForm2.Create(Self);

  Form2.ShowModal;

  Form2.Free;

end;

 

// no form2 coloque 2 timers, interval = 100 e enabled = false 

// e o codigo abaixo:

 

procedure TForm2.FormActivate(Sender: TObject);

begin

  Timer1.enabled := True;

end;

 

procedure TForm2.Timer1Timer(Sender: TObject);

var

  I: Integer;

begin

  I := AlphaBlendValue + 64;

  if I >= 255 then

  begin

    AlphaBlendValue := 255;

    Timer1.Enabled  := False;

  end

  else

    AlphaBlendValue := I;

end;

 

procedure TForm2.Timer2Timer(Sender: TObject);

var

  I: Integer;

begin

  I := AlphaBlendValue - 64;

  if I <= 0 then

  begin

    AlphaBlendValue := 0;

    Close;

  end

  else

    AlphaBlendValue := I;

end;

 

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

  Canclose := Timer2.Enabled;

  Timer2.Enabled := True;

end;