oForm = CREATEOBJECT("Form1") oForm.Show() READ EVENTS ************************************************** *-- Form: form1 (d:\all_zapl\test.scx) *-- ParentClass: form *-- BaseClass: form *-- Time Stamp: 09/19/05 01:16:07 PM * DEFINE CLASS form1 AS form Top = 0 Left = 0 Height = 620 Width = 635 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT olecontrol1 AS olecontrol WITH ; Top = 26, ; Left = 16, ; Height = 390, ; Width = 308, ; OleClass = "MSComctlLib.TreeCtrl.2",; Name = "Olecontrol1" ADD OBJECT grid1 AS grid WITH ; ColumnCount = 1, ; Height = 193, ; Left = 13, ; Panel = 1, ; Top = 423, ; Width = 437, ; Name = "Grid1", ; Column1.Width = 397, ; Column1.Name = "Column1" ADD OBJECT list1 AS listbox WITH ; Height = 390, ; Left = 336, ; Top = 26, ; Width = 284, ; Name = "List1" ADD OBJECT command1 AS commandbutton WITH ; Top = 433, ; Left = 467, ; Height = 27, ; Width = 84, ; Caption = "Get folder", ; Name = "Command1" PROCEDURE shellexec LPARAMETERS lcFileName IF .NOT. EMPTY(lcFileName) .AND. NOT EMPTY(SYS(2000,lcFileName)) DECLARE INTEGER ShellExecute IN SHELL32.DLL INTEGER nWinHandle,; STRING cOperation,; STRING cFileName,; STRING cParameters,; STRING cDirectory,; INTEGER nShowWindow result = ShellExecute(0, 'Open', ALLTRIM(lcFileName) , '', '', 1) DO CASE CASE result == 0 && The system is out of memory or resources. msg = "The system is out of memory or resources" CASE result == 2 && Bad Association (for example, invalid URL) msg = "Bad Association (for example, invalid URL)" CASE result == 29 && Failure to load application msg = "Failure to load application" CASE result == 30 && Application is busy msg = "Application is busy " CASE result == 31 && No application association msg = "No application association for" + JUSTEXT(lcFileName)+" file types" ENDCASE IF INLIST(result, 0, 2, 29, 30, 31) MessageBox(msg, 0 + 64, "View") ENDIF ENDIF ENDPROC PROCEDURE Load CREATE CURSOR GridRowSource (FileName C(50)) ENDPROC PROCEDURE Init BINDEVENT(thisform.Grid1.Column1.Text1,"DblClick",thisform,"GridDblClick") ENDPROC PROCEDURE olecontrol1.DblClick *** ActiveX Control Event *** IF this.SelectedItem.Key # "MAINFOLDER_TREE" thisform.ShellExec(this.SelectedItem.Text) ENDIF ENDPROC PROCEDURE list1.DblClick thisform.ShellExec(this.Value) ENDPROC PROCEDURE GridDblClick thisform.ShellExec(GridRowSource.FileName) ENDPROC PROCEDURE command1.Click LOCAL lcFolderName, lnFileNum, lnCount lcFolderName = ADDBS(GETDIR([],[Open],[Select folder to open],64)) IF NOT EMPTY(lcFolderName) lnFileNum = ADIR(laFiles,lcFolderName+[*.*]) thisform.Olecontrol1.Nodes.Clear() thisform.Olecontrol1.Nodes.Add(,1,"MAINFOLDER_TREE",lcFolderName) thisform.List1.Clear() SELECT GridRowSource ZAP thisform.Grid1.Refresh() FOR lnCount = 1 TO lnFileNum thisform.Olecontrol1.Nodes.Add("MAINFOLDER_TREE",4,TRANSFORM(lnCount)+"_",lcFolderName + laFiles[lnCount,1]) thisform.List1.AddItem(lcFolderName +laFiles[lnCount,1]) INSERT INTO GridRowSource VALUES (lcFolderName + laFiles[lnCount,1]) NEXT thisform.List1.ListIndex = 1 SELECT GridRowSource GO TOP thisform.Olecontrol1.SelectedItem = thisform.Olecontrol1.Nodes([1_]) thisform.Refresh() ENDIF ENDPROC PROCEDURE DESTROY UNBINDEVENTS(thisform.Grid1.Column1.Text1) CLEAR EVENTS ENDPROC ENDDEFINE * *-- EndDefine: form1 **************************************************