¿ Alguien sabe como sacar las rejillas de diseño ?

62 views
Skip to first unread message

arti...@gmail.com

unread,
Jun 29, 2014, 1:48:34 PM6/29/14
to publice...@googlegroups.com
Hola, estoy desarrollando una aplicación en la cual va una imagen y el usuario debe marcar algunos puntos en concreto de dicha imágen.
y se me ha ocurrido usar las líneas de rejilla que aparecen cuando diseñamos un formulario, sé que se puede hacer y me gustaría saber
si alguien sabría cómo y otra cosa, en caso de usarlas, ¿ cómo podría obtener la posición de un determinado punto dentro del dibujo usando
dichas rejilla ? es decir cómo obtener la posición x e y de la ubicación de algo en dibujo, Gracias y saludos.

ZeRoberto

unread,
Jun 29, 2014, 2:22:32 PM6/29/14
to publicesvfoxpro
1.- Abre el Formulario y ve al menu View y seleccionan Grid Lines
2.- Ve al menu Tools/Options y vete a la pestaña Forms y selecciona el Check Grid Lines

Ricardo Pina

unread,
Jun 29, 2014, 3:07:35 PM6/29/14
to Grupo VFP
Hola

Creo que artigest se refería a mostrar las lineas y la ubicación en tiempo de ejecución.

Saludos
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

ZeRoberto

unread,
Jun 29, 2014, 3:19:33 PM6/29/14
to publicesvfoxpro
Ammmmm.... puedes hacer asignando a la propiedad picture del formulario una imagen de fondo con las lineas punteadas. Pero no sabría decirte como hacerlo transparente.

Acá te dejo la imagen
Fondo.png

ZeRoberto

unread,
Jun 29, 2014, 3:20:08 PM6/29/14
to publicesvfoxpro
Derrepente lo puedes hacer con un BMP.

Saludos

Daniel Sánchez

unread,
Jun 29, 2014, 3:20:19 PM6/29/14
to Comunidad de Visual Foxpro en Español
Debes fijarte en los eventos del mouse, como mousemove, mousedown, mouseup todos ellos en sus parámetros te devuelve la posición puntero cuando haces click en el formulario o del objeto que deseas.

Saludos


El 29 de junio de 2014, 12:48, arti...@yahoo.es <arti...@gmail.com> escribió:



--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Ultraton500

unread,
Jun 29, 2014, 9:58:22 PM6/29/14
to publice...@googlegroups.com
Hola arti,
primero utiliza el control Line sobre el control Image para hacer la rejilla distribuyendolos por ej. cada 10 pixeles. 
Después puedes valerte de los parámetros nXCoord, nYCoord para obtener la posición del puntero. 
Luego, utilizando estos parámetros, deberás hacer cálculos para saber en qué cuadrante se hace un click dependiendo de la posición inicial de la rejilla. Es decir, tendrás que restarle el Left de la posición inicial de la rejilla a la posición X en la que se cliqueó y dividirla por la distancia entre cada línea de la rejilla. El entero del resultado de la división mas 1 será el cuadrante cliqueado. Haciendo lo mismo para la coordenada Y podrás obtener las dos coordenadas que podrás guardar en una db.
De esta forma se puede hacer sin problemas.
Espero que te sea de ayuda (si es que me pude explicar bien).

Saludos,
Javier.

Ultraton500

unread,
Jun 29, 2014, 10:04:13 PM6/29/14
to publice...@googlegroups.com
Me olvidé de aclarar que los parámetros nXCoord y nYCoord son devueltos por el evento MouseMove tal como indicó Daniel Sánchez.

Fidel Charny

unread,
Jun 30, 2014, 8:23:19 AM6/30/14
to publice...@googlegroups.com
Este es un ejemplo de clase label que te muestra, dentro de un control image que se pasa como referencia de objeto, la posición relativa del mouse.
El objeto creado contiene las propiedades pnTop y pnLeft que forman la coordenada del objeto image donde está el puntero del mouse.

* Convocatoria desde el formulario
*<Init>
Thisform.NewObject("lblShow","lblMousePos","ExtClases.vcx","",thisform.imgName)

* lblShow        && puedes ser cualquier nombre, no es operativo
* ExtClases.vcx        && biblioteca vcx que contiene lblMousePos
* thisform.imgName    && referencia de objeto al Control Image en cuestión

*<Destroy>
thisform
.removeObject("LblShow")

*<Library "ExtClases.vcx" (referencia a una biblioteca del usuario)
* Objeto Label
* Name lblMousePos
* Code by Foxbin2prg (Fernando D. Bozzo)
* pnTop y pnLeft dan la coordenada del mouse relativa al objeto.
*-----------------------------------------------------------------------------
DEFINE CLASS lblmousepos AS label
     
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />

   
*<DefinedPropArrayMethod>
       
*m: be_mouseenter
       
*m: be_mouseleave
       
*m: be_mousemove
       
*p: objeto
       
*p: pnleft
       
*p: pntop
   
*</DefinedPropArrayMethod>

   
AutoSize = .T.
   
BackColor = 255,247,230
   
Caption = "   420 x 275 "
   
FontSize = 8
   
Height = 16
   
Name = "lblmousepos"
    objeto
= (null)
    pnleft
= 0
    pntop
= 0
   
Width = 62
   
    PROCEDURE be_mouseenter
        LPARAMETERS nButton
, nShift, nXCoord, nYCoord
       
this.visible=.t.
    ENDPROC

    PROCEDURE be_mouseleave
        LPARAMETERS nButton
, nShift, nXCoord, nYCoord
       
this.visible=.f.
    ENDPROC

    PROCEDURE be_mousemove
        LPARAMETERS nButton
, nShift, nXCoord, nYCoord
        WITH
this
           
.pnTop=nxCoord-OBJTOCLIENT(this.objeto,2)
           
.pnLeft=nYCoord-OBJTOCLIENT(this.objeto,1)
           
.caption="  "+TRANSFORM(.pnLeft)+" x "+TRANSFORM(.pntop)
           
.top=nYCoord
           
.left=nXCoord
        ENDWITH
    ENDPROC

    PROCEDURE
Destroy
        UNBINDEVENTS
(this)
    ENDPROC

    PROCEDURE
Init
        LPARAMETERS toObjeto
       
this.objeto=toObjeto
        lcName
=toObjeto.Name
        BINDEVENT
(toObjeto,"MouseEnter",this,"be_mouseenter")
        BINDEVENT
(toObjeto,"MouseLeave",this,"be_mouseleave")
        BINDEVENT
(toobjeto,"MouseMove",this,"be_mousemove")
    ENDPROC

ENDDEFINE



El domingo, 29 de junio de 2014 14:48:34 UTC-3, arti...@yahoo.es escribió:
Reply all
Reply to author
Forward
0 new messages