¡Hola, muchachos!
Gracias por la atención. He estado buscando por la red y el foro y no encuentro a nadie con un problema similar, pero seguro que lo hay
Uso
Delphi 7.0 y quiero cargar imágenes a partir de una ruta base que extraigo desde un archivo a una variable global (G_Img_Logos_URL), que luego concateno al nombre seleccionado con un
TOpenPictureDialog (mi instancia se llama M_VOP_Logo). Mi
TImage se llama: M_Img_Logo.
Este es el código para seleccionar la imagen al pulsar sobre su espacio del formulario:
Código Delphi
[-]procedure TF_Empresa.M_Img_LogoClick(Sender: TObject); var
Jpeg:TJpegImage;
Corriente:TMemoryStream;
begin
M_VOP_Logo.InitialDir := G_Img_Logos_URL;
if M_VOP_Logo.Execute then
begin Jpeg:=nil;
Corriente:=nil;
FileLogo:=ExtractFileName(M_VOP_Logo.Filename);
try
Jpeg:=TJpegImage.Create;
Jpeg.LoadFromFile(M_VOP_Logo.FileName);
Corriente:=TMemoryStream.Create;
Jpeg.SaveToStream(Corriente);
Corriente.Seek(0,soFromBeginning);
Jpeg.LoadFromStream(Corriente);
M_Img_Logo.Picture.Assign(Jpeg);
Finally
Corriente.Free;
Jpeg.Free;
M_VOP_Logo.InitialDir:='';
end;
end
else begin
M_VOP_Logo.filename := EmptyStr;
end;
end;
Y este el de mostrarla de nuevo al navegar por la base de datos:
Código Delphi
[-]procedure TF_Empresa.M_CargarLogo (sFoto: String);
var
Jpeg: TJpegImage;
Corriente: TMemoryStream;
begin
if sFoto = '' then begin
M_Img_Logo.Repaint;
M_Img_Logo.Picture := nil;
end else try
Jpeg:=nil;
Corriente:=nil;
Jpeg := TJpegImage.Create; Corriente := TMemoryStream.Create; Jpeg.LoadFromFile (G_Img_Logos_URL+sFoto);
Jpeg.SaveToStream (Corriente);
Corriente.Seek (0, soFromBeginning);
Jpeg.LoadFromStream (Corriente);
M_Img_Logo.Picture.Assign (Jpeg);
finally
M_Img_Logo.Repaint;
M_Img_Logo.Picture := nil;
Corriente.Free;
Jpeg.Free;
end;
end;
Mi ruta de la aplicación es "C:\COGS\CGeSt\". Primero selecciono una imagen y me la muestra pero buscarla una segunda vez (el segundo trozo de código), casca. Al depurar la ejecución veo que la variable es correcta y vale "Loly\Datos\Logos\", pero me devuelve el error porque toma una ruta incorrecta (me duplica esta que acabo de ecribir):
Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project CGeSt.exe raised exception class EFOpenError with message 'Cannot open file "C:\COGS\CGeSt\Loly\Datos\Logos\Loly\Datos\Logos\alfa.jpg". El sistema no puede encontrar la ruta especificada'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
|
Van varios días de pruebas y no entiendo ni jota, ¿podría ayudarme alguien, por favor? Si falta aclarar algo, no duden en preguntar. Gracias de antemano
