Fechar

terça-feira, 24 de abril de 2012

Delphi - Exibindo diálogos no estilo jquery


O jquery é um Framework Javascript que facilita o trabalho do desenvolvedor web. Uma dessas funcionalidades é a opção de exibir um dialogo modal em uma página web:


Graças a duas propriedades inseridas no Delphi 2006, nos podemos criar esse efeito nas nossas aplicações. São elas:AlphaBlend e AlphaBlendValue.

AlphaBlend define se a propriedade estará ativada e AlphaBlendValue define o nível de opacidade que se deseja usar.


Vamos criar uma aplicação de teste. Abra o Delphi e crie uma nova aplicação.
Agora adicione um novo formulário e
Ative a propriedade AlphaBlend e coloque 200 na propriedade AlphaBlendValue.
Mude a cor de fundo do formulário para clBlack.
Retire as bordas do formulário na propriedade BorderStyle colocando bsNone.
Em Positition coloque poOwnerFormCenter.
e WidowsState deixe como wsMaximized.


Adicione uma propriedade do tipo Form ao formulário:


type
  TFrmDestaque = class(TForm)
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
        Formulario: TForm;
  end;

No evento OnActivate digite o código:

procedure TFrmDestaque.FormActivate(Sender: TObject);
begin
 Formulario.ShowModal;
 PostMessage(Handle, WM_CLOSE, 0, 0);//Fecha o formulário
end;

Salve o formulário com o nome de FrmDestaque.

Crie um terceiro formulário como abaixo e salve como FrmDialogo:




Não esqueça de retirar os formulário da opção de autocreate do Delphi:



Agora no formulário principal adicione a função:


procedure DestacarForm(frmOwner ,frmDestaque :TForm );
var
  frmTransparente   : TFrmDestaque;
begin
   frmTransparente := TFrmDestaque.Create(nil);
   try
     frmTransparente.ClientHeight := frmOwner.ClientHeight;
     frmTransparente.ClientWidth := frmOwner.ClientWidth;
     frmTransparente.Formulario := frmDestaque;
     frmTransparente.ShowModal;
     frmTransparente.Formulario := nil;
   finally
     frmTransparente.Free;
   end;
end;



Coloque um botão e no Onclick chame a função destaque:

procedure TFrmPrincipal.btn1Click(Sender: TObject);
begin
  frmDialogo := TFrmDialogo.Create(self);
  try
     DestacarForm(Self,frmDialogo);
  finally
     frmDialogo.Free;
  end;
end;







Execute a aplicação e click no botão:


Agora é só chamar a função "DestacarForm" para qualquer formulário que você deseja destacar.

0 comentários:

Postar um comentário

Mais Populares

Seguidores

Є & V. Copyright 2011 Evaldo Avelar Marques - sprintrade network