Una forma podría ser con con un preview de la imagen, y que al hacer click en ella se pueda cambiar, de esta manera
mfoto := "c:\miprograma\firmas\nofoto.jpg"
DEFINE DIALOG oForm TITLE "Alta de Usuario" FROM 05,15 TO 17,95 OF oWnd1
@ 07, 05 SAY "Codigo:" OF oForm PIXEL SIZE 50,20 RIGHT
@ 22, 05 SAY "Nombre:" OF oForm PIXEL SIZE 50,20 RIGHT
@ 05, 60 GET oGet[1] VAR mcodigo PICTURE "99999" OF oForm PIXEL RIGHT
@ 20, 60 GET oGet[2] VAR mnombre PICTURE "@!" OF oForm PIXEL
@ 05, 210 IMAGE oGet[6] FILE mfoto OF oForm ON CLICK CambiaImagen(oGet[6],@mfoto);
ADJUST SIZE 60,60 PIXEL
ACTIVATE DIALOG oForm CENTER
****************************************
** Cambiar foto
STATIC FUNCTION CambiaImagen(oImg,mfoto)
LOCAL cFile
cFile := cGetFile( "Foto de firma (*.png)|*.png", "Elija la foto",, ".\FIRMAS", .f. )
IF EMPTY(cFile)
RETURN nil
ENDIF
mfoto := cFile
oImg:LoadImage( , cFile )
oImg:Refresh()
RETURN nil
Luego en mfoto te va a quedar el nombre del archivo a subir
Otra manera seria con un valid del get
mfoto := "c:\miprograma\firmas\nofoto.jpg"
DEFINE DIALOG oForm TITLE "Alta de Usuario" FROM 05,15 TO 17,95 OF oWnd1
@ 07, 05 SAY "Codigo:" OF oForm PIXEL SIZE 50,20 RIGHT
@ 22, 05 SAY "Nombre:" OF oForm PIXEL SIZE 50,20 RIGHT
@ 37, 05 SAY "Archivo:" OF oForm PIXEL SIZE 50,20 RIGHT
@ 05, 60 GET oGet[1] VAR mcodigo PICTURE "99999" OF oForm PIXEL RIGHT
@ 20, 60 GET oGet[2] VAR mnombre PICTURE "@!" OF oForm PIXEL
@ 35, 60 GET oGet[6] VAR mfoto ;
ACTION (oGet[6]:cText := cGetFile( "Archivos JPG (*.jpg)|*.jpg|Todos los Archivos (*.*)|*.*", "Seleccione archivo de foto",, ".\firmas", .f. ));
OF oForm PICTURE "@S20" PIXEL SIZE 70,12 BITMAP "BUSC1"
ACTIVATE DIALOG oForm CENTER