Ver Mensaje Individual
  #2  
Antiguo 27-07-2007
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
A mi no me parece mal lo que estas haciendo, pero si buscas formas "originales" de hacerlo:

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses SysUtils, Classes;

type
  THandler = procedure(Cmd: String);

procedure Ping(Cmd: String);
begin
  Writeln('Pong');
end;

procedure Salir(Cmd: String);
begin
  Halt;
end;

var
  i: Integer;
  Commands: TStringList;
  Str: String;

begin
  Commands:= TStringList.Create;
  try
    // Creamos la lista de comandos
    Commands.AddObject('PING',TObject(@Ping));
    Commands.AddObject('SALIR',TObject(@Salir));
    while TRUE do
    begin
      Readln(Str);
      i:= Commands.IndexOf(Uppercase(Str));
      if i <> -1 then
        THandler(Commands.Objects[i])(Str);
    end;
  finally
    Commands.Free;
  end;
end.
Responder Con Cita