Poner un CheckBox en un cuadro de diálogo
Artículo por Club Developers · 31 diciembre 2005
5072 vistas
Los MessageDlg son pequeños cuadros de diálogo que usamos amenudo para alertar, informar o preguntar al usuario. Los creamos gracias a la función:
A veces puede ser interesante mostrar un CheckBox, generalmente para poner "No mostrar más este mensaje". Devido a que esta posibilidad no la contenpla el estándar, será necesario escribir nuestro propio MessageDlg:
Ejemplo de uso:
ParametrosApp.MostrarMensaje es un parámetre de la aplicación almacenado en un .ini o en una base de datos o donde queráis.
delphi
MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;
A veces puede ser interesante mostrar un CheckBox, generalmente para poner "No mostrar más este mensaje". Devido a que esta posibilidad no la contenpla el estándar, será necesario escribir nuestro propio MessageDlg:
delphi
function MDChecked(const Msg, { Mensaje a mostrar } ChkMsg: string; { Mensaje del CheckBox } var checkedValue : boolean; { Valor del CheckBox } DlgType: TMsgDlgType; { Tipo del cuadro de diálogo } Buttons: TMsgDlgButtons) { Botones } : Word; var chk: TCheckBox; frm: TForm; begin frm := CreateMessageDialog(Msg, DlgType, Buttons); with frm do try { añadimos el CheckBox en la parte inferior derecha } chk := TCheckBox.Create(frm); with chk do begin Checked := checkedValue; Caption := chkMsg; Left := 8; Top := frm.Height - Height - 12; Width := frm.width - left - 1; Parent := frm; end; { ampliamos la ventana } Height := Height + chk.Height; Position := poScreenCenter; { la mostramos } Result := ShowModal; { recuperamos valor del CheckBox } checkedValue := chk.Checked; finally Free; end; end;
Ejemplo de uso:
delphi
var chk : boolean; begin ... if ParametrosApp.MostrarMensaje then begin chk := false; MDChecked('Bla bla bla...', 'No mostrar más este mensaje', chk, mtInformation, [mbOK]); { según el valor devuelto del CheckBox, actualizamos parámetros } ParametrosApp.MostrarMensaje := not chk; end;
ParametrosApp.MostrarMensaje es un parámetre de la aplicación almacenado en un .ini o en una base de datos o donde queráis.