holaaa!
bueno, les cuento que puede acercarme mucho mas a lo que quería hacer!igual me faltan un par de cositas.
acá esta el código:
Código Delphi
[-]var
Form1: TForm1;
pila:TStack;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
figura:TShape;
begin
figura:=TShape.Create(Self);
figura.Left:= 200;
figura.Top := 150;
figura.Height:= 150;
figura.Width := 250;
figura.Brush.Color:=RGB(Random(255),Random(255),Random(255));
case Random(6) of
1:begin
figura.shape:= stCircle;
ListBox1.Items.Add('Circulo');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
2:begin
figura.shape:=stRectangle;
ListBox1.Items.Add('Rectangulo');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
3:begin
figura.shape:=stSquare;
ListBox1.Items.Add('cuadrado');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
4:begin
figura.Shape:=stRoundRect;
ListBox1.Items.Add('Rectangulo bordes redondeado');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
5:begin
figura.Shape:=stEllipse;
ListBox1.Items.Add('elipse');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
6:begin
figura.Shape:=stRoundSquare;
ListBox1.Items.Add('cuadrado bordes redondeado');
Shape1.Brush.Color:=figura.Brush.Color;
Shape1.Shape:=figura.Shape;
end;
end;
case Random(6) of
1:begin
figura.Pen.Style:=psSolid;
Shape1.Pen.Style:=figura.Pen.Style;
end;
2:begin
figura.Pen.Style:=psDash;
Shape1.Pen.Style:=figura.Pen.Style;
end;
3:begin
figura.Pen.Style:=psDot;
Shape1.Pen.Style:=figura.Pen.Style;
end;
4:begin
figura.Pen.Style:=psDashDot;
Shape1.Pen.Style:=figura.Pen.Style;
end;
5:begin
figura.Pen.Style:=psDashDotDot;
Shape1.Pen.Style:=figura.Pen.Style;
end;
6:begin
figura.Pen.Style:=psClear;
Shape1.Pen.Style:=figura.Pen.Style;
end;
end;
pila.Push(figura);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if pila.Count>0 then
begin
TShape(pila.Pop).Parent:=Self;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
pila:=TStack.Create;
end;
end.
ahora lo que quiero hacer es borrar esa pila que se me genero, es decir la que quedo en el form, como podría hacerlo?
después leí en la "ayuda" de delphi que hay una propiedad que se llama AutoSize, pero no la pude aplicar, no me aparece en cuadro de propiedades
conocen alguna propiedad que le asigne a un shape todos los atributos de otro shape?