PDA

Ver la Versión Completa : Messagebox


aanil
09-04-2008, 00:55:50
Hola a todos.

El siguiente codigo se lo escribo en Delphi en el evento onClose, para un boton que cierra la aplicacion.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if application.MessageBox('Desea Salir','Salir',mb_yesNo)=idYES then
application.Terminate;

end;
end.

Mi pregunta va por lo siguiente: si presiono el boton SI de Messagebox, cierra la aplicacion, pero lo mismo hace el boton NO. ¿Que me falta para que el boton No cierre el messagebox y se quede en la aplicacion.

Gracias por tomarnos en cuenta.

cHackAll
09-04-2008, 01:00:37
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox('Realmente desea cerrar el formulario?', 'Confimación', MB_YESNO) = IDNO then
Action := caNone;
end;

pero mejor en el evento CloseQuery;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := Application.MessageBox('Realmente desea salir?', 'Confimación', MB_YESNO) = IDYES;
end;

Saludos

aanil
09-04-2008, 01:15:48
Gracias mi hermno funciona perfecto.

Y si yo quiero una advertencia para indicarle al usuario que si esta seguro de borrar el contenido de una tabla. Cual seria la forma mas simple de un messageBox?

cHackAll
09-04-2008, 01:19:07
if Application.MessageBox('Realmente deseas borrar la tabla más importante?', 'Confimación', MB_YESNO) = IDYES then
mysql_query(Handle, 'drop table UtilizaLaBusqueda');

aanil
09-04-2008, 01:20:55
Gracia Muchas Gracias.

MaMu
09-04-2008, 03:42:40
Bueno, pero aunque todos los casos estan bien, faltaria contenplar la opcion por false, anidando el resultado del boton:


if Application.MessageBox('Deseas una taza de te?', 'Merienda', MB_YESNO) = IDYES
then begin
//Me tomo el Té
end
else begin
//No gracias, ya merendé
end;


Saludos

aanil
09-04-2008, 14:58:34
Gracias Mamu por tomarme en cuenta.