News & Events
Como incluir um CheckBox em um MessageDlg
- 21 de maio de 2007
- Posted by: Adriano Santos
- Category: checkbox delphi dicas messagedlg
Dica enviada pelo camarada Walter Chagas.
Suponha que você tenha uma caixa de diálogo (uma MessageDlg) visando algum tipo de confirmação, onde o usuário pode selecionar marcar uma checkbox (“não mostra esta mensagem outra vez”). Quando o usuário fecha esta MessageDlg – o programa pode armazenar esta condição de verificação (verificada ou não) em uma variável global – Numa possível próxima chamada a esta mensagem, o sistema simplesmente não o mostra. A idéia seria:
1. Críe uma caixa de mensagem usando CreateMessageDialog
2. Esta função abaixo mostrada, retornará um objeto do formulário com a caixa de mensagem
3. Neste objeto então, nós podemos adicionar um checkbox
4. Mostre a mensagem usando ShowModal
5. Verifique o resultado e processe o estado do checkbox
6. Armazene o estado do checkbox no registro do Windows, num INI ou aonde quer que seja;
7. Destrua o checkbox criado e a mensagem de diálogo também.
procedure TForm1.Button1Click(Sender: TObject);
begin
var
AMsgDialog : TForm;
ACheckBox : TCheckBox;
begin
AMsgDialog := CreateMessageDialog('This is a test message.', mtWarning, [mbYes, mbNo]);
ACheckBox := TCheckBox.Create(AMsgDialog);
with AMsgDialog do
try
Caption := 'Dialog Title';
Height := 169;
with ACheckBox do
begin
Parent := AMsgDialog;
Caption := 'Don''t show me again.';
Top := 121;
Left := 8;
end;
if (ShowModal = ID_YES) then
begin
if ACheckBox.Checked then
//do if checked
else
//do if NOT checked
end;
finally
Free;
end;
end;
end;
Sobre o autor:
Walter Alves Chagas Junior
Projeto e desenvolvimento de sistemas
Telemont Engenharia de telecomunicações S/A
Belo Horizonte - MG - Brasil
Siga @tdevrocks no Twitter agora e fique por dentro de todas as atualizações do blog.
Siga também o autor @asrsantos
Esse código é do Zarko Gajic:
http://delphi.about.com/