Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Código de Delphi a C++ (https://www.clubdelphi.com/foros/showthread.php?t=66274)

Ledian_Fdez 10-02-2010 19:20:26

Código de Delphi a C++
 
Holas amigos de este foro:

Intento evitar que me cierren el formulario a través de Alt+F4. En Delphi lo evitaba de esta manera:

Código Delphi [-]
procedure TFrmLogin.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ssAlt in Shift then Abort;
end;

gracias de antemano

Salu2;
un delphiano

rgstuamigo 10-02-2010 20:14:05

Y por que no usas el evento OnCloseQuery del formualrio y haces esto:
Código Delphi [-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
{La variable CanClose viene por defecto con true, eso quiere decir que el formulario se cerrará
Para evitar el cierre modifico su valor a False y ya...}
 CanClose:=False;//<--Esto hace que no se cierre el formulario
 ShowMessage('No puede cerrar la ventana');
end;
Aunque :rolleyes: lo mejor es pregusntarle al usuario haciendo esto en el mismo evento:
Código Delphi [-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 if MessageBox(Handle,'Esta usted seguro de cerrar?','Cerrando...',MB_YESNO)=mrNo then
      CanClose:=False;
end;
.
Saludos...:)

Ledian_Fdez 11-02-2010 14:28:14

OnCloseQuery no soluciona mi problema !!!
 
Realmente ese no soluciona mi problema, ya que quiero forzar que cierren el formulario a través de los botones. Es el formulario de loguearse. Y solo me falta cuando usan el (Alt+F4).

Salu2,
Ledian.

rgstuamigo 11-02-2010 17:41:38

Solo por curiosidad
 
Cita:

Empezado por Ledian_Fdez (Mensaje 353662)
Realmente ese no soluciona mi problema, ya que quiero forzar que cierren el formulario a través de los botones. Es el formulario de loguearse. Y solo me falta cuando usan el (Alt+F4).

Salu2,
Ledian.

Solo por curiosidad me gustaria saber por que quieres evitar que cierren el formulario con Alt+F4?
Ten en cuenta que para los que usamos Windows como sistema Operativo,ésta es una forma estandar y facil de cerrar las ventanas.;).
Ahora el código que pones en el primer post que esta hecho en delphi lo que hace es abortar cuando se presiona la tecla Alt, lo cual personalmente no lo veo muy adecuado especialmente cuando en el formulario existe algun Menú y quiero acceder a algun item usando los atajos del teclado, pero si es tu forma de programar y es lo que pretendes hacer en C++Builder pues tal código se traduce asi:
Cita:

void __fastcall TFrmLogin::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Shift.Contains(ssAlt)) Abort();
}
Aunque sería mejor si fuera asi:
Cita:

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Shift.Contains(ssAlt)&& Key==VK_F4) Abort();
}
Saludos...:)

Ledian_Fdez 11-02-2010 20:56:00

Gracias
 
Ok ... Ahora si me pincha !!! :D


La franja horaria es GMT +2. Ahora son las 10:14:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi