Buscar

Mensagem pop-up personalizada

Código

{
  Envio a vocês uma rotina que uso em todos os sistemas que desenvolvo, pois facilita o envio de mensagens e também dá apossibilidade de personalizar melhor do que o "Application.Messagebox"
  Esta rotina gera uma janela de diálogo de mensagem, a qual pode
  ser configurada através da definição do tipo de mensagem que será
  mostrada com o texto escrito, através da passagem dos seguintes
  Parâmetros:
 Txt: É a mensagem que será mostrada no pop-up.  
  Tipo: Define o tipo de mensagem, que também definirá o ícone que será mostrado no pop-up e, caso escolha a mensagem de confirmação, faz o tratamento para saber se o usuário clicou em sim ou em não. Os tipos são os seguintes:
  'I'-> Mensagem Informativa, com botão de OK e ícone de informação.
  'W'-> Mensagem de Alerta, com botão de OK e ícone de alerta.
  'E'-> Mensagem de Erro, com botão de Fechar e ícone de informação.
  'C'-> Mensagem Interrogativa, com botões Sim e Não para confirmação
        Retorna True se for clicado 'Sim' e False de for clicado 'Não'.
  }

Function Mensagem(Txt, Tipo:String): Boolean;
var
  i: integer;
  Form: TForm;
  Retorno : Boolean;
begin
  Retorno := True;
  if Tipo = 'W' then
    begin
      Form:= CreateMessageDialog(Txt, mtWarning ,[mbOK]);
      for i:=0 to Form.ComponentCount -1 do
        if Form.Components[i] is TButtonActionLink then
          with TButton(Form.Components[i]) do
          case ModalResult of
            mrOk: Caption := 'Fechar';
          end;
      Form.Caption := 'Mensagem de Advertência';
    end

  else
  if tipo = 'E' then
    begin
      Form:= CreateMessageDialog(Txt, mtError ,[mbOK]);
      for i:=0 to Form.ComponentCount -1 do
        if Form.Components[i] is TButton then
          with TButton(Form.Components[i]) do
          case ModalResult of
            mrOK: Caption := 'Fechar';
          end;
      Form.Caption := 'Mensagem de Erro';
    end
  else

  if tipo = 'I' then
    begin
      Form:= CreateMessageDialog(Txt, mtInformation ,[mbOK]);
      for i:=0 to Form.ComponentCount -1 do
        if Form.Components[i] is TButton then
          with TButton(Form.Components[i]) do
          case ModalResult of
            mrOK: Caption := 'Fechar';
          end;
      Form.Caption := 'Mensagem Informativa';
    end
  else

  if tipo = 'C' then
    begin
      Form:= CreateMessageDialog(Txt, mtConfirmation,[mbYes,mbNo]);
      for i:=0 to Form.ComponentCount -1 do
        if Form.Components[i] is TButton then
          with TButton(Form.Components[i]) do
          case ModalResult of
            mrYes: Caption := 'Sim';
            mrNo:  Caption := 'Não';
          end;
      Form.Caption := 'Mensagem de Confirmação';
    end
  else  // sem parametro de tipo
    begin
      Form:= CreateMessageDialog(Txt, mtCustom,[mbIgnore]);
      for i:=0 to Form.ComponentCount -1 do
        if Form.Components[i] is TButton then
          with TButton(Form.Components[i]) do
          case ModalResult of
            mrIgnore: Caption := 'Ignorar';
          end;
      Form.Caption := 'Mensagem sem definição de tipo';
    end;
  Form.ShowModal;
  if Form.ModalResult = mrNo then
    Retorno := False;

  Result := Retorno;
  Form.Free;
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 04/10/06
Por: Victor Sá De Araujo Camacho
Visualizada: 23020 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009