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 27-02-2004
dridly dridly is offline
Registrado
 
Registrado: feb 2004
Posts: 5
Poder: 0
dridly Va por buen camino
Question PolyPolyLine

Hola! Tengo un problema. Intento hacer un programa que dibuje lineas (parece sencillo). Con el botón izquierdo va dibujando las líneas, y con el derecho deja de dibujar el trazado actual.
Lo voy almacenando todo en una array de Tpoints. Para dibujar utilizo el PolyPolyLine, pero cada vez que quiero que me dibuje no me hace nada.
El código es el siguiente:

procedure TFrmDibujo.ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then//si pulsas el botón izquierdo
begin
SetLength(Element, i+1);//redimensiona la array de coordenadas
if Element[0].x=0 then
begin
Element[0].x:=X;Element[0].y:=Y;
end else
begin
Element[i].x:=X;Element[i].y:=Y;
end;
Inc(i);
end
else //SI PULSAS EL BOTÓN DERECHO
begin
SetLength(NumElements, j+1);
NumElements[j]:=i;
Inc(j);
PolyPolyline(Image.Canvas.Handle, Element, NumElements, j);
end;
end;


Cuando pulsas el botón derecho le digo que dibuje, pero no lo hace. Alguien me puede decir a que es debido???
Gracias!
Responder Con Cita
  #2  
Antiguo 27-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Nunca utilicé la función en Delphi, pero lo primero que se me ocurriría sería probar el canvas del form para ver si dibuja.
Por algún lugar encontré este código que aunque no lo probé te puede llegar a servir o dar una idea:
Código:
procedure TForm1.FormPaint(Sender: TObject);
const
  Points: Array [0..10] of TPoint =
    ((x:10;y:50),(x:50;y:10),(x:100;y:60),(x:150;y:50), 
     (x:10;y:100),(x:100;y:50),(x:20; y:50 ),
     (x:10;y:200),(x:20;y:180),(x:30;y:220),(x:40;y:180) 
     );
  Segments : Array [0..2] of DWORD = (4,3,4);
begin
  Canvas.Pen.Color :=clBlue;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Width := 1;
  PolyPolyline( Canvas.Handle, Points, Segments, 3 );
end;
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 01-03-2004
dridly dridly is offline
Registrado
 
Registrado: feb 2004
Posts: 5
Poder: 0
dridly Va por buen camino
Unhappy sobre las lineas

El programa que me pasastes funciona perfectamente, pero no entiewndo aún porque no me va a mi. Me he fijado que en todos los ejemplos la función PolyPolyLine está en el FormPaint (aunque dibuja líneas por defecto y yo quiero que las dibuje en tiempo de ejecución). A ver si alguien me puede ayudar!
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 19:57:27.


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