![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Lo siento por el enlace, no tengo nada que ver con esa web, es simplemente para que podais ver de donde saqué el código original y podais ayudarme.
Se me olvidó decir los errores que me muestra con lo que hice: Build [C++ Error] Unit1.cpp(21): E2108 Improper use of typedef 'TImage' [C++ Error] Unit1.cpp(24): E2108 Improper use of typedef 'TImage' [C++ Error] Unit1.cpp(26): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(26): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(26): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(26): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(27): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(27): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(27): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(27): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(32): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(32): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(33): E2285 Could not find a match for 'TImage::TImage(TObject *)' [C++ Error] Unit1.cpp(33): E2459 VCL style classes must be constructed using operator new [C++ Error] Unit1.cpp(41): E2108 Improper use of typedef 'TImage' [C++ Error] Unit1.cpp(43): E2293 ) expected |
|
#2
|
||||
|
||||
|
Hola aguml.
Según creo entender de tu mensaje, el movimiento de la imágen debe producirse dentro de los límites del TScrollBox. Entonces, si interpreté bién, podes hacer: Código:
TPoint PIni;
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Shift.Contains(ssCtrl)) { /* ¿ Tecla Ctrl presionada ? */
PIni.x = X;
PIni.y = Y;
Image1->BeginDrag(true);
}
}
void __fastcall TForm1::ScrollBox1DragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TImage");
}
void __fastcall TForm1::ScrollBox1DragDrop(TObject *Sender,
TObject *Source, int X, int Y)
{
Image1->Left = X - PIni.x;
Image1->Top = Y - PIni.y;
}
![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#3
|
||||
|
||||
|
Eso que pones no me funciona. Si pulso Ctrol y hago clic sobre la imagen me aparece el cursor de prohibido y no deja arrastrar la imagen. En el texto que yo puse creo que explicaba algo para evitar eso porque creo que lo que hay que hacer es mover la imagen pero lo que pasa es que al hacer clic se hace clic sobre el scrollbox y no sobre el TImage. Creo que decia algo asi. Lo ideal seria convertir el codigo que puse que está en una especie de tutorial o algo asi y se supone que funcionará sin problemas.
|
|
#4
|
||||
|
||||
|
Hola.
Ese código si funciona, te lo aseguro. ![]() El ícono de prohibido lo vas a ver siempre que el cursor del mouse esté sobre la imágen ya que este componente no tiene por qué permitir ningún drop dentro de él. Seguí desplazándote hasta posicionarte en el área del ScrollBox y me contas. De todos modos, estaba pensando que si tenes mas de una imágen dentro del ScrollBox, seguramente te sea mas útil de este modo: Código:
TPoint PIni;
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Shift.Contains(ssCtrl)) { /* ¿ Tecla Ctrl presionada ? */
PIni.x = X;
PIni.y = Y;
((TImage*)Sender)->BeginDrag(true);
}
}
void __fastcall TForm1::ScrollBox1DragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TImage");
}
void __fastcall TForm1::ScrollBox1DragDrop(TObject *Sender,
TObject *Source, int X, int Y)
{
((TImage*)Source)->Left = X - PIni.x;
((TImage*)Source)->Top = Y - PIni.y;
}
![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 03-06-2013 a las 01:32:09. |
|
#5
|
||||
|
||||
|
Hola.
Se me ocurre otra forma de mover las imágenes dentro del ScrollBox. Pero no utilizando los eventos OnDragOver y OnDragDrop como en el código de tu primer mensaje. Por medio de aquellos, veo difícil solucionar el efecto del ícono de prohibición. Tal vez esta propuesta se ajuste mas a lo que estas buscando: Código:
bool Moving;
void __fastcall TForm1::ControlMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Moving = Shift.Contains(ssCtrl);
}
void __fastcall TForm1::ControlMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TControl *Ctrl = static_cast<TControl*>(Sender);
if (Moving) {
Ctrl->Left = X + Ctrl->Left;
Ctrl->Top = Y + Ctrl->Top;
}
}
void __fastcall TForm1::ControlMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Moving = false;
}
Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 03-06-2013 a las 05:27:25. |
|
#6
|
||||
|
||||
|
Pues no se que pasa que ninguno de los que me has puesto me funciona a mi. Hay una imagen en el TImage, pulso Ctrol., hago clic sobre la imagen e intento arrastrar para que se muevan los scrolls y poder ir mostrando el resto de la imagen pero no hace absolutamente nada, solo sale el icono de prohibido y nada mas.
|
|
#7
|
||||
|
||||
|
Hola.
Te adjunto el código fuente que te sugerí en el mensaje #6 para que puedas estudiarlo con tranquilidad. (Compila y funciona correctamente en C++ Builder 6) Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 05-06-2013 a las 17:16:08. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Pasar estructura Type de delphi a Builder.. | Novatin | C++ Builder | 4 | 31-05-2013 19:00:35 |
| pasar codigo de delphi a c++ Builder | rxaxx9 | C++ Builder | 2 | 13-05-2012 06:27:17 |
| codigo en delphi a c++ builder | zidfrid | C++ Builder | 4 | 09-07-2008 14:34:29 |
| Convertir codigo Delphi a Builder | _Willa | C++ Builder | 3 | 15-02-2008 11:37:10 |
| Cambiando el codigo de delphi a builder... | paco_galo | C++ Builder | 5 | 03-12-2007 22:14:54 |
|