Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como mover una ventana sin bordes (https://www.clubdelphi.com/foros/showthread.php?t=12092)

SMTZ 05-07-2004 20:40:20

Como mover una ventana sin bordes
 
Hola, ¿cómo puedo mover una ventana que no tiene bordes? En la web de trucomania he visto el siguiente truco pero el problema que tiene es que luego no se pueden mostrar los popus.


private
{ Private declarations }
//procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;


procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
Begin

inherited;
if Msg.Result = htClient then Msg.Result := htCaption;

End

roman 05-07-2004 20:45:42

Cita:

Empezado por SMTZ
pero el problema que tiene es que luego no se pueden mostrar los popus.

¿A qué te refieres con esto?

// Saludos

SMTZ 05-07-2004 20:57:33

Explicación
 
Pues tengo una ventana que no tiene bordes y la quiero mover (normalmente las ventanas solo se pueden mover desde el titulo de la ventana pero si le he eliminado los bordes no existe el titulo). El caso es que encontre un truco que hace lo que quiero pero los menus en forma de popup no los muestra si implemento dicho truco.

Gracias por tu interes.

roman 05-07-2004 21:15:54

Ya entiendo.

Prueba modificar el truco así:

Código Delphi [-]
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  inherited;

  if (Msg.Result = htClient) and (GetAsyncKeyState(VK_LBUTTON) <> 0) then
    Msg.Result := htCaption;
end;

De esta forma sólo permites el movimiento si el click es con el botón izquierdo y dejas el derecho libre.

// Saludos

SMTZ 05-07-2004 21:38:46

Muchas gracias
 
Muchisimas gracias, era justo lo que estaba buscando.


Saludos. :)

seduerey 06-07-2004 11:08:05

y como se quitan los bordes de las ventanas/formularios??

andres1569 06-07-2004 14:14:10

Cita:

Empezado por seduerey
y como se quitan los bordes de las ventanas/formularios??

Form.BorderStyle := bsNone;

seduerey 07-07-2004 11:05:26

:( vale, es sencillo.... la proxima vez creo que probaré antes de preguntar... respuestas asi me hacen quedar como un tonto (no por ti, sino por mi, claro)

sabroso 25-02-2017 05:55:07

Cita:

Empezado por roman (Mensaje 53548)
Ya entiendo.

Prueba modificar el truco así:

Código Delphi [-]
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  inherited;

  if (Msg.Result = htClient) and (GetAsyncKeyState(VK_LBUTTON) <> 0) then
    Msg.Result := htCaption;
end;

De esta forma sólo permites el movimiento si el click es con el botón izquierdo y dejas el derecho libre.

// Saludos


Hola trate de implementar este codigo pero no funciona quizas le falta algo

Casimiro Notevi 25-02-2017 16:24:39

Cita:

Empezado por sabroso (Mensaje 513698)
Hola trate de implementar este codigo pero no funciona quizas le falta algo

Sí, puede que te falte algo.


La franja horaria es GMT +2. Ahora son las 00:45:10.

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