Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Graficos (https://www.clubdelphi.com/foros/showthread.php?t=15227)

Luli 14-10-2004 21:52:23

Graficos
 
Hola, me gustaria mucho que me ayudaran, tengo varias dudas acerca de manejar graficos en delphi. Tengo un area de dibujo en mi formulario, ademas tengo una barra de herramientas y al pulsar un boton, si éste tiene asignado que dibuje un circulo por ejemplo, al pulsarlo se dibuja esa imagen en el area de dibujo, pero necesito controlar la figura, es decir, poder moverla por el area de dibujo con el ratón, hasta dejarla donde yo quiera. Además necesito poder modificar el tamaño de la figura, algo asi como si estuviera en paint.

Otra cosa, ¿como puedo hacer que se borre la figura que dibujé? Estoy usando un Timage como area de dibujo dentro de mi formulario.

Muchas gracias

Neftali [Germán.Estévez] 15-10-2004 10:33:55

Así a primeras y viendo que ésto lo vas a tener que hacer con diferentes figuras supongo yo pensaría en crear un componente (no dibujar directamente sobre el área de dibujo) que te soporte todos éstos métodos (selección visual, borrado, arrastrar,...), ya que sino tendrías que programar cada objeto o "linkar" los eventos necesarios de todos ellos a medida que los vayas creando en ejecución.
Yo te conteste como si fuera sobre un control individual, pero te vuelvo a decir que creo que deberías abstraerlo y pasarlo a un nuevo componente.

Cita:

Empezado por Luli
...pero necesito controlar la figura, es decir, poder moverla por el area de dibujo con el ratón, hasta dejarla donde yo quiera.

Eso puedes hacerlo programando los eventos del ratón; MouseDown, MouseMove y MouseUp; Prueba algo como ésto en un componente TImage, te puede servir para sacar la idea.

Código Delphi [-]
...
    Capturing:Boolean;
    MouseDownSpot:TPoint;
...
 
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Capturing then begin
    TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
    TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
  end;
end;
 
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Capturing then begin
    ReleaseCapture;
    Capturing := false;
    TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
    TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
  end;
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button:MouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Capturing := true;
  MouseDownSpot.X := x;
  MouseDownSpot.Y := Y;
end;

Cita:

Empezado por Luli
Además necesito poder modificar el tamaño de la figura, algo asi como si estuviera en paint.

Para eso entiendo que vas a tener que conseguir hacer algo como lo que hace el Paint de dibujar un marco con 8 puntos para poder seleccionar el componente; La idea de funcionamiento es similar a la explicada antes (utilizando los mismos eventos), solo que si marcas la imagen se mueve y si marcas en el borde se cambia el tamaño.

Cita:

Empezado por Luli
Otra cosa, ¿como puedo hacer que se borre la figura que dibujé? Estoy usando un Timage como area de dibujo dentro de mi formulario.

Bueno, si trabajas con objetos (no dibujando sobre el área de dibujo, eliminando el componente tendrás esa parte echa).

Existe un componente que sirve para lo que estás programando, no se si puedes utilizarlo, o necesitas fabricarlo tú; En cualquier caso te puede servir de guía.

http://www.delphiarea.com/products/simplegraph/

Luli 02-11-2004 06:15:14

uso de TString List
 
hola, mi pregunta es, ¿como usar un TString List? he leido algo pero no me quedó muy claro como usarlo para guardar imagenes, si tuvieran algun ejemplo me sería de mucha utilidad.

Muchas gracias...


La franja horaria es GMT +2. Ahora son las 06:03:12.

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