GARANTIR DESCONTO

Fórum Botoes Personalizados em uma MessageDlg #348601

07/11/2007

0

Olá.

Gostaria da ajuda dos amigos sobre este código.
Preciso de um MessageDlg, MessageBox, qualquer um Message que contenha 2 (dois) ou mais botões personalizados. Exemplo:

Message(´QUAL DAS OPÇÕES´), [botao1, botao2]

botao1.caption := ´Escolhi opcao 1´;
botao2.caption := ´Escolhi opcao 2´;

If botao 1 = True then
Executa seus codigos;

If botao 2 = True then
Executa seus codigos;


--//--

Pessoal pode me ajudar?
Agradeço ajuda.
Att.


Devmedia

Devmedia

Responder

Post mais votado

07/11/2007

usa essa funcao abaixo...

{Mensagem de dois botoes com caption definidos pelo programa}
function MensagemPersonalizada(Mensagem, Titulo, Butao_Sim, Butao_Nao: String): TModalResult;
var
 i:integer;
 f:Tform;
begin
  //aqui vc pode colocar mais botoes, basta colocar mbok, mbcancel, etc...
  f:= createmessagedialog(Mensagem, mtconfirmation,[mbyes,mbno]);
  try
    for i:=0 to f.componentCount -1 do
      if f.components[i] is tbutton then
        with tbutton(f.components[i]) do
          case modalresult of
             mryes: caption := Butao_Sim;
             mrno:  caption := Butao_Nao;
             //aqui vc personaliza os botoes a mais q vc colocou
          end;
      f.caption := Titulo;
      {É possível, também, alteraro caption da janela}
      f.showmodal;
  finally
    f.free;
  end;
  Result:=f.ModalResult;
end;


ai é so tratar o resultado...


Dorivansousa

Dorivansousa
Responder

Gostei + 1

Mais Posts

07/11/2007

Massuda

O mais simples é você fazer um form do jeito que você quer.


Responder

Gostei + 0

07/11/2007

Devmedia

O mais simples é você fazer um form do jeito que você quer.


Isso é verdade.
Mas quer evitar de colocar mais Form no meu Sistema.
Tem alguma idéia de como fazer?
Att.


Responder

Gostei + 0

07/11/2007

Massuda

Dê uma olhada no unit Dialogs para ver como MessageDlg é implementada e faça sua própria função para incluir os botões adicionais que você quer.


Responder

Gostei + 0

07/11/2007

Devmedia

usa essa funcao abaixo...
{Mensagem de dois botoes com caption definidos pelo programa}
function MensagemPersonalizada(Mensagem, Titulo, Butao_Sim, Butao_Nao: String): TModalResult;
var
 i:integer;
 f:Tform;
begin
  //aqui vc pode colocar mais botoes, basta colocar mbok, mbcancel, etc...
  f:= createmessagedialog(Mensagem, mtconfirmation,[mbyes,mbno]);
  try
    for i:=0 to f.componentCount -1 do
      if f.components[i] is tbutton then
        with tbutton(f.components[i]) do
          case modalresult of
             mryes: caption := Butao_Sim;
             mrno:  caption := Butao_Nao;
             //aqui vc personaliza os botoes a mais q vc colocou
          end;
      f.caption := Titulo;
      {É possível, também, alteraro caption da janela}
      f.showmodal;
  finally
    f.free;
  end;
  Result:=f.ModalResult;
end;
ai é so tratar o resultado...



Muito obrigado pela ajuda, mas como eu visualizo o resultado de qual foi pressionada ?
Att.


Responder

Gostei + 0

07/11/2007

Dorivansousa

se vc colocar mais de dois botoes o ideal é usar uma variavel pra receber o resultado da funcao... assim:
var
  m: integer;
begin
  m:=MensagemPersonalizada(´Mensagem´,´Titulo´,´Botão 1´,´Botão 2´);
  if m=mryes then
    ShowMessage(´Informe aki os comandos do Botão 1´);
  if m=mrno then
    ShowMessage(´Informe aki os comandos do Botão 2´);


se tiver mais botoes no caso mbok vc compara com mrok, mbcancel compara com mrcancel e ai vai...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar