FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
|||
|
|||
Buenas...
Veo escafandra, que tienes mas pacienza que el Santo Job ... Al revisar tu nuevo algoritmo note que era muy similar al ultimo que yo habia implementado: en el que la aplicacion Refresh no me mostraba el panel encima del TImage pero lo mostraba fuera de este, en el resto del componente (no aplique Imagen->Align = alClient).... Partiendo de que es muy raro (por no decir imposible) que muestres un algoritmo que no funcione.. me plantee si el error no era que el TPanel se mostrase en "segundo plano" (por debajo del TImage) y .. Eureka.. el error por que no me el muestra el TPanel encima del TIMage es que no reconoce la accion pulsar botones raton cuando el cursor esta encima de este.. que es cuando debe de visualizarlo o no... Código:
void __fastcall WMLbuttonDown (Messages::TMessage Message); void __fastcall WMRbuttonDown (Messages::TMessage Message); BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_RBUTTONDOWN, TMessage, WMRbuttonDown); VCL_MESSAGE_HANDLER(WM_LBUTTONDOWN, TMessage, WMLbuttonDown); END_MESSAGE_MAP (TWinControl); void __fastcall TPrueba::WMLbuttonDown (TMessage Message) { MostrarPanel void __fastcall TPrueba::WMRbuttonDown (TMessage Message) { AnularPanel Ahora solo me queda detectar cuando se acciona el raton sobre el TIMage Muchisimas gracias por tu pacienza. |
#22
|
||||
|
||||
El sistema de pintado de rayas es el mismo que tu pusiste, quería que el código comenzase a serte familiar.
Tienes una forma de detectar las pulsaciones del ratón que es asignar los eventos del mismo a una función tuya, exactamente como lo haces en el entorno visual con un formulario. La mecánica sería OnEvento = MiFuncion. Esto es aplicable a cualquier evento del control sobre el que trabajes, sólo tienes que declarar tu función como se declara el evento y asignar el puntero. De esta forma to tienes que capturar los mensajes de Windows, reservando esa técnica para cuando el control no reacciona a cierto evento que te interese. Para ilustrar el tema te pongo un ejemplo sobre el anterior: Código:
class TPrueba: public TWinControl { __published: void __fastcall PruebaMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); private: TImage *Imagen; TPanel *Panel; public: __fastcall TPrueba(TComponent* Owner); }; Código:
__fastcall TPrueba::TPrueba(TComponent* Owner): TWinControl(Owner) { Imagen = new TImage(this); Imagen->Parent = this; Imagen->Align = alClient; for(int y=0; y<200; y++) { if((y%2)==0){Imagen->Canvas->Pen->Color = clRed;}else{Imagen->Canvas->Pen->Color = clBlue;} Imagen->Canvas->Pen->Width = 1; Imagen->Canvas->MoveTo(0,y); Imagen->Canvas->LineTo(199,y); } Panel = new TPanel(this); Panel->Top = 0; Panel->Left = 0; Panel->Width = 20; Panel->Height = 20; Panel->Parent = this; Imagen->OnMouseDown = PruebaMouseDown; // Asignando el evento del TImage... } void __fastcall TPrueba::PruebaMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { // Tu respuesta al ratón } Saludos. Última edición por escafandra fecha: 07-03-2014 a las 19:43:20. |
#23
|
|||
|
|||
Buenas
Gracias por contestarme escafandra...recurro a ti otra vez (espero que sea ya la ultima) por que temgo problemas a la hora de dimensionar el componente TWinControl Código:
__fastcall TPrueba::TPrueba(TComponent* Owner) : TWinControl(Owner) { Width = 1000; Height= 1000; Grafica = new TImage(this); Grafica->Parent = this; Grafica->Align = alClient; ............................... .............................. y si quiero redimensionar e TImage en tiempo de ejecucion Código:
void TPrueba::Pintar() { Grafica->Width =200; Grafica->Height=200; Que hago mal.... Gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dibujar Elipse y Parábola pixel a pixel | Deiv | Gráficos | 9 | 28-11-2016 10:19:41 |
Como obtener el color de un pixel | ilichhernandez | Gráficos | 11 | 02-11-2006 15:40:00 |
Guardar y recuperar | noipa | Varios | 3 | 07-02-2006 14:46:21 |
pasar imagen pixel a pixel | gulder | Gráficos | 7 | 26-06-2005 02:10:45 |
¿ Cual es la mejor forma de implementar una Pizarra con Sockets? pixel a pixel ? | sase | Internet | 1 | 22-10-2003 16:23:50 |
|