Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Get files into a ListBox
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 7 SP1
OS:
Windows XP SP2
Database:
Visual FoxPro
Divers
Thread ID:
01218095
Message ID:
01218124
Vues:
39
This message has been marked as a message which has helped to the initial question of the thread.
>Thanks!!

Hi Adrian,

The form is based on another form, so I think it's easier to just put the code from the Class Browser here and you can create your form based on it. I'm sending you IconBuddy and another class by e-mail.
**************************************************
*-- Class:        frmfileselector (c:\mmviscollect\libs\aforms.vcx)
*-- ParentClass:  browserform (c:\mmviscollect\libs\aforms.vcx)
*-- BaseClass:    form
*-- Time Stamp:   09/28/06 10:11:00 AM
*-- A list of files in the specific directory
*
DEFINE CLASS frmfileselector AS browserform


	Height = 306
	Width = 673
	DoCreate = .T.
	Caption = "Select File"
	WindowType = 1
	*-- Sort by name
	lsortbyname = .F.
	cnavigationalias = "curFiles"
	cnavigationgridname = "thisform.grdFiles"
	Name = "frmfileselector"
	oSessionEnvironment.CLabel1.Name = "CLabel1"
	oSessionEnvironment.Name = "oSessionEnvironment"


	ADD OBJECT cmdcancel AS ccommandbutton WITH ;
		Top = 266, ;
		Left = 301, ;
		Height = 24, ;
		Width = 71, ;
		Caption = "\<Cancel", ;
		TabIndex = 32, ;
		Name = "cmdCancel"


	ADD OBJECT cmdselect AS ccommandbutton WITH ;
		Top = 266, ;
		Left = 224, ;
		Height = 24, ;
		Width = 71, ;
		Caption = "\<Select", ;
		TabIndex = 30, ;
		ZOrderSet = 7, ;
		Name = "cmdSelect"


	ADD OBJECT cmdclose AS ccommandbutton WITH ;
		Top = 265, ;
		Left = 378, ;
		Height = 24, ;
		Width = 71, ;
		Caption = "C\<lose", ;
		TabIndex = 32, ;
		Name = "cmdClose"


	ADD OBJECT grdfiles AS grdsorting WITH ;
		ColumnCount = 5, ;
		Height = 230, ;
		Left = 12, ;
		Panel = 1, ;
		ReadOnly = .T., ;
		RecordSource = "curFiles", ;
		Top = 24, ;
		Width = 646, ;
		ZOrderSet = 4, ;
		lresizable = .T., ;
		Name = "grdFiles", ;
		Column1.FontSize = 8, ;
		Column1.ControlSource = "", ;
		Column1.Width = 17, ;
		Column1.ReadOnly = .T., ;
		Column1.Sparse = .F., ;
		Column1.Name = "colImage", ;
		Column2.FontSize = 8, ;
		Column2.ControlSource = "curFiles.cFile_Name", ;
		Column2.Width = 154, ;
		Column2.ReadOnly = .T., ;
		Column2.Name = "colName", ;
		Column3.FontSize = 8, ;
		Column3.Alignment = 1, ;
		Column3.ColumnOrder = 4, ;
		Column3.ControlSource = "curFiles.cFIle_Size", ;
		Column3.Width = 108, ;
		Column3.ReadOnly = .T., ;
		Column3.InputMask = "XXXXXXXXXX", ;
		Column3.Name = "colSize", ;
		Column4.FontSize = 8, ;
		Column4.ColumnOrder = 5, ;
		Column4.ControlSource = "curFiles.cFile_Type", ;
		Column4.Width = 171, ;
		Column4.ReadOnly = .T., ;
		Column4.Name = "colType", ;
		Column5.FontSize = 8, ;
		Column5.ColumnOrder = 3, ;
		Column5.ControlSource = "curFiles.tLast_Modified", ;
		Column5.Width = 170, ;
		Column5.ReadOnly = .T., ;
		Column5.Name = "colLastModified"


	ADD OBJECT frmfileselector.grdfiles.colimage.header1 AS header WITH ;
		FontSize = 8, ;
		Caption = "*", ;
		Name = "Header1"


	ADD OBJECT frmfileselector.grdfiles.colimage.fileicon AS cimage WITH ;
		Picture = "..\graphics\jzlogo.bmp", ;
		Height = 104, ;
		Left = 12, ;
		Top = 23, ;
		Width = 300, ;
		Name = "FileIcon"


	ADD OBJECT frmfileselector.grdfiles.colname.header1 AS header WITH ;
		FontSize = 8, ;
		Caption = "Name", ;
		Name = "Header1"


	ADD OBJECT frmfileselector.grdfiles.colname.cgridtextbox1 AS cgridtextbox WITH ;
		FontSize = 8, ;
		ReadOnly = .T., ;
		SelectedBackColor = RGB(0,0,255), ;
		cseektag = "cFile_Name", ;
		Name = "Cgridtextbox1"


	ADD OBJECT frmfileselector.grdfiles.colsize.header1 AS header WITH ;
		FontSize = 8, ;
		Alignment = 1, ;
		Caption = "Size    ", ;
		Name = "Header1"


	ADD OBJECT frmfileselector.grdfiles.colsize.cgridtextbox1 AS cgridtextbox WITH ;
		FontSize = 8, ;
		Alignment = 1, ;
		ReadOnly = .T., ;
		SelectedBackColor = RGB(0,0,255), ;
		Name = "Cgridtextbox1"


	ADD OBJECT frmfileselector.grdfiles.coltype.header1 AS header WITH ;
		FontSize = 8, ;
		Caption = "Type", ;
		Name = "Header1"


	ADD OBJECT frmfileselector.grdfiles.coltype.cgridtextbox1 AS cgridtextbox WITH ;
		FontSize = 8, ;
		ReadOnly = .T., ;
		SelectedBackColor = RGB(0,0,255), ;
		cseektag = "cType", ;
		Name = "Cgridtextbox1"


	ADD OBJECT frmfileselector.grdfiles.collastmodified.header1 AS header WITH ;
		FontSize = 8, ;
		Caption = "Last Modified", ;
		Name = "Header1"


	ADD OBJECT frmfileselector.grdfiles.collastmodified.cgridtextbox1 AS cgridtextbox WITH ;
		FontSize = 8, ;
		ReadOnly = .T., ;
		SelectedBackColor = RGB(0,0,255), ;
		Name = "Cgridtextbox1"


	PROCEDURE selectrecord
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	Selectrecord() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		thisform.uRetVal = curFiles.cFile_Name
		thisform.Hide()
	ENDPROC


	PROCEDURE Load
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	Load() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		IF DODEFAULT()
		   create cursor curFiles(cFile_Name c(100), nFile_Size n(10), ;
		                          cFile_Type c(100), tLast_Modified t, ;
		                          cIcon_File C(100), cFile_Size C(15))
		   
		   INDEX on UPPER(cFile_Name) TAG cFile_Name
		   INDEX on UPPER(cFile_Type) TAG cType additive
		   INDEX on cFile_Size TAG cSize additive   
		   INDEX on tLast_Modified TAG tDate additive
		ENDIF
	ENDPROC


	PROCEDURE Init
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector
		*   Method: 	Init()
		*----------------------- Usage Section --------------------------
		*)  Description:
		*)

		*   Scope:      Public
		*   Parameters:
		*$  Usage:
		*$
		*   Returns:
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN
		*		MODIFIED
		*----------------------------------------------------------------
		lparameters tcDirectory, tcFileExt, tcFilterExpr, tlSortByName

		local lcFileType, lcIconFile, ;
			loIconBuddy, lcCondition, llAddFile, ;
			lcFileName, lnI, lnFiles, ;
			llIconBuddy, lcDir, lnPos, lnK, lcFileExt, lnExts

		local array laFiles[1], laExtUsed[1,3], laExt[1]
		if empty(m.tcDirectory)
			lcDir = getdir()
			if empty(m.lcDir)
				return .f.
			endif
		else
			lcDir = addbs(m.tcDirectory)
		endif
		this.caption = this.caption + ' from ' + m.lcDir

		tcFileExt = lower(evl(m.tcFileExt,""))
		lnExts = alines(laExt, m.tcFileExt, 1, ',')
		tcFilterExpr = evl(m.tcFilterExpr,"")

		lnFiles = adir(laFiles, m.lcDir + "*." + ;
			iif(m.lnExts > 1 or empty(m.tcFileExt), "*", m.tcFileExt),"HS",1)

		if m.lnFiles = 0
			=ErrorMsg("No files found in " + m.tcDirectory)
			return .f.
		endif
		lnK = 0
		store .f. to llAddFile, llIconBuddy

		for lnI = 1 to m.lnFiles
			lcFileExt = lower(justext(laFiles[m.lnI,1])) && File's extension
			if (empty(m.tcFileExt) or ;
					ascan(laExt, m.lcFileExt) > 0) ;
					and not ;
					inlist(m.lcFileExt,"exe","dll","ico")

				lcFile = m.lcDir + laFiles[m.lnI,1]

				lcFileName = juststem(m.lcFile)

				if not empty(m.tcFilterExpr)
					lcCondition = strtran(m.tcFilterExpr, ;
						"##FILENAME##","lcFileName")
		* Evaluate the filter condition
					if evaluate(m.lcCondition)
						llAddFile = .t.
					endif
				else
					llAddFile = .t.
				endif

				if m.llAddFile
					if not m.llIconBuddy
						thisform.newobject("oIconBuddy", ;
							"IconBuddy", "IconBuddy.vcx")
						llIconBuddy = .t.
					endif
					lnPos = iif(m.lnK = 0, 0, ;
						ascan(laExtUsed,upper(justext(m.lcFile)),1,-1,1, 14))
					if m.lnPos > 0
						lcIconFile = laExtUsed[m.lnPos, 2]
						lcFileType = laExtUsed[m.lnPos, 3]
					else
		** Create bitmaps and not icons
						thisform.oIconBuddy.CreateTmpIcons(m.lcFile,.f.,.t.)
		** Get the small picture
						lcIconFile = ;
							thisform.oIconBuddy.GetTMPIconFileName( ;
							lower(justext(m.lcFile)),.f.,.t.)
						lcFileType = thisform.oIconBuddy.cFileType
						if not empty(m.lcFileType)
							lnK = m.lnK + 1
							dimension laExtUsed[m.lnK, 3]
							laExtUsed[m.lnK,1] = upper(justext(m.lcFile))
							laExtUsed[m.lnK, 2] = m.lcIconFile
							laExtUsed[m.lnK, 3] = m.lcFileType
						endif
					endif

					insert into curFiles values ;
						(justfname(m.lcFile), laFiles[m.lnI,2], ;
						m.lcFileType, ;
						ctot(dtoc(laFiles[m.lnI,3]) + ;
						" " + laFiles[m.lnI,4]), ;
						m.lcIconFile, ;
						alltrim(str(ceiling(laFiles[m.lnI,2]/1024))) + " KB" )
				endif
				llAddFile = .f.
			endif
		endfor

		if reccount('curFiles') = 0
			=ErrorMsg("The directory " + m.lcDir + ;
				" does not contain files")
			return .f.
		endif

		if not dodefault()
			return .f.
		endif

		thisform.lSortByName = m.tlSortByName
		thisform.uRetVal = ""
		thisform.grdFiles.colImage.dynamicfontshadow = ;
			"thisform.grdFiles.colImage.Refresh()"
	ENDPROC


	PROCEDURE Activate
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector
		*   Method: 	Activate()
		*----------------------- Usage Section --------------------------
		*)  Description:
		*)

		*   Scope:      Public
		*   Parameters:
		*$  Usage:
		*$
		*   Returns:
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	09/01/2005 - NN
		*		MODIFIED
		*----------------------------------------------------------------
		dodefault()
		with thisform.grdFiles
			if thisform.lSortByName
				.colName.Header1.picture = 'upArrow.bmp'
				.oLastSorted = .colName.Header1
				set order to cFile_Name
			else
				.colLastModified.Header1.picture = 'downArrow.bmp'
				.oLastSorted = .colLastModified.Header1
				set order to tDate descending
			endif
				go top in curFiles
				.setfocus()
		endwith
	ENDPROC


	PROCEDURE cmdcancel.Click
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	Cmdcancel.Click() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		thisform.Hide()
	ENDPROC


	PROCEDURE cmdselect.Click
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	CmdSelect.Click() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		thisform.SelectRecord() 
	ENDPROC


	PROCEDURE cmdclose.Click
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	CmdClose.Click() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	08/29/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		thisform.release()
	ENDPROC


	PROCEDURE grdfiles.DblClick
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	Grdfiles.Dblclick() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	09/19/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		thisform.SelectRecord() 
	ENDPROC


	PROCEDURE grdfiles.colImage.Refresh
		*---------------------- Location Section ------------------------
		*   Library: 	Aforms.vcx
		*   Class: 		Frmfileselector  
		*   Method: 	Colimage.Refresh() 
		*----------------------- Usage Section --------------------------
		*)  Description: 
		*)

		*   Scope:      Public
		*   Parameters: 
		*$  Usage:      
		*$              
		*   Returns:  
		*--------------------- Maintenance Section ----------------------
		*   Change Log:
		*       CREATED 	09/01/2005 - NN 
		*		MODIFIED
		*----------------------------------------------------------------
		NODEFAULT
		this.FileIcon.Picture = curFiles.cIcon_File
	ENDPROC


ENDDEFINE
*
*-- EndDefine: frmfileselector
**************************************************
If it's not broken, fix it until it is.


My Blog
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform