Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2004
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
dar un click y que se pinte la figura

Hola, estoy haciendo un programa en el que tengo una barra de herramientas y un área de dibujo. Cuando oprimo un boton de la barra de herramientas debe pintarse en el área de dibujo una figura, le que tenga asignada dicho botón. Bueno, lo que necesito saber es como hacer que si oprimo el botón, yo pueda poner el cursor en donde quiero la figura y al dar un click esta se pinte.

Otra cosa, ¿puedo ir guardando las figuras que voy creando en una pila o un arreglo?

Muchas gracias
Responder Con Cita
  #2  
Antiguo 26-10-2004
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.293
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
Cita:
Empezado por Luli
Cuando oprimo un boton de la barra de herramientas debe pintarse en el área de dibujo una figura, le que tenga asignada dicho botón. Bueno, lo que necesito saber es como hacer que si oprimo el botón, yo pueda poner el cursor en donde quiero la figura y al dar un click esta se pinte.
Una forma de hacerlo podría ser la siguiente (puede haber muchas más, seguro que a otra persona se le ocurriría otra):
Utiliza una variable booleana para marcar que vas a pintar (Pintando) y otra (tipo enumerado) para el tipo de figura (TipoFigura); Al pulsar un botón activas el flag de pintando y marcas el tipo de figura; Cuando hagas un click sobre el area de dibujo preguntas si "se debe crear algo" (Pintando=True) y si no continuas.

Código Delphi [-]
 
type
  TipoFigura = (tpNada, tfLinea, tpCirculo, tpCuadrado)
...
 
// Al marcar sobre el boton de circulo....
TipoFigura := tpCirculo;
Pintando := True;
...
 
// Al hacer un click sobre el area de dibujo...
if (Pintando) and (TipoFigura <> tpNada) then begin
  // crear la figura.
  ....
  // Limpiar las variables que hemos utilizado como "flags"
  TipoFigura := tpNada;
  Pintando := False;
end
else begin
  // otras cosas...
end;


Cita:
Empezado por Luli
¿puedo ir guardando las figuras que voy creando en una pila o un arreglo?
Por supuesto, aunque tal vez te sea más sencillo un TStringList ya que cada objeto (string) posee un apuntador a un objeto (propiedad Objects) que te facilitará mucho el trabajo. Además si trabajas con ella ordenada (necesitará un String que te haga de clave) el acceso a los objetos es más rápido que a un array (secuencial).
__________________
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.
Responder Con Cita
  #3  
Antiguo 26-10-2004
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
Declaracion de variables

Hola, muchas gracias por el interés contestandome, en realidad me es de mucha utilidad su ayuda, otra pregunta, estoy probando el codigo pero me marca error y supongo que estoy declarando mal esta variable, la verdad no sé donde la tengo que declarar y como, ¿me podria ayudar?

type
TipoFigura = (tpNada, tfLinea, tpCirculo, tpCuadrado)

Gracias
Responder Con Cita
  #4  
Antiguo 26-10-2004
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
¿como puedo dibujar la figura donde doy click dentro de mi area de dibujo?

Hola, ya corregí el error efectivamente estaba declarando mal la variable. Ahora mi pregunta es, ¿como puedo dibujar la figura donde doy click dentro de mi area de dibujo? es que estaba dibujando la figura con un ejemplo que encontré en la ayuda, es la siguiente linea:

Image1.canvas.Ellipse(Clientwidth div 2,20,400,40);

pero asi dibuja la figura en un solo lugar ya que son las coordenadas que le di, lo que necesito es que la pinte en el lugar donde doy click...

Gracias por la ayuda
Responder Con Cita
  #5  
Antiguo 26-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En lugar del evento OnClick- que supongo es el que estás usando -usa el evento OnMouseDown u OnMouseUp ya que éstos te pasan como parámetros las coordenadas del punto donde se hace el click.

// Saludos
Responder Con Cita
  #6  
Antiguo 27-10-2004
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.293
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
Cita:
Empezado por Luli
...estoy probando el codigo pero me marca error
El código que te puse era orientativo, era para darte una idea, tampoco hay que seguirlo al pie de la letra. ¿Qué error te da y dónde te da?

Cita:
Empezado por Luli
...supongo que estoy declarando mal esta variable, la verdad no sé donde la tengo que declarar y como, ¿me podria ayudar?

type
TipoFigura = (tpNada, tfLinea, tpCirculo, tpCuadrado)
Ésto es la declaración de un tipo enumerado (busca en la ayuda de Delphi por enumerated types); Se trata de definir que una determinada variable sólo va a admitir uno de éstos valores. Ésto que ves aquí es la definición luego cuando queras utilizar una variable de éstas sólo debes declararla de éste tipo.

Código Delphi [-]
...
interface
...
type
TipoFigura = (tfNada, tfLinea, tfCirculo, tfCuadrado)
...
 
implementation
...
 
 
procedure TForm....
var
tf:TipoFigura; // Variable de tipo TipoFigura
begin
// Inicializar
tf := tfNada;
// Asignar
tf := tfCirculo;
...
 
if (tf = tfCirculo) ...
...
__________________
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.
Responder Con Cita
  #7  
Antiguo 30-10-2004
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
on mouse down, on mouse up

Hola, necesito saber como usar las funciones On mouse up y on mouse down, he leido algo pero la verdad no entiendo mucho, me es más fácil con ejemplos, ¿me podrían poner algun ejemplo que me sea de utilidad? muchas gracias
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 06:38:57.


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