Ver Mensaje Individual
  #11  
Antiguo 31-07-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Veo algunos problemas:

1. Tu código no está indentado por lo que es difícil leerlo. Por favor utiliza la etiqueta [ code ] para que preserve los espacios:

[ code ]
Código:
Linea
  Linea indentada
[ /code ]

Aquí la etiqueta tiene espacios alrededor para que se vea pero debes ponerla sin espacios.

Usando la etiqueta, los debidos espacios y líneas en blanco tu código queda así:

Código:
var
  Form1: TForm1;
  ListaAnimales : TStringList;

implementation

function ObtieneNombreAnimal (Numero: Integer) : String;
begin
  result := ListaAnimales.Values[IntToStr(Numero)];
end;

{$R *.dfm}

procedure TForm1.CargaListaAnimales;
begin
  if ListaAnimales = nil then
    ListaAnimales := TStringList.Create;

  with TIniFile.Create ('C:\may.ini') do
    try
      ReadSection ('ANIMALES', ListaAnimales);
    finally
      Free;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.lines.text:=(ObtieneNombreAnimal(1))
end;
2. No indicas en qué momento sale la excepción ni cuál es ésta. El problema podría ser que llamas a Button1Click antes de CargaListaAnimales lo que implicaría que ListaAnimales aún no ha sido creada.

3. En Button1Click asignas una cadena a la propiedad Text del memo. La propiedad Text reune en conjunto todas las líneas del memo y no estoy seguro de que eso es lo que desees. Quizá prefieras algo como

memo1.lines.add(ObtieneNombreAnimal(1));

4. En general no entiendo muy bien qué es lo que pretendes pero pareciera que deseas asignar una clave (número u otra cosa) a cada cadena para luego poder desplegar la cadena refiriéndote a ella mediante dicha clave. Esto podría hacerse mejor utilizando alguna base de datos. Puedes usar ClientDataSets sin conectarlos a ninguna base "real" y te funciona bien.

// Saludos

pd: Por favor no me tomes a mal lo del código. Es sólo que cuesta trabajo leer código que no está indentado.
Responder Con Cita