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 21-10-2004
chechu chechu is offline
Miembro
 
Registrado: oct 2004
Ubicación: argentina
Posts: 26
Poder: 0
chechu Va por buen camino
Lightbulb Arrastrar y Soltar!!!

hola a todos! espero que puedan ayudarme con una gran duda que tengo , estoy haciendo una aplicacion en la cual ,al estilo de Paint quisiera arrastrar los componentes a mi area de aplicacion y que estos se arrastren de modo que sea una copia la que me lleve y quede el componente eligido en el mismo lugar.......¿me explico?, mi area de trabajo es un PageControl que crea las tab en forma dinamica, las cuales cada una es contenedora de un frame el cual sera el que me de el permiso de aterrizaje.........
Soy novata en delphi y llevo mucho tiempo averiguando como hacer esto ¡NO ENCUENTRO COMO! por favor ayuda...Desde ya mil gracias!!!
Responder Con Cita
  #2  
Antiguo 21-10-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
No entiendo lo que dices del Paint. Si te refieres al programa de dibujo que se incluye en Windows pues no veo nada ahí que pueda arrastrarse.

En todo caso, para arrastrar componentes durante la ejecución básicamente puedes hacer esto:

1. Pon la propiedad DragMode de la componente que se arrastra en dmAutomatic.

2. En la componente de "atterizaje" debes manejar los eventos OnDragOver y OnDragDrop. En OnDragOver usas el parámetro Source para asegurarte que el objeto que se está arrastrando sobre ella es la componente que quieres y con base en ello asignas el valor del parámetro Accept (true si aceptas que puede soltarse ahí el objeto, false en caso contrario).

En el evento OnDragDrop haces lo que tengas que hacer cuando se suelte el objeto. Nuevamente el parámetro Source te indica cuál fue este objeto. Los parámetros X, Y te dan las coordenadas donde se "suelta" el objeto. Entrecomillo "suelta" porque tú misma debes hacer la traslación del objeto asignando las propiedades Left y Top y posiblemente asignando a la propiedad Parent el objeto sobre el cual soltaste la componente.

// Saludos
Responder Con Cita
  #3  
Antiguo 21-10-2004
chechu chechu is offline
Miembro
 
Registrado: oct 2004
Ubicación: argentina
Posts: 26
Poder: 0
chechu Va por buen camino
Ya se me explique mal....

Si es Paint el de windows , se que no se arrastra nada lo que pasa es que quiero trabajar con ese mismo estilo, elegir un componente y llevarlo a mi area de trabajo solo que yo quiero arrastrarlos.... ¡Como lo hace delphi con los componentes ! los arrastro y queda una copia en ese lugar....
Ahora como los frame se crean en tiempo de ejecucion como manejo el evento OnDrawover ? Muchas gracias por la ayuda Roman...
Responder Con Cita
  #4  
Antiguo 21-10-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
Cita:
Empezado por chechu
¡Como lo hace delphi con los componentes ! los arrastro y queda una copia en ese lugar....
Entonces la analogía tiene muy poco que ver con Paint y mucho con el IDE de Delphi


Cita:
Empezado por chechu
Ahora como los frame se crean en tiempo de ejecucion como manejo el evento OnDrawover ?
En este caso debes declarar tú misma el método que maneja el evento:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure DragOver(
      Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
  end;

y asignarlo al momento de crear el frame:

Código Delphi [-]
Frame.OnDragOver := DragOver;

y lo mismo haces con el evento DragDrop.

// Saludos
Responder Con Cita
  #5  
Antiguo 21-10-2004
chechu chechu is offline
Miembro
 
Registrado: oct 2004
Ubicación: argentina
Posts: 26
Poder: 0
chechu Va por buen camino
Una ultima ayudita.........

Gracias por la ayuda pero......(como aclare soy nueva en delphi..) No puedo resolver este error (al declarar el procedimiento): Unsatisfied forward or external declaration: TForm.Mover........Mover lo llame el procedimiento¿Que es lo que pasa?
Responder Con Cita
  #6  
Antiguo 21-10-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
Es que tienes que implementarlo:

Código Delphi [-]
interface

procedure TForm1.Mover(
  Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin

  { Aquí tu código }

end;

// Saludos
Responder Con Cita
  #7  
Antiguo 21-10-2004
chechu chechu is offline
Miembro
 
Registrado: oct 2004
Ubicación: argentina
Posts: 26
Poder: 0
chechu Va por buen camino
Gracias Roman!!!

Muchas gracias por tu ayuda ya di con tu ayuda otro pasito.....Este trabajo es muy importante para mi ...........
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 00:09:41.


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