Showmessage personalizado

30/11/2005

Colegas,

Como é que eu faço para criar um ´Showmessage´ personalizado? Tipo: com o icone que eu quizer, com ou sem um barra de progresso, com ou sem botões ou apenas mostrando algum aviso durante um determinado processo e quando esse processo acabasse ele se apagaria.

Obrigado e espero que alguem posso ajudar.

Ps. No momento só exibindo um mensagem durante um processo, já ajudaria.


Aprendiz_ce

Respostas

30/11/2005

Adriano Santos

Comece por aqui, estas são minhas funções MessageDlg personalizadas, acho que vai ajudar bastante:

[color=red:e38a6c4944]MessageDlg com CheckBox e com parâmetro pra receber outra function[/color:e38a6c4944]

function Dc_MessageDlgCheck(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons;
  IndiceHelp: LongInt; DefButton: TMOdalResult; Portugues: Boolean; Checar:
  Boolean; MsgCheck: string; Funcao: TProcedure): Word;
var
  I: Integer;
  Mensagem: TForm;
  Check: TCheckBox;
begin
  Check := nil;
  Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
  Mensagem.HelpContext := IndiceHelp;
  with Mensagem do
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if (Components[i&93; is TButton) then
      begin
        if (TButton(Components&91;i&93;).ModalResult = DefButton) then
        begin
          ActiveControl := TWincontrol(Components[i&93;);
        end;
      end;
    end;
    if Portugues then
    begin
      if Atype = mtConfirmation then
        Caption := ´Confirmação´
      else if AType = mtWarning then
        Caption := ´Aviso´
      else if AType = mtError then
        Caption := ´Erro´
      else if AType = mtInformation then
        Caption := ´Informação´;
    end;
  end;
  if Portugues then
  begin
    TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
    TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
    TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
    TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
    TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
    TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
    TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
    TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
  end;
  if Checar then
  begin
    Mensagem.ClientHeight := Mensagem.ClientHeight + 20;
    Check := TCheckBox.Create(Mensagem);
    Check.Parent := Mensagem;
    Check.Left := 15;
    Check.Top := Mensagem.ClientHeight - 20;
    Check.Visible := True;
    Check.Caption := MsgCheck;
    Check.Width := Mensagem.ClientWidth - 10;
  end;
  Result := Mensagem.ShowModal;
  if Check.Checked then
    Funcao;
  Mensagem.Free;
end;


[color=red:e38a6c4944]MessageDlg com tradução[/color:e38a6c4944]

function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone;
  Portugues: Boolean = True): Word;
var
  I: Integer;
  Mensagem: TForm;
begin
  Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
  Mensagem.HelpContext := IndiceHelp;
  with Mensagem do
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if (Components[i&93; is TButton) then
      begin
        if (TButton(Components&91;i&93;).ModalResult = DefButton) then
        begin
          ActiveControl := TWincontrol(Components&91;i&93;);
        end;
      end;
    end;
    if Portugues then
    begin
      if Atype = mtConfirmation then
        Caption := ´Confirmação´
      else if AType = mtWarning then
        Caption := ´Aviso´
      else if AType = mtError then
        Caption := ´Erro´
      else if AType = mtInformation then
        Caption := ´Informação´;
    end;
  end;
  if Portugues then
  begin
    TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
    TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
    TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
    TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
    TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
    TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
    TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
    TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
  end;
  Result := Mensagem.ShowModal;
  Mensagem.Free;
end;




Responder Citar