Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Crear un Shape en Runtime (https://www.clubdelphi.com/foros/showthread.php?t=20339)

David78 13-04-2005 01:54:24

Crear un Shape en Runtime
 
Hola a todos,

Estoy intentando crear un Shape en tiempo de ejecución, pero no sé por qué no me lo hace. Con TButton sí que lo consigo fácilmente. El código que he hecho es el siguiente:
procedure TForm1.CreateShape;
var AShape: TShape;
begin
AShape:= TShape.Create(Panel1);
try
with AShape do
begin
Parent:= Self;
Left:= Random(Form1.ClientWidth-Width);
Top:= Random(Form1.ClientHeight-Height);
Brush.Color:= clWhite;
Brush.Style:= bsSolid;
Pen.Color:= clBlack;
Pen.Mode:= pmCopy;
Pen.Style:= psSolid;
Pen.Width:= 1;
end;
except
AShape.Free;
end;
end;

gracias por adelantado,
David

roman 13-04-2005 02:10:00

A mi me ha funcionado tu código así que supongo que lo que sucede es que el objeto que creas no lo ves porque queda oculto por el panel. Donde dice

Parent := Self;

creo que querías decir

Parent := Panel1;

// Saludos

hackcgm 28-04-2010 04:23:09

Cita:

Empezado por roman (Mensaje 84619)
A mi me ha funcionado tu código así que supongo que lo que sucede es que el objeto que creas no lo ves porque queda oculto por el panel. Donde dice

Parent := Self;

creo que querías decir

Parent := Panel1;

// Saludos

hola a todos, tengo una duda, como tambien estoy creando shapes en tiempo de ejecusion pero quiero implenetar este evento pero me marca error :

circulos.OnMouseDown:= circulosMouseDown('no se q parametros van a qui')

espero me puedan orientar, gracias

escafandra 28-04-2010 09:03:35

Cita:

Empezado por hackcgm (Mensaje 362141)
circulos.OnMouseDown:= circulosMouseDown('no se q parametros van a qui')

Ninguno. Para asignar un evento lo que haces es asignar la función que maneja el evento. Para ello esa función debe existir:

Código Delphi [-]
procedure TForm1.circulosMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  //...........................
end;

//..............
circulos.OnMouseDown:= circulosMouseDown;
//.............

Saludos.

hackcgm 28-04-2010 22:03:54

gracias, si me funciono, muchas gracias


La franja horaria es GMT +2. Ahora son las 16:23:02.

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