Ver Mensaje Individual
  #11  
Antiguo 14-02-2004
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
Vamos a ver:

Lo que estoy entendiendo de tu pregunta es esto:

Tienes una tabla de productos con los campos del código y nombre de la imagen entre otros.

El nombre de la imagen está formado por el código más un guión y un dígito y el problema para abrir la imagen correspondiente es que no sabes cuál es dicho dígito pero sí sabes que sólo habrá una imagen cuyo nombre comience con dicho código, esto es, no puede haber dos imagenes, por ejemplo, con nombres tales como 'cpbhu-2.jpg' y 'cpbhu-8.jpg'.

Enfatizo lo último ya que es importante para el método que te propongo.

Lo que tienes que hacer, dicho en forma descriptiva, es primero buscar un archivo cuyo nombre comience con la cadena 'cpbhu-' (siguiendo el ejemplo) y, quizá no tan necesario, termine con '.jpg'.
Como sólo habrá un archivo así, una vez encontrado tomas su nombre y lo usas para abrir la imagen.

Para encontrar el archivo puedes usar la función FindFirst. En el código que te pongo estoy suponiendo que la imagen la vas a presentar en una componente Image1:

Código:
var
  SearchRec: TSearchRec;

begin
  try
    if FindFirst('cpbhu-?.jpg', faArchive, SearchRec) = 0 then
      Image1.Picture.LoadFromFile(SearchRec.Name)
    else
      raise Exception.Create('No se encuentra la imagen');
  finally
    FindClose(SearchRec)
  end;
end;
Ya sólo tienes que sustituir 'cpbhu-?.jpg' por una cadena adecuada usando lo que viene de tu edit, por ejemplo:

Format('%s-?.jpg', [Edit1.Text])

// Saludos
Responder Con Cita