Tema: Resumen
Ver Mensaje Individual
  #4  
Antiguo 24-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Reputación: 19
Abuelo7 Va por buen camino
Hola amiga Caro.
He probado el código que me has pasado y funciona perfectamente.

Ahora bien, tengo dudas de como insertarlo en el código que tengo.

Te lo paso.

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  var
        sl : TStringList;
        Cadena, respuesta, pregunta : String;
         i : Integer;

begin
  // si no es la tecla que buscamos, salimos y listo ;-)
  if Key <> #13 then Exit;


  // abrimos tablas
  Table1.Open;
  Table2.Open;
  Table3.Open;
  Table4.Open;


  // ponemos el código en un bloque try..finally para asegurarnos de que pase lo que pase éstas se cierren
  try
    // si localizamos lo buscado en Tabla1 y su resultado en Tabla2, lo añadimos al Memo1
    // Este if funciona debido a que SOLO se evaluará la segunda condición si la primera
    // se cumple (por eso de ser un AND) y si la primera se cumple, ya estamos posicionados
    // en el registro buscado (o al menos eso dice la teoría, no lo he probado xD)
      Memo1.Lines.Add(Edit1.Text);

    if (Table1.Locate('palabra', Edit1.Text, [loCaseInsensitive])) and
       (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then

        Memo1.Lines.Add(Table2.fieldByName('RESPUESTA').AsString)
    else
    If (Table3.Locate('palabra',Edit1.Text,[loCaseInsensitive])) and
       (Table4.Locate('NUMERO',Table3.fieldByName('NUMERO').AsString,[loCaseInsensitive])) then
       Memo1.Lines.Add(Table4.fieldByName('RESPUESTA').AsString)
    else
    if Edit1.Text='adios' then
    Memo1.Lines.Add('Hasta la próxima')
    else
        Memo1.Lines.Add('No entiendo la frase.Podría explicármelo de otra forma?');
  finally
    Table1.Close;
    Table2.Close;
    Table3.Close;
    Table4.Close;
    Edit1.Text :='';
  end;
end;


end.

Gracias
Saludos
Responder Con Cita