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 13-07-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Una ayudita con TShape

Hola Amigos de la comunidad de Delphi! hoy los molestos para preguntarles sobre los Tshape!, bueno para ser mas espesifico, necesito que me ayuden con esto.. estoy creando graficos en tiempo de ejecucion por medio de Shapes pero necesito saber como hago para que cuando seleccione un shape ese le salga un recuadro para que me indique que esta seleccionado y se diferencie de los demas! si se puede un recuadro asi como el que aparec en tiempo de diseño! para agrandarlo y moverlo
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #2  
Antiguo 13-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez algo como esto te de alguna pista:

Código Delphi [-]
procedure TForm1.Shape1MouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 var
   i: integer;
 begin
   if Button = mbLeft then
   begin
     for i := 0 to ComponentCount-1 do
       if Components[i] is TShape then
         TShape(Components[i]).Pen.Width := 1;
     (Sender as TShape).Pen.Width := 2;
   end;
 end;
Se trata de que todos los "TShapes" compartan el evento MouseDown. Arriba se puede apreciar cómo estamos pendientes de que el usuario halla hecho clic con el botón izquierdo del ratón en un "TShape".

"Inizializamos" entonces todos los componentes "TShape" dándolos un ancho de lapiz igual a uno. A continuación, al "TShape" que disparó el evento que tratamos le damos un ancho de lapiz un tanto mayor.

De ese modo se puede observar a simple vista el "TShape seleccionado". Si juegas con la propiedad "Style" del lapiz ("Pen") de los "TShape" quizás puedas lograr distintos efectos, y no solamente el que se ha referido aquí.

Actualización: En el archivo que adjunto puedes ver lo dicho "funcionando" .
Archivos Adjuntos
Tipo de Archivo: zip shapes.zip (1,7 KB, 94 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 13-07-2005 a las 22:38:53. Razón: (actualización)
Responder Con Cita
  #3  
Antiguo 14-07-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Muchas Gracias amigo Dec, pero lo que pasa es que yo en tiempo de ejecucion selecciono un shape le cambio el Grozor a la linea del shape (Sender as TShape).canvas.pen.whith:=X
y tambien le cambio el color y el tamaño, entonces necesito algo como que me identifique que en ese momento estoy seleccionando ese Shape! algo como un recuadro que bordee el Shape. como el cuadro de mover un objeto en tiempo de diseño .. Pero Muchas gracias por tu ayuda amigo (y) estamos en contacto!!!
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #4  
Antiguo 14-07-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Puedes detectar el evento OnMOuseDown, para dibujar un rectangulo gris sobre el objeto seleccionado.

Luego lo vas desplazando de acuerdo al movimiento del mouse

En el evento OnMouseUp, desplazas el objeto igual cantidad que el movimiento relativo del mouse
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 14-07-2005
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.275
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
A ver si ésta modificación te es más útil...
Es un cambio respecto al ejemplo de dec, básicamente es lo mismo, pero en lugar de modificar el borde se pintan marcas...

Si asignas el evento al resto de controles, como el Form (en el ejemplo está así te servirá para "deseleccionar")
__________________
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: 30-05-2007 a las 14:17:39.
Responder Con Cita
  #6  
Antiguo 14-07-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola

Aqui te mando un ejemplo, sobre como crear componentes en tiempo de ejecución y al ocurrir un evento saber cual de todos fue seleccionado. En el ejemplo utilizo labels pero con esa idea podrias aplicarlo a los shapes o cualquier componente que crees en tiempo de ejecución y mejorar lo que ya te pasaron.

Espero te sirva
Archivos Adjuntos
Tipo de Archivo: zip labels.zip (3,0 KB, 75 visitas)
Responder Con Cita
  #7  
Antiguo 14-07-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Muchas Gracias Neftali la seleccion por marcas era exactamente lo que estaba buscando MUCHISIMAS GRACIAS
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #8  
Antiguo 14-07-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Caro Muchas gracias por ayudarme!! pero la seleccion por color no me sirve porque yo tambien le cambio el color a mis objetos en tiempo de ejecución entonces tenderia a confundir!!! Pero igualmente Muchisimas gracias por colaborar (k)
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #9  
Antiguo 28-04-2010
hackcgm hackcgm is offline
Registrado
 
Registrado: ene 2010
Posts: 9
Poder: 0
hackcgm Va por buen camino
Cita:
Empezado por JerS Ver Mensaje
Hola Amigos de la comunidad de Delphi! hoy los molestos para preguntarles sobre los Tshape!, bueno para ser mas espesifico, necesito que me ayuden con esto.. estoy creando graficos en tiempo de ejecucion por medio de Shapes pero necesito saber como hago para que cuando seleccione un shape ese le salga un recuadro para que me indique que esta seleccionado y se diferencie de los demas! si se puede un recuadro asi como el que aparec en tiempo de diseño! para agrandarlo y moverlo

yo tengo un problema parecido, no se como implemetar esto:

circulos.OnMouseDown:= circulosMouseDown( 'no se q parametros van a qui' ) ya le intente de varias formas y no me sale,
ojala me puedan orientar con esto
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 17:48:48.


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