Ver Mensaje Individual
  #5  
Antiguo 13-09-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Ya puestos a hacer cosas "exoticas" ¿que os parece esto?

Código Delphi [-]
procedure Vamos1;
begin
  ShowMessage('Hola 1');
end;

procedure Vamos2;
begin
  ShowMessage('Hola 2');
end;

procedure TForm1.EjecutarPorNombre(Nombre: String);
var
  i: integer;
  p: Procedure;
begin
  i:= Lista.IndexOf(Nombre);
  if i <> -1 then
  begin
    p:= Pointer(Lista.Objects[i]);
    p;
  end else
    ShowMessage('No se encontro el procedimiento');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EjecutarPorNombre('Vamos1');
  EjecutarPorNombre('Vamos2');
  // Esta ultima nos dara error
  EjecutarPorNombre('Vamos3');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Lista.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Lista:= TStringList.Create;
  Lista.AddObject('Vamos1',TObject(@Vamos1));
  Lista.AddObject('Vamos2',TObject(@Vamos2));
end;

No es que tenga mucha utilidad, pero resulta curioso
Responder Con Cita