Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.
Cita:
Míl gracias por la pronta respuesta, y la ayuda. Verás, incialmente intenté hacerlo, pero definitivamente el compilador genera un error, ya que falta declarar qué es "NewPedalMouseDown;
Ahora te entiendo...

Dentro del form, declará el procedimiento como private:
Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure NewPedalMouseDown(Sender: TObject; Button: TMouseButton;  
              Shift: TShiftState; X, Y: Integer); 
  public
end;
Podés declararlo como public, pero no creo que convenga en este caso.

Saludos.

Última edición por ecfisa fecha: 20-09-2010 a las 16:29:39.
Responder Con Cita
  #2  
Antiguo 20-09-2010
Robin1 Robin1 is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
Robin1 Va por buen camino
Hola Ecfisa, nuevamente, míl gracias por la ayuda. Te cuento que definitivamente, no funciona. Es decir, el compilador no genera error, la imagen se carga, pero no hace Drag & Drop.

Verás, tengo una tienda de pedales de guitarra. Se me ocurrió la bonita idea de crear (no soy programador profesional, pero llevo algunos años trasteando con Delphi y me ha servido mucho en mi negocio.

Lo que quiero es que el usuario entre al programa, y valla conformando su cadena de pedales para ir viendo como le queda conformada. De ahí la necesidad del Drag & Drop.

Veamos: ¿Qué modo utilizarías para crear en tiempo de ejecución un TIMage que carge un .jpg y que puedas hacerle Drag Drop?

Digámos que mi problema, se resume a eso.

Un gran abrazo, y mil gracias nuevamente por la ayuda!!!

Julián
Responder Con Cita
  #3  
Antiguo 20-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola nuevamente Julián.

Mirá, yo trabajo don Delphi 7 pero supongo que no tendría que haber diferencia en esto con Delphi 2010.
Hice una prueba que funciona bién, seguramente tengas que adaptarla a tu necesidad; pero tal vez algo te pueda servir.

El ejemplo consta de un TImage destino, creado en diseño dentro de un TPanel (para visualizar donde dejo la imágen) y
otro TImage origen creado en en ejecución.

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    ImgDestino: TImage;
    procedure FormCreate(Sender: TObject);
    procedure ImagenDestinoDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure ImagenDestinoDragDrop(Sender, Source: TObject; X,
      Y: Integer);
  private
    FImgOrigen: TImage;
    procedure ImagenOrigenClick(Sender:TObject);
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Jpeg;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FImgOrigen:= TImage.Create(nil);
  with FImgOrigen do
  begin
    Picture.LoadFromFile('C:\Tucan.jpg');
    Parent:= Self;
    OnClick:= ImagenOrigenClick;
  end;
end;

procedure TForm1.ImagenOrigenClick(Sender: TObject);
begin
  FImgOrigen.BeginDrag(True);
end;

procedure TForm1.ImagenDestinoDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept:= Source is TImage;
end;

procedure TForm1.ImagenDestinoDragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  ImgDestino.Picture.Assign(FImgOrigen.Picture);
end;

end.

Nota: No realizé la liberación de los recursos por que no hace al funcionamiento, pero lógico que deberías liberarlos al finalizar.

Espero te ayude en algo.

Saludos.

Última edición por ecfisa fecha: 20-09-2010 a las 20:14:28.
Responder Con Cita
  #4  
Antiguo 20-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Julián.

Me quede pensando en tu caso... y se me ocurrió algo.

Al ejemplo anterior, agregale en diseño un TImage más: ImgContenedor, este va a ser el contenedor de la imágen principal. a la que vás a agregar los pedales. (Por lo que deberá tener un tamaño adecuado para 'contener' a ImgDestino)

Para el ejemplo yo ubiqué ImgDestino en la esquina superior izquierda del ImgContenedor, vos situalo donde quieras.

En ImgOrigen irías mostrando las imágenes de distintos pedales, para que realizen el Drag & Drop.

Tendrías que modificar dos eventos en el ejemplo anterior: FormCreate y ImagenDestinoDragDrop:

FormCreate:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  FImgOrigen:= TImage.Create(nil);
  with FImgOrigen do
  begin
    Picture.LoadFromFile('C:\Tucan.jpg');
    Stretch:= True;
    Parent:= Self;
    OnClick:= ImageClick;
  end;
  ImgDestino.BringToFront; // llevar imágen destino al frente
end;

ImagenDestinoDragDrop:
Código Delphi [-]
 
procedure TForm1.ImagenDestinoDragDrop(Sender, Source: TObject; X,Y: Integer);
begin
 with ImgDestino do
 begin
   Picture.Assign(FImgOrigen.Picture); // mostrar imágen
   // ImgDestino se situa en la esquina superior izquierda
   Left:= ImgContenedor.Left;       
   Top:= ImgContenedor.Top;
  end; 
end;

Así se superpone ImgDestino a ImgContenedor.

Saludos.

Última edición por ecfisa fecha: 20-09-2010 a las 20:59:38.
Responder Con Cita
  #5  
Antiguo 21-09-2010
Robin1 Robin1 is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
Robin1 Va por buen camino
Hola Ecfisa. Bueno inicialmente me gustaría agradecerte por el interés, y la ayuda. En verdad esto me sirve mucho para solucionar el asunto de la consulta.

Estoy poco a poco implementando el código que me hás entregado. Definitivamente era muy diferente a como al principio, había imaginado.

Mira, te pongo una captura de cómo, inicialmente había planeado el programa en tiempo de diseño:



Me parece muy interesante, también, el enfoque de la nueva idea que le dás, es decir, yo inicialmente tal y como ves en el diseño, había pensado en que el usuario eligiera de un ListBox los pedales...Sería mejor, tal y como dices, que lo haga a partir de capturas reales.

En las próximas horas, terminaré de implementar el código, y te diré que tal me fue, pero quise antes anticiparme, para agradecerte lo que ya es muy muy significativo de tu parte, y amplio en ayuda, para solventar el bonito proyecto para los pedales...

Por cierto y Off Topic: Había leído hace unos días, que con el nuevo Delphi, podria crear ejecutables para distribuir en Mac y otras plataformas. Es que pensaba en que no todos los clientes pueden tener Windows, y no faltará el usuario de Mac que le gustaría probarlo... En fin eso, si, te daré créditos en el programa. Ni más faltaba

Ecfisa, gracias de nuevo, y trabajaré en el código en horas de la mañana.

Un gran abrazo,

Julián Franco
Responder Con Cita
  #6  
Antiguo 21-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
De nada Julián.

Los créditos son todos tuyos que sos el que te pasaste el 99,99% del tiempo pensando y armando el programa. No creo que una centésima parte del mismo merezca mi inclusión ...

Me alegra haberte podido ayudar en algo.


Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:53:17.


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