Ver Mensaje Individual
  #4  
Antiguo 21-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Código Delphi [-]
uses
  Rtti;

var
  X: Integer = 1;
  Y: Integer = 1;

procedure TForm1.Button1Click(Sender: TObject);
var
  LocalFoo: TObject;
  Ctx: TRttiContext;
  T: TRttiType;

  FooParentClassName: string;
  AClass: TClass;
  Button2: TButton;
begin
  LocalFoo.Free;
  FooParentClassName := LocalFoo.ClassParent.ClassName;
  AClass := LocalFoo.ClassType;
  T := Ctx.GetType(AClass);

  Button2 := T.GetMethod('Create').Invoke(AClass, [Self]).AsObject as TButton;
  Button2.Parent := Self;
  Button2.Top := Y * 10;
  Button2.Left := X * 25;
  Inc(X);

  if Button2.Left + Button2.Width >= Width then
  begin
    X := 1;
    Inc(Y, 4);
  end;

  Button2.Caption := FooParentClassName;
  Button2.OnClick := Button1Click;
end;

Este codigo crea un boton con caption "TCustomButton", lo coloca en el formulario, y destruye a Button1.
A su vez, asigno el mismo evento que puedo ir invocando una y otra vez y nunca se produce ninguna Access Violation
Responder Con Cita