Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2008
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Question imagen con drag & drop

Quiero hacer una aplicacion, en que tengo una imagen de fondo, compuesta por varias subimagenes y que a la vez, tengo otras imagenes que pueda arrastrar y soltar sobre esas subimagenes.

Digamos que la imagen grande, es de un vivero y esas subimagenes son las seccion en que se divide el vivero, y las imagenes que puedo jalar y soltar son de las plantas que van en cada seccion del vivero.

Espero que haya explicado bien, lo que quiero hacer... y cualquier sugerencia o comentario es bien recibido.
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.
Responder Con Cita
  #2  
Antiguo 17-06-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola, Me parese fantástico tu proyecto, lo que no acabo de entender es cual es la duda que tienes.


Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Te pongo aqui codigo de ejemplo para hacer un drag&drop

Código Delphi [-]
unit carried;

interface

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

type
  TForm1 = class(TForm)
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Label1: TLabel;
    procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
    Carried : TControl;
    X_c : integer;
    Y_c : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        if carried <> nil then exit;
        Label1.Caption := inttostr(X_c) + ' ' + inttostr(Y_c);
        Carried := sender as TControl;
        Carried.BringToFront;
        X_c     :=  X;
        Y_c     :=  Y;
end;

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
        m, dh : integer;
begin
        if Carried = nil then exit;

        m := (Width - ClientWidth ) div 2;
        dh := Height - ClientHeight - m;

        Carried.Left := Mouse.CursorPos.x - Left - m - X_c;
        Carried.Top  := Mouse.CursorPos.y - Top - dh - Y_c;
end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        Carried := nil;
end;

end.

Los eventos tienen q estar ligados a todos los shapes.

saludos.

Última edición por coso fecha: 18-06-2008 a las 11:16:12.
Responder Con Cita
  #4  
Antiguo 17-06-2008
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Te pongo aqui codigo de ejemplo para hacer un drag&drop

Código Delphi [-]unit carried; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; Shape3: TShape; Label1: TLabel; procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } Carried : TControl; X_c : integer; Y_c : integer; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if carried <> nil then exit; Label1.Caption := inttostr(X_c) + ' ' + inttostr(Y_c); Carried := (sender as TControl); Carried.BringToFront; X_c := X; Y_c := Y; end; procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var m, dh : integer; begin m := ( Width - ClientWidth ) div 2; dh := ( Height - ClientHeight) - m; if Carried = nil then exit; Carried.Left := Mouse.CursorPos.x - Left - m - X_c; Carried.Top := Mouse.CursorPos.y - Top - dh - Y_c; end; procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Carried := nil; end; end.


Los eventos tienen q estar ligados a todos los shapes.

saludos.

Este truco esta excelente! gracias! pero aun me faltan varias cosas.... por "pensar"
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.
Responder Con Cita
  #5  
Antiguo 17-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
de nada, para estamos
Responder Con Cita
  #6  
Antiguo 18-06-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa la sección de componentes de mi página; encontrarás uno llamado TSelectOnRuntime, que creo que está pensado para hacer justo lo que necesitas.
Si miras el ejemplo que lo acompaña es casi lo mismo que debes hacer tú, pero en lugar de un vivero y plantas, hay un restaurante y mesas.
Está con código fuente, así que puedes echarle un vistazo a fondo.



Ese mismo componente también está añadido al paquete de componentes del ClubDelphi.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 09-08-2011 a las 10:10:40.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Drag and Drop... dvlt .NET 0 07-02-2008 09:42:59
Drag & Drop DanForever Varios 2 01-06-2006 14:24:25
Drag&Drop !!! rafstyle OOP 6 27-07-2004 04:39:41
Drag&Drop xflo Lazarus, FreePascal, Kylix, etc. 0 13-10-2003 19:31:22
Drag & Drop cone220 Varios 1 26-05-2003 19:06:34


La franja horaria es GMT +2. Ahora son las 06:33:29.


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