ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Comment utiliser l'activex Microsoft Outline control pour montrer le contenu d'un dossier.   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 08 - ActiveX - (OLE)

Comment utiliser l'activex Microsoft Outline control pour montrer le contenu d'un dossier.
# 0000000057
ajouté le 16/11/2004 12:22:12 et modifié le 29/03/2006
consulté 8299 fois
Niveau initié

Version(s) Foxpro :
VFP 7.0

Description

Voici un moyen différent de montrer le contenu d'un dossier (au lieu d'un listbox), avec l'activex Microsoft

Outline Control. Le fichier requis est 'MSOutl32.OCX', qui s'intalle avec Visual Studio (.Net).

Code source :
Public oform1
oform1=createobject("form1")
oform1.AddObject("oleOut","out")
oform1.Show
Return
Define Class form1 As Form
    Height = 352
    Width = 433
    DoCreate = .T.
    AutoCenter = .T.
    Caption = "Demo dossier"
    AlwaysOnTop = .T.
    Name = "Form1"
    Add Object text1 As TextBox With ;
        Height = 25, ;
        Left = 12, ;
        Top = 312, ;
        Width = 265, ;
        BackColor = Rgb(192,192,192), ;
        Name = "Text1"
    Add Object command1 As CommandButton With ;
        AutoSize = .T., ;
        Top = 312, ;
        Left = 288, ;
        Height = 27, ;
        Width = 88, ;
        Caption = "Chercher le dossier.", ;
        Name = "Command1"
    Procedure createarray
    Lparameters m.path, m.nlevel, m.nCount
    Local DirArr,i,nTotDir,lvl
    Store 0 To i,lvl,Cnt
    m.path = Alltrim(m.path)
    If Parameters()<2 Or Type("m.nlevel") #"N"
        lvl = 0
    Else
        lvl = m.nlevel
    Endif
    If Parameters()<2 Or Type("m.nCount") #"N"
        Cnt = 0
    Else
        Cnt = m.nCount
    Endif
    lvl = lvl + 1
    Cnt = Cnt + 1
    o = This.oleOut
    If Cnt = 1
        o.AddItem(Lower(m.path))
        o.Indent(Cnt-1)=1
    Else
        o.AddItem(Lower(m.path))
        o.Indent(Cnt-1)=m.lvl
    Endif

    Dimension DirArr[1,1]
    nTotDir=Adir(DirArr,m.path+"*.","D")
    Asort(DirArr)
    For i = 1 To m.nTotDir
        If DirArr[m.i,1] != '.' And DirArr[m.i,1] != '..' And Atc('D',DirArr[m.i,5])#0
            This.createarray(m.path+DirArr[m.i,1]+'\', m.lvl, m.cnt)
        Endif
    Endfor
Endproc
    Procedure command1.Click
    Local cDir
    If Thisform.oleOut.Object.ListCount > 0
        Thisform.oleOut.RemoveItem(0)
    Endif
    cDir = Getdir()
    If Empty(m.cDir)
        Return
    Else
        Thisform.text1.Value = m.cDir
    Endif
    If Thisform.oleOut.Object.ListCount>0
        Thisform.cleanuP()
    Endif
    Thisform.createarray(m.cDir)
Endproc
Enddefine
Define Class out As OleControl
    Top = 24
    Left = 24
    Height = 193
    Width = 289
    Visible = .T.
    OleClass='msoutl.outline'
Enddefine


Mike Gagnon
Commentaires
Aucun commentaire enregistré ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3