Ver Mensaje Individual
  #3  
Antiguo 29-05-2024
trex2000 trex2000 is offline
Miembro
 
Registrado: may 2003
Posts: 245
Reputación: 24
trex2000 Va por buen camino
Buenas tardes.

Tengo un menú principal y de ahí mando llamar un catalogo de clientes de la siguiente manera:

Código Delphi [-]
  frmCatClientes := TfrmCatClientes.Create(nil);
  frmCatClientes.ShowModal;
  frmCatClientes.Free;

En el catalogo tengo un boton que manda llamar el form de la camara de la siguiente manera:
Código Delphi [-]
  frmCamara := TfrmCamara.Create(nil);
  frmCamara.ShowModal;
  frmCamara.Free;

En el form de la camara en la clausula USES pongo VFrames y System.IOUtils

En el private pongo las siguientes variables:
Código Delphi [-]
    imgFileName:String;
    cam:TVideoImage;

Y utilizo el siguiente codigo:
Código Delphi [-]
procedure TfrmCamara.btnGrabarFrameClick(Sender: TObject);
begin
  Randomize;
  // Tomar un snapShot
  var Bmp := TBitmap.Create;
  try
    cam.GetBitmap(bmp);
    imgFileName := TPath.GetTempPath + Random(9999).ToString + '_imagen.bmp';
    bmp.SaveToFile(imgFileName);
  finally
    bmp.Free;
  end;
  // Cargarlo de disco
  imgFrame.Picture.LoadFromFile(imgFileName);
  //
  Caption := imgFileName;

end;

procedure TfrmCamara.btnInicializarClick(Sender: TObject);
begin
  // inicializar
  cam := TVideoImage.Create;
  cam.GetListOfDevices(TStringList(lbCamList.Items));

  // Activar controles
  lbCamList.Enabled := (lbCamList.Count > 0);

end;

procedure TfrmCamara.btnSalirClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

procedure TfrmCamara.lbCamListDblClick(Sender: TObject);
begin
  // Seleccionar cámara
  cam.SetDisplayCanvas(pbVideo.Canvas);
  cam.VideoStart(lbCamList.Items[lbCamList.ItemIndex]);
  // Activar el botón
  btnGrabarFrame.Enabled := (lbCamList.Count > 0);

end;

Gracias por su ayuda.
Responder Con Cita