Botoes Personalizados em uma MessageDlg
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.
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
Curtidas 0
Melhor post
Dorivansousa
07/11/2007
usa essa funcao abaixo...
ai é so tratar o resultado...
{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...
GOSTEI 1
Mais Respostas
Massuda
07/11/2007
O mais simples é você fazer um form do jeito que você quer.
GOSTEI 0
Devmedia
07/11/2007
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.
GOSTEI 0
Massuda
07/11/2007
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.
GOSTEI 0
Devmedia
07/11/2007
usa essa funcao abaixo...
ai é so tratar o resultado...
{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;
Muito obrigado pela ajuda, mas como eu visualizo o resultado de qual foi pressionada ?
Att.
GOSTEI 0
Dorivansousa
07/11/2007
se vc colocar mais de dois botoes o ideal é usar uma variavel pra receber o resultado da funcao... assim:
se tiver mais botoes no caso mbok vc compara com mrok, mbcancel compara com mrcancel e ai vai...
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...
GOSTEI 0