Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Visor de Imágenes Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=87193)

Arnol125 26-11-2014 17:54:26

Visor de Imágenes Delphi 7
 
Buenos dias,

tengo este código para visualizar imágenes JPG, pero tiene un problema que no muestra la imagen el en componente Image1

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ExtCtrls, Buttons;

type
  TImageForm = class(TForm)
    DirectoryListBox1: TDirectoryListBox;
    FileListBox1: TFileListBox;
    DriveComboBox1: TDriveComboBox;
    Panel1: TPanel;
    Image1: TImage;
    Bevel1: TBevel;
    stretchcheck: TCheckBox;
    BitBtn1: TBitBtn;
    FileEdit: TEdit;
    ViewBtn: TButton;
    Label1: TLabel;
    procedure FileListBox1Click(Sender: TObject);
    procedure stretchcheckClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ViewBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ImageForm: TImageForm;

implementation

uses Unit2;

{$R *.dfm}


procedure TImageForm.FileListBox1Click(Sender: TObject); //creo que aqui esta el error
var
  FileExt: string[4];
begin
  FileExt := UpperCase(ExtractFileExt(FileListBox1.Filename));
  if (fileExt='.jpg') then
  begin
  Image1.Picture.LoadFromFile(FileListBox1.Filename); // cargar imagen en el image1
  Label1.Caption:=extractfilename(filelistbox1.FileName); // cargar nombre del archivo en el label

  end;
end;

procedure TImageForm.stretchcheckClick(Sender: TObject);
begin
image1.stretch:=stretchcheck.checked; // ajustar tamaño de imagen al tamaño del image1
end;

procedure TImageForm.BitBtn1Click(Sender: TObject);
begin
close;
end;

procedure TImageForm.ViewBtnClick(Sender: TObject);
begin
 ViewForm.HorzScrollBar.Range := Image1.Picture.Width; // ampliar la imagen en una nueva mas grande
  ViewForm.VertScrollBar.Range := Image1.Picture.Height;
  ViewForm.Caption := Caption;
  ViewForm.Show;
  ViewForm.WindowState := wsNormal;
end;

end.

roman 26-11-2014 18:05:17

Hola, bienvenido al ClubDelphi.

Para publicar código usa las etiquetas [code] o [delphi]:


[delphi]
// Aquí tu código.
[/delphi]


Esta vez lo hago yo.

// Saludos

roman 26-11-2014 18:08:20

En cuanto a tu duda. Tendrías que añadir la unidad jpeg en el uses.

// Saludos

Arnol125 26-11-2014 18:45:30

Observaciones
 
1 Archivos Adjunto(s)
Este es el código

radenf 26-11-2014 22:10:50

Estimado Arnol125:

Tal como señaló roman, debes añadir la unidad jpeg en el uses.
Además debes modificar el siguiente código, ya que no son necesarias las líneas que eliminé puesto que tienes una máscara en el FileListBox1 que permite seleccionar sólo archivos .jpg

Código Delphi [-]
procedure TImageForm.FileListBox1Click(Sender: TObject); //creo que aqui esta el error
begin
Image1.Picture.LoadFromFile(FileListBox1.Filename); // cargar imagen en el image1
Label1.Caption:=extractfilename(filelistbox1.FileName); // cargar nombre del archivo en el label
end;

y debes agregar la siguiente línea en este procedimiento, puesto que no has asignado el archivo que debe mostrar el Image1 del ViewForm.

Código Delphi [-]
procedure TImageForm.ViewBtnClick(Sender: TObject);
begin
 ViewForm.Image1.Picture.LoadFromFile(FileListBox1.Filename);
 ViewForm.HorzScrollBar.Range := Image1.Picture.Width;
  ViewForm.VertScrollBar.Range := Image1.Picture.Height;
  ViewForm.Caption := Caption;
  ViewForm.Show;
  ViewForm.WindowState := wsNormal;
end;

y de esta manera tu programa funciona sin problemas.
Te sugiero además poner en True las propiedades Center, Incremental Display, Proportional y Strech del Image1, para que no se distorsionen las imágenes.
Espero haber podido ayudarte.
Salu2

Arnol125 27-11-2014 04:19:59

Agradecimientos
 
Muchas gracias por su colaboración y aporte

quiero complementar con este procedimientos para finalizar el aporte

agregar un Edit

y colocar este codigo

Código Delphi [-]

  FileListBox1.Mask := '*' + Edit1.Text + '*.jpg';

Mucgas gracias

Arnol125 28-11-2014 05:24:37

Copiar archivos
 
Hola de nuevo

estoy tratando de copiar unas imagenes de una carpeta compartida por red a una carpeta en disco local y uso este codigo pero me sale el mensaje "Acceso Denegado"
los componentes son:
Button1 - Iniciar
Button2 - Cancelar
ProgressBar1 - componente
funcion ProgressRoutine

Código Delphi [-]

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ExtCtrls, Buttons, ComCtrls;

type
  TImageForm = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public

 { Public declarations }
  end;

var
  ImageForm: TImageForm;
  Cancel: boolean;

implementation
 

{$R *.dfm}


function ProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: LARGE_INTEGER; dwStreamNumber, 
dwCallbackReason: DWORD; hSourceFile, hDestinationFile: THandle; lpData: Pointer): DWORD; stdcall;


begin
   Application.ProcessMessages();
   if(dwCallbackReason = CALLBACK_CHUNK_FINISHED) then
      ImageForm.ProgressBar1.Position:= (int64(TotalBytesTransferred) * 100) div int64(TotalFileSize);

   Result:= PROGRESS_CONTINUE;
end;


procedure TImageForm.Button1Click(Sender: TObject);
begin
 Cancel:= false;
  CopyFileEx('\\Sistemas\e\Usuario\Escritorio\catalogo','C:\catalogo1', @ProgressRoutine, nil, @Cancel, 0);
  ShowMessage(SysErrorMessage(GetLastError()));
end;

procedure TImageForm.Button2Click(Sender: TObject);
begin
Cancel:= true;
end;

end.

escafandra 29-11-2014 21:33:21

Aquí te contesto. No repitas preguntas en distintos foros.


Saludos.


La franja horaria es GMT +2. Ahora son las 05:38:48.

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