Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2004
cone220 cone220 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 53
Poder: 21
cone220 Va por buen camino
Como mover una ventana???

Tengo una aplicación en la que definí que el Form principal no tiene bordes. Quiero mover la ventana pinchando en un componente del tipo Panel. He visto algunas aplicaciones que funcionan de esa manera, pero no se como hacerlo.
Responder Con Cita
  #2  
Antiguo 01-06-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mira este ejemplo:
Código Delphi [-]
unit frSinBorde;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    
  private
   private
   procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
 inherited;
 if Msg.Result = htClient then Msg.Result := htCaption;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

end.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 01-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
quizás este hilo de hoy te sirva
Responder Con Cita
  #4  
Antiguo 01-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El método que te mencionan te servirá para arrastrar la ventana tomándola de alguna parte de su área cliente pero un panel no forma parte de ésta.

Una manera de mover la ventana, tomándola de un panel, podría ser manejando los eventos OnMouseDown, OnMouseMove y OnMouseUp del panel.

Comienza declarando dos variables en tu formulario:

Código Delphi [-]
type
  TFrom1 = class(TForm)
  private
    DragPoint: TPoint;
    Dragging: Boolean;
  end;

DragPoint será el punto del panel desde donde arrastres la ventana y Dragging controlará si estás arrastrando o simplemente moviendo el mouse sobre el panel. Conforme desplaces el mouse deberás fijarte en la diferencia de las coordenadas con respecto de DragPoint y sumárselas a las propiedades Left y Top del formulario:

Código Delphi [-]
procedure TForm1.Panel1MouseDown(...; X, Y: Integer);
begin
  Dragging := true;
  DragPoint := Point(X, Y);
end;

procedure TForm1.Panel1MouseMove(...; X, Y: Integer);
begin
  if Dragging then
  begin
    Left := Left + X - DragPoint.X;
    Top := Top + Y - DragPoint.Y;
  end;
end;

procedure TForm1.Panel2MouseUp(...; Shift: TShiftState; X, Y: Integer);
begin
  Dragging := false;
end;

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:58:45.


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
Copyright 1996-2007 Club Delphi