<br><br><div class="gmail_quote">2010/6/15 Maxi <span dir="ltr"><<a href="mailto:maximiliano.duarte@gmail.com">maximiliano.duarte@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
2010/6/15 José Mejuto <<a href="mailto:joshyfun@gmail.com">joshyfun@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Hello christian,<br>
><br>
> Tuesday, June 15, 2010, 7:05:39 PM, you wrote:<br>
><br>
> cO> *type *Tlaclase = class<br>
> cO>   *public *<br>
> cO>     *Procedure *Elprocedimiento(sender:tobject)<br>
> cO>       ----<br>
> cO> *end*<br>
> cO>  ----------<br>
> cO> *public *<br>
> cO>    *procedure *button.click(sender:tobject);<br>
> cO>    *procedure *OtroProcedure(sender:tobject);<br>
> cO> .......<br>
> cO> *implementation*<br>
> cO>    *procedure *Totraclase.button.click(sender:tobject);<br>
> cO> var instancia: Tlaclase;<br>
> cO> *begin*<br>
> cO>     instancia:= Tlaclase.create (..)<br>
> cO>     instancia.Elprocedimiento :=@OtroProcedure * --> Esto me genera error  *<br>
> cO> *end*<br>
> cO>    *procedure *Totraclase.OtroProcedure(sender:tobject);<br>
><br>
> ElOtroprocedimiento no es un evento, es un procedimiento, que no se<br>
> puede cambiar. Para eso "ElOtroprocedimiento" tendría que ser un<br>
> evento, al estilo de "OnElOtroProcedimiento", vamos una property o<br>
> variable.<br>
><br>
> --<br>
> Best regards,<br>
>  José<br>
><br>
><br>
> _______________________________________________<br>
> Lazarus-es mailing list<br>
> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
> <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
<br>
<br>
</div></div>Si se puede cambiar solo que tenes que respetar el los parametros que<br>
espera, y el error esta en @ eso es para punteros a funciones, cuando<br>
queres llamar aun metodo de una dll. No para lo que estas haciendo<br></blockquote><div>ok, pero ..... <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
<br>
Te paso un estracto para cargar procedimientos dinamicos buscandolos por nombre<br>
<br>
    TForm1 = class(TForm)<br>
  private<br>
    { Private declarations }<br>
  public<br>
    { Public declarations }<br>
    published<br>
      Procedure LoadFormConsultaPadron;<br>
  end;<br>
<br>
implementation<br>
<br>
uses<br>
  windows, Constantes,inifiles;<br>
<br>
{$R *.dfm}<br>
Type<br>
  TExecute0 = procedure of object;<br>
  TExecute1 = procedure (aPerms:Integer)of object;<br>
  TExecute2 = procedure (aParams:string;aPerms:Integer)of object;<br>
<br>
Implementation<br>
<br>
//******************************************************************************<br>
//*****************************  Metodos dinamicos *****************************<br>
//******************************************************************************<br>
Procedure TForm1.ExecByName(aFormName:string);//,aParams:string;aPermisos:Integer);<br>
var<br>
  Routine: TMethod;<br>
begin<br>
  // Acceder al procedimiento<br>
  Routine.Code := MethodAddress(aFormName);<br>
  try<br>
    if Assigned(Routine.Code) then  // Encontrado?<br>
//para delphi  {$WARNINGS OFF}<br>
     TExecute0(Routine)//(aParams,aPermisos);<br>
//para delphi  {$WARNINGS ON}<br>
    else<br>
      Application.MessageBox(pchar(format('No se encuentra la función<br>
"%s".',[aFormName])),'Información',MB_OK+MB_ICONHAND);<br>
  except<br>
    raise Exception.CreateFmt('Error al cargar la función "%s".',[aFormName]);<br>
  end;<br>
END;<br>
<br>
<br>
Procedure TIWUserSession.LoadFormConsultaPadron;<br>
begin<br>
  TFormConsultaPadron.Create(application).Show;<br>
end;<br>
<br>
<br>
Dependiendo de tu necesidad podes usar un metodo con mas de un parametro.<br>
<font color="#888888"><br>
</font><br></blockquote><div><font color="#888888">aun no me queda muy claro la idea, tienes algun sitio donde pueda estudiarlo? es que aun no entiendo como puedo asignarle l procedimiento</font> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Christian<br>