quinta-feira, 14 de novembro de 2019

Delphi - Funções de Mensagens

Olá pessoal, sabe aquelas mensagens personalizadas que conseguimos fazer no Delphi, com os ícones de alerta, informação e erro? Pois bem, neste artigo vou mostrar p/ vocês a melhor forma de utilizá-las sem a necessidade de digitar toda a sintaxe.
Vamos criar funções "mais curtas" para usá-las de forma simples.. vamos lá?

A sintaxe correta da mensagem e a forma que normalmente para mensagens de informações, alerta ou erro que usamos é seguinte:
    MessageDlg('Minha mensagem', mtInformation, [mbOK], 0);

Já a sintaxe para as mensagens de confirmação é a seguinte:
    if MessageDlg('Confirma alteração?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
       //código a ser feito
    end;


Não é um bicho de sete cabeças né, mas vamos combinar: em um sistema onde vamos utilizar estas mensagens umas trezentas vezes ou mais, acabamos apelando para o velho e conhecido "ShowMessage('Minha mensagem')" que é mais simples né srsr

Bom, para utilizarmos as mensagens com os ícones e de forma mais resumida, vamos criar as seguintes funções para mensagens de informação, alerta e erro:

    procedure MensInfo(mensagem: string);
    begin
        MessageDlg(mensagem, mtInformation, [mbok], 0);
    end;


    procedure MensAlert(mensagem: string);
    begin
        MessageDlg(mensagem, mtWarning, [mbok], 0);
    end;

    procedure MensErro(mensagem: string);
    begin
        MessageDlg(mensagem, mtError, [mbok], 0);
    end;


Para usá-las, no lugar onde chamaríamos a "MessageDlg..." vamos fazer apenas o seguinte:
    MensInfo('Minha mensagem');

... e o mesmo para as mensagens de alerta e erro. Já para a mensagem de confirmação, vamos criar uma função que retorna um valor booleano, da seguinte maneira:

    function MensConf(mensagem: string): boolean;
    begin
        Result := MessageDlg(mensagem, mtConfirmation, [mbyes, mbno], 0) = mryes;
    end;


... daí para utilizá-la, basta fazer da seguinte forma:
    if MensConf('Deseja salvar?') then begin
        // seu código
    end;

Show né pessoal? Espero ter colaborado com vocês e ter proporcionado um pouquinho de melhora na produtividade nos seus desenvolvimentos. Abraço.

Nenhum comentário:

Postar um comentário