Como mudar o Caption dos bottoes em um MessageDlg ?

05/03/2004

38

Galera, como eu faço pra mudar o caption dos botões de um MessageDlg ?

por exemplo, nesse MessageDlg eu tenho dois botões, um Yes e um No

if (Messagedlg(´Deseja incluir este cargo?´, mtinformation, [mbyes,mbno],0)) = mryes then

como faço pra mudar o caption deles, ao invés de yes e no, colocar sim e não?

alguem pode me ajudar?


Responder

Post mais votado

06/03/2004

Utilize da seguinte forma:

Sem Botão Default
MessageDlgDefault (´Estado não inFormado!´,mtError,[mbOk],0);

ou

Com Botão Default
MessageDlgDefault(´Deseja Excluir?´,mtWarning,[mbNo, mbYes],0, mrNo);


function MessageDlgDefault(Msg :String; AType: TMsgDlgType; AButtons : TMsgDlgButtons;
  IndiceHelp : LongInt; DefButton : TModalResult=MrNone) : 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] is TButton) Then Begin
        If (TButton(Components[i]).ModalResult=DefButton) Then Begin
          ActiveControl:=TWincontrol(Components[i]);
        End;
      End;
    End;
    If      Atype=mtConfirmation Then Caption := ´Confirmação´
    else If AType=mtWarning      Then Caption := ´Atenção´
    else If AType=mtError        Then Caption := ´Erro´
    else If AType=mtInFormation  Then Caption := ´InFormação´;
    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

Mais Posts

05/03/2004

Cebikyn

Use MessageBox (no lugar de MessageDlg), que por ser uma função do Windows, usará botões com os captions no mesmo idioma que o resto do S.O. Além disso ela permite a personalização do título, veja o exemplo:

If MessageBox(Handle, ´Deseja incluir este cargo?´, ´Favor confirmar...´, MB_YESNO+MB_SYSTEMMODAL+MB_ICONQUESTION+MB_DEFBUTTON1) = ID_YES Then



Responder

05/03/2004

Aroldo Zanela

Colega,

No caso da MessageDlg e outras constantes, você deve tratuzir ou pegar o arquivo de constantes para a sua versão do Delphi. Qual versão seria?


Responder

05/03/2004

Edmarss

mande me um e-mail q eu te envio uma função que faz uma MessageDlg em portugues com a opçao de informar o botão default para o foco.

edmarss@bol.com.br


Responder

05/03/2004

Tiagoharris

mande me um e-mail q eu te envio uma função que faz uma MessageDlg em portugues com a opçao de informar o botão default para o foco.


vc tem como mandar pra mim ??


Responder

05/03/2004

Tiagoharris

Colega, No caso da MessageDlg e outras constantes, você deve tratuzir ou pegar o arquivo de constantes para a sua versão do Delphi. Qual versão seria?


Estou utilizando o Delphi 6


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar