Ver Mensaje Individual
  #7  
Antiguo 01-06-2010
danielnakata danielnakata is offline
Registrado
 
Registrado: jun 2010
Posts: 1
Reputación: 0
danielnakata Va por buen camino
Borrar un TImage

He estado leyendo el foro, el cual me saco de unas dudas que tenia, lo cual les agradezco mucho. Les dejo un fragmento de codigo que elabore, se trata de cargar un TImage con un openDialog, filtrando obviamente solo las imagenes y obteniendo despues el tamaño de la imagen seleccionada, si el tamaño sobrepasa 500kb (aprox) manda un mensaje de error, limpia el TImage y cierra los archivos (que se abren para obtener el tamaño de la imagen).

Espero este aporte sirva para alguien
Saludos!!!



//codigo del boton donde ejecuto el openDialog para buscar la imagen

procedure TfrmSubir_imagenes.btnArchivoClick(Sender: TObject);
var narch:String; tam: LongWord; arch2: Thandle; arch: file;
begin
try
if(open1.Execute)then //ejecuta el open dialog
begin
narch := open1.FileName; //obtiene el nombre de la imagen
txtArchivo.Text := narch; //carga un TEdit con el nombre del archivo
//reset(arch);
imagen1.Picture.LoadFromFile(narch); //carga el Timage con la imagen seleccionada


AssignFile(arch, narch); //crea un archivo con el nombre de la imagen
reset(arch);//reinicializa el archivo recien creado para su manejo

if(FileSize(arch) > 3799)then //valida el tamaño que sea menor de 500kb (aprox)
begin
MessageDlg('La imagen es demasiado grande, debe ser menor a 450kb y en '+#13+#10+'formato jpg'+#13+#10+'Seleccione otra imagen o edite la imagen deseada', mtError, [mbOK], 0); //mensaje de error
//imagen1.Picture.Free;
imagen1.Picture := nil; //LIMPIA EL TImage
self.Repaint; //refresca la forma
txtArchivo.Clear; //limpia el campo de texto
CloseFile(arch); //cierra el archivo (necesario para que no mande errores al querer abrir otra vez el mismo archivo
exit; //sale del procedimiento
end;

CloseFile(arch); //cierra el archivo
imagen1.Hint := narch; //asigna al hint del TImage la ruta de la imagen cargada
self.Repaint; //refresca la forma
end
else
begin
MessageDlg('Debe seleccionar un archivo para subir', mterror, [mbOk], 0);
end;
except
on e:Exception do
begin
MessageDlg('Error al buscar el archivo de la imagen debido a:'+#10+e.Message, mtError, [mbOk], 0);
exit;
end;
end;
end;
Responder Con Cita