Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2012
Avatar de PaulaGV
PaulaGV PaulaGV is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 34
Poder: 0
PaulaGV Va por buen camino
Post Pilas y tshape

hola!!!les cuento que estoy trabando con una pila y esta pila contiene shape, primero tengo que crear o modificar tantos shape como el usuario quiera(figuras geométricas, color de la figura, borde de la figura), a medida que los crea el programita los apila, luego cuando el usuario lo desee tengo que mostrar esa pila de figuras geométricas en el form.
Mi problema es el siguiente:

1-mi idea al comienzo, era crear una función a la que le envié un shape y que me lo devuelva ya modificado.Pero cuando quise instanciar la función no me deja, es decir en esta parte:
Código Delphi [-]
type
  TForm1 = class(TForm)
    Button1: TButton;
    Shape1: TShape;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    function crearFigura(f:tshape):tshape;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
2-entonces pense otra solucion: en un procedimiento,modificar un shape que ya coloque en el form, insertarlo en la pila, y crear un nuevo shape. Pero tampoco funciona, por que como dije antes no muestra ninguna figura al final:
-----------------------------------------------
//procedimiento que dasapila
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
figura:TShape;
begin
while pila.Count>0 do
figura:=TShape(pila.pop);
figura.Parent:=Form1;
end;
----------------------------
//procedimiento que modifica la figura
Código Delphi [-]
Procedure TForm1.crearfigura;
begin
with Shape1 do
begin
  Brush.Color:=RGB(Random(255),Random(255),Random(255));
  case Random(6) of
  1:begin
  Shape:= stCircle;
  ListBox1.Items.Add('Circulo');
  end;
  2:begin
  Shape:=stRectangle;
  ListBox1.Items.Add('Rectangulo');
  end;
  3:begin
  Shape:=stSquare;
  ListBox1.Items.Add('cuadrado');
  end;
  4:begin
  Shape:=stRoundRect;
  ListBox1.Items.Add('Rectangulo bordes redondeado');
  end;
  5:begin
   Shape:=stEllipse;
  ListBox1.Items.Add('elipse');
  end;
  6:begin
Shape:=stRoundSquare;
  ListBox1.Items.Add('cuadrado bordes redondeado');
  end;
  end;
  case Random(6) of
  1:Pen.Style:=psSolid;
  2:Pen.Style:=psDash;
  3:Pen.Style:=psDot;
  4:Pen.Style:=psDashDot;
  5:Pen.Style:=psDashDotDot;
  6:Pen.Style:=psClear;
  end;

end;
end;
-----------------------------------------------
//insertar figura en la pila
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
fig:tshape;
begin
crearFigura;
fig:=Shape1;
pila.Push(TObject(fig));
tshape.Create(Shape1);
end;
------------------------------------------------
//creo la pila

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
pila:=tstack.Create;
end;

no se si estoy trabajando bien la manera en que apilo y desapilo, por que no puedo lograr que las figuras aparezcan en el form, así que o no apila nunca, o no desapila, o estoy mostrando de manera incorrecta la pila de figuras.

desde ya muchas gracias!!!
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Una ayudita con TShape JerS Varios 8 28-04-2010 04:07:11
Error Tshape el compilar URBANO Varios 6 04-12-2009 20:29:26
Cómo dibujar una línea en un TShape Patricio Varios 1 18-02-2009 17:21:36
Componente TShape con Label? Jorge Rojas M. OOP 8 26-03-2008 01:11:33
Un TShape con personalidad elcigarra Gráficos 7 21-07-2005 04:47:00


La franja horaria es GMT +2. Ahora son las 15:39:25.


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