Cita:
Empezado por mlara
Ahora requiero declarar una función en el código de una forma (TForm), y luego, al ejecutar esa función, dependiendo de cierto parámetro, quiero que se ejecute un código diferente reasignando el código de la función, así:
|
En Delphi puedes tener referencia tanto a Métodos como a procedimientos regulares sin ningún problema, solo tienes que tener en cuenta que la lista de argumentos y el resultado de las funciones debe coincidir con el tipo especificado, sino se volcarán datos inválidos en los esperados.
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TRegularProcedure = procedure;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
procedure Hola(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Chau;
begin
ShowMessage('Chau!');
end;
procedure TForm1.Hola(Sender: TObject);
begin
ShowMessage('Hola');
end;
procedure TForm1.FormCreate(Sender: TObject);
var
AMetodo: TNotifyEvent;
AProcedimiento: TRegularProcedure;
begin
AMetodo := Hola;
AMetodo(nil);
AProcedimiento := Chau;
AProcedimiento;
end;
end.
Saludos!