*<Procedure Random_Image>
*PROCEDURE RANDOM_IMAGE
LPARAMETERS toObjeto
IF VARTYPE(toObjeto)#"O"
toObjeto=thisform
ENDIF
IF !PEMSTATUS(toObjeto,"Picture",5)
* El objeto pasado no tiene la propiedad Picture
STRTOFILE(toObjeto.name+CHR(13),"random_omit.txt",1)
RETURN
ENDIF
STRTOFILE(toObjeto.name+CHR(13),"random_process.txt",1)
LOCAL lcNameImage,i,nit,lcNewImage,lcRandImage,;
lcFolder,lcImagenInstalda,lcListExtension,;
lcExtension, lcFileRandomFolder
lclistExtension="bmp,jpg,png,ico"
*<Carpeta_de_Imagenes_seriadas>
lcFileRandomFolder="Get_RandomFolder.txt"
IF !FILE(lcFileRandomFolder)
lcFolder=GETDIR(FULLPATH(""),"Seleccione la carpeta donde ;
guarda las imágenes Random","Carpeta de Imágenes Random",48)
IF EMPTY(lcfolder)
RETURN
ENDIF
STRTOFILE(lcFolder,lcFileRandomFolder)
ENDIF
lcFolder=FILETOSTR(lcFileRandomFolder)
*</Carpeta_de_Imagenes_seriadas>
lcImagenInstalada=toObjeto.picture
lcNewImage=lcImagenInstalada
lcNameImage=EVL(JUSTSTEM(lcImagenInstalada),"*")
lcRandImage=lcNameImage
LOCAL ARRAY gaMat(1)
gaMat[1]=TRANSFORM(CEILING(RAND(-1)*100))
nit=0
FOR i=1 TO 1000
lcRand=TRANSFORM(CEILING(RAND()*100))
IF ASCAN(gaMat,lcRand)=0
nit=nit+1
DIMENSION gamat(nit)
gamat[nit]=lcRand
ENDIF
IF nit>100
EXIT
ENDIF
NEXT
FOR i=1 TO ALEN(gaMat)
IF gamat[i] # lcNameImage
lcRandImage=gaMat[i]
EXIT
ENDIF
NEXT
lcNewImage=FORCEPATH(lcRandImage,lcFolder)
lExito=.f.
FOR i=1 TO GETWORDCOUNT(lcListExtension,",")
lcExtension=GETWORDNUM(lcListExtension,i,",")
lcNewImage=FORCEEXT(lcNewImage,lcExtension)
IF FILE(lcNewImage)
toObjeto.picture = lcNewImage
STRTOFILE(toObjeto.Name+" Picture="+lcNewImage;
+"lcRand="+lcRandImage+CHR(13),"random_Ima.txt",1)
lExito=.t.
EXIT
ENDIF
NEXT
IF !lExito
STRTOFILE(toObjeto.name+" » lcNewImage="+lcNewImage;
+"lcRand="+lcRandImage + CHR(13) , "random_fail.txt",1)
ENDIF
RETURN
*ENDPROC
*</Procedure Random_Image>
*<commandButton cmdPictures>
* Permite asignar aleatoriamente una imagen a cada objeto del form
*
LOCAL oControl,i,oCnt,lcName,lnHand,opage
lnHand=FCREATE("get_random.txt")
Thisform.Random_Image(thisform)
FOR EACH oControl IN thisform.Controls
DO CASE
CASE ocontrol.baseclass="Custom"
CASE ocontrol.baseclass="Control"
CASE oControl.baseclass="Pageframe"
=FPUTS(lnHand,oControl.name)
FOR i=1 TO oControl.pagecount
thisform.random_image(oControl.pages(i))
=FPUTS(lnHand,oControl.Name+"."+oControl.pages(i).name)
FOR EACH oPage IN oControl.pages(i).controls
thisform.random_image(oPage)
=FPUTS(lnHand,oControl.name+"."+oControl.pages(i).name+"."+oPage.name)
ENDFOR
NEXT
CASE oControl.baseclass="Container"
thisform.random_image(oControl)
=FPUTS(lnHand,oControl.name)
FOR EACH oCnt IN oControl.controls
thisform.random_image(oCnt)
=FPUTS(lnHand,oControl.name+"."+oCnt.Name)
NEXT
CASE ocontrol.baseClass="Commandgroup"
FOR i=1 TO oControl.buttoncount
thisform.random_image(oControl.buttons(i))
=FPUTS(lnHand,oControl.name+"."+oControl.Buttons(i).name)
NEXT
OTHERWISE
thisform.random_image(oControl)
=FPUTS(lnHand,oControl.Name)
ENDCASE
ENDFOR
=FCLOSE(lnHand)
*</commandButton_Llamada>