Foros Club Delphi

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

Suriu 01-03-2012 23:31:25

Problema con canvas
 
Hola estoy trabajando con canvas sobre un TImagen en concreto la propiedad Pen y de esta la propiedad style, hasta aqui todo bien; pero lo que estoy tratando de crear es un efecto parecido al de el Paint con el lápiz.


:confused::confused::confused::confused::confused::confused::confused::confused::confused::confused:

ecfisa 01-03-2012 23:34:44

Hola Suriu.

Por favor, ¿ Podrías explicar lo que estas buscando hacer con más detalles ?

Saludos.

Suriu 01-03-2012 23:50:02

Cita:

Empezado por ecfisa (Mensaje 426645)
Hola Suriu.

Por favor, ¿ Podrías explicar lo que estas buscando hacer con más detalles ?

Saludos.

Gracias por responder ecfisa, aber si me explico, lo que quiero es recrear el efecto del Lápiz o el de curva que presenta el Paint. Esto lo recrearia sobre un TImagen.

ecfisa 01-03-2012 23:58:35

Hola.

Sigo sin entenderte bién, pero a ver si lo que buscas es algo parecido a esto...
Código Delphi [-]
...
type
  TForm1 = class(TForm)
  ...
  private
    FPintando: Boolean;
    FColor: TColor;
  end;
...

implementation

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
    FPintando:= not FPintando;  // habilita/deshabilita el pintado
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  P: TPicture;
begin
  if FPintando then
  begin
    P:= TPicture.Create;
    try
      P.Assign(Image1.Picture);
      Image1.Picture.Bitmap.Height:= P.Height;
      Image1.Picture.Bitmap.Width:= P.Width;
      Image1.Canvas.Draw(0, 0, P.Graphic);
      Image1.Canvas.Pixels[X ,Y]:= FColor;
    finally
      P.Free;
    end;
  end;
end;

procedure TForm1.btnColorClick(Sender: TObject);
begin
  if ColorDialog1.Execute then
    FColor:= ColorDialog1.Color;
end;
...

Saludos.

Suriu 02-03-2012 15:24:15

1 Archivos Adjunto(s)
Les adjunto una imagen para que vean de lo que hablo. Espero que aclaré un poco el tema.

Suriu 02-03-2012 16:51:00

E estado investigando y e enconte la propiedad DrawCurve la cual se ajusta a lo que quiero lograr.
Pero no e encontrado la forma de usarla en delphi.

en este enlace se habla sobre esta propiedad:

http://msdn.microsoft.com/es-es/libr...0%29.aspx#Y751

ecfisa 02-03-2012 18:16:35

Hola.

Revisa si te sirven estos enlaces:
Saludos.

Suriu 12-03-2012 18:33:20

hola
 
E encontrado estos link1 y link2 que hablan de como crear las curvas de blizer mediante camvas, e realisado algunas pruebas pero no e podido realizar una curva mediante un boton. Osea, al presionar el boton mediante los eventos anteriores pueda dibujar de forma libre una curva.:confused:

Suriu 15-03-2012 17:31:11

E resuelto en parte este tema
 
1 Archivos Adjunto(s)
Hola, estuve probado con la propiedad LineTo del Canvas y esta me permite hacer lo que busco, pero me causa un efecto indeseado, les cuento. Cuando hago Click sobre el Form uso la propiedad MouseDawn del formulario como es de esperar me crea una línea y si dejo presionado el Click y lo arrastró haciendo uso de la propiedad MouseMove me permite dibujar en el Form de forma libre, y cuando uso la propiedad MouseUp deja de dibujar. Hasta aquí todo ok pero cuando hago Click para dibujar en ora parte del formulario me crea una línea desde donde hice el MouseUp hasta la posición actual, me gustaría eliminar este efecto al igual que la línea que me crea cuando empiezo a dibujar por primera ves. Les adjunto un ejemplo para ganar en mayor claridad. Espero sus respuestas, desde ya garacias.


:confused::confused::confused::confused::confused::confused::confused:


La franja horaria es GMT +2. Ahora son las 03:58:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi