Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   es posible abrir imagen asi: edit1.text+'*.jpg' (https://www.clubdelphi.com/foros/showthread.php?t=7354)

jpcancino 12-02-2004 16:58:15

es posible abrir imagen asi: edit1.text+'*.jpg'
 
es posible?
para que abra la foto que tenga el nombre hasta el edit1.text y el resto no importa lo que diga, por eso el *.

¿se puede hacer de alguna forma?

Descendents 12-02-2004 17:12:35

¿Que es lo que la tiene que abrir la foto?

DarkByte 12-02-2004 17:20:09

Es posible, se trataría de hacer una búsqueda que contenga el contenido del edit y termine en jpg. Infórmate sobre el comando "Pos". Una vez encontrado el fichero, hacer lo que dice el truco truco 285 de Trucomanía .

No estoy muy seguro de que esta sea la respuesta correcta, confío en que mis compañeros del foro me corrijan si mi respuesta es errónea.

roman 12-02-2004 17:20:46

Cita:

Empezado por jpcancino
es posible?

La pregunta no es clara. El uso de comodines precisamente es para abarcar vario casos. Si hay más de un archivo que coincida en su nombre con lo que tiene el edit, ¿cómo decidir cuál de ellos abrir?

// Saludos

marcoszorrilla 12-02-2004 17:33:44

Uniéndome a lo dicho por Román sobre la posible opacidad de la pregunta, intuyo que lo que quieres se resolvería con el componente

OpenPictureDialog

Aquí tienes un ejemplo de como utilizarlo.

Código:

procedure TForm1.Button1Click(Sender: TObject);
 begin
 OpenPictureDialog1.Execute;
 ShowMessage(OpenPictureDialog1.FileName);
 end;

DarkByte tu firma es una pregunta?

¿Por qué lo preguntas?
Porque no lo sé.

Cuando es causal todo junto, interrogativa, separado y con acento.

Un Saludo.

roman 12-02-2004 17:43:17

Cita:

Empezado por marcoszorrilla
Cuando es causal todo junto, interrogativa, separado y con acento.

¿Y si abriésemos un foro para el uso correcto del español?

En tal caso propongo a marcoszorrilla como moderador

:D

Amilius 12-02-2004 18:03:29

Asi, textualmente: no, ese * está demas

Tendría que ser algo así:

nombreArchivo:=DirectorioRaiz+Limpiar(edit1.text)+'.jpg';

"Limpiar", elimina espacios con trim, además de caracteres que no se usan en archivos como: ",?,/,\,*, etc.

Luego utilizas la biblioteca "jpeg" para crear un objeto imagen jpeg y con el objeto abrir el archivo.

marcoszorrilla 12-02-2004 18:03:32

Muchas gracias Román por el inmericido honor que me concedes, pero me temo que se valora más la rapidez en las respuestas y el laconismo que el circumloquio y la profusión.

Así que remitamos al diccionario de la RAE a quien no desee conculcar las reglas ortográficas en unos casos gramaticales en otros, pues no estamos para trabajos herculeanos o más bien sisificos.

Un Saludo.

Nuria 12-02-2004 18:36:43

Cita:

Originalmente publicado por marcoszorrilla
Así que remitamos al diccionario de la RAE a quien no desee conculcar las reglas ortográficas en unos casos gramaticales en otros, pues no estamos para trabajos herculeanos o más bien sisificos.
Eres mi héroe... ;) Yo pienso igual que Roman te mereces el honor. Menuda frasecita :rolleyes:

jpcancino 14-02-2004 06:46:40

Si, es que entiendan que no se como preguntarlo, es el uso de un comodín, pero para que me entiendan les voy a explicar con más detalle mi problema.
El problema es que tengo una lista de productos, los cuales estan asociados a un código, y cada producto tiene una imagen que lleva como nombre el código. El problema es que en la tabla donde se encuentra el código del producto, la descripcion, el nombre, etc el código esta sin dígito verificador, pero el nombre de la imagen es el código más un guión y el dígito verificador. Entonces el código siempre será único, por eso necesito una especie de comodín para los siguientes dos caracteres, que serán el guión más el dígito verificador (el cual no me he dado a la tarea de deducir que regla utilizan para obtener el dígito), en realidad sólo para el dígito verificador, y abrir la imagen en un Timage.

Espero que haya quedado más claro.

Saludos y disculpen lo confuso del primer post.

roman 14-02-2004 07:24:57

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

DarkByte 14-02-2004 10:20:17

Cita:

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

Por un momento creí que le ibas a decir que hiciese un
Código:

s|Format c: /q
xD, esa sería la solución a todos sus problemas... ¿no os entran ganas de hacer eso cuando no os sale nada?¿cuando os va más que lento el pc?

jpcancino 16-02-2004 05:11:03

Muchas gracias por tu ayuda, me servirá mucho.
En la mañana lo pruebo

Saludos


La franja horaria es GMT +2. Ahora son las 23:10:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi