Español
Fuente/ Codesnippets

Eines Füllen Laufwerkes Treeview Verzeichnisbaum

 
- Página 1 -



Nico
Madysa

 $H Windows.ph
 $H Messages.ph
 $I controls.prf
3 + 4 + 8

proc Add_Dir

    parámetros pfad$ , rang% , p&
    declarar i%[14] , nextdir$

    if (rang% < 0)

        p& = TV_AddItem(tv&,0,2,2,Laufwerk  + pfad$ + \,i#[t%])
        inc rang%
        inc t%

    endif

    ClearList
    ClearList lb&[rang%]
    AddFiles pfad$ + \*

    whileloop 0 , %GetCount

        Match$(^~[.+~]$,ListBoxItem$(&bucle))

        if %MatchPos >= 0

            AddStrings(lb&[rang%],$Match)

        endif

    EndWhile

    DeleteString(lb&[rang%],Seleccione String(lb&[rang%],(-1),[.]))
    DeleteString(lb&[rang%],Seleccione String(lb&[rang%],(-1),[..]))
    ClearList
    MoveHandleToList(lb&[rang%])
    clear i%[rang%]

    mientras que i%[rang%] < (GetCount(lb&[rang%]))

        nextdir$ = GetString$(lb&[rang%],i%[rang%])
        nextdir$ = Mid$(nextdir$,2,len(nextdir$) - 2)
        TV_AddItem(tv&,p&,0,1,nextdir$,i#[t%])
        inc t%

        if rang% < 14

            Add_Dir (pfad$ + \ + nextdir$) , (rang% + 1) , i#[t% - 1].hItem&

        endif

        i%[rang%] = i%[rang%] + 1

    wend

ENDPROC

proc final

    FreeDLL shl&
    il#.Destroy()
    Disponer il#
    Disponer i#[]
    end

ENDPROC

declarar il# , tv& , tx& , shl& , i#[1999] , lb&[14] , t%
Dim i#[] , TV_Item
shl& = UseDll(SHELL32)
cls SysColor(15)
Título de la ventana Bitte warten, erstelle Verzeichnisbaum...

whileloop 15

    lb&[&bucle - 1] = Crear(ListBox,%hWnd,1,0,0,0,0)

EndWhile

il# = New(ImageList)
il#.AddImage($SysPath + \Shell32.dll,3)
il#.AddImage($SysPath + \Shell32.dll,4)
il#.AddImage($SysPath + \Shell32.dll,8)
tv& = Crear(Treeview,%hWnd,il#.hList&,5,5,200,400)
Add_Dir C: , (-1) , 0 <-- hier el Laufwerksbuchstaben/Anfangspfad eingeben; al Ende darf kein Backslash posición
TV_Expand tv& , i#[0].hItem&
SetText %hWnd , str$(t%) +  Einträge en el Treeview

whilenot IsKey(27)

    waitinput

wend

Beenden
end

Mit diesem Code se una Treeview producido y por Rekursion (bin Yo stolz, dass Yo el hinbekommen habe! ) con allen Verzeichnissen una unidad de gefüllt. Leider es el muy umständlich y dauert bastante largo. Daher Yo zwei Fragen:
1.) Como viele Einträge enthält el Treeview en euch máximo? (Steht después de el Laden en el Titelleiste) Mir es por lo tanto, a wissen, si el Handles reichen.
2.) Gibt no irgendeinen einfacheren Weg? In el Win32.hlp Yo nichts gefunden y Ensamblador saber Yo mich sonderlich de. Könnte al así beschleunigen?

14 kB
Kurzbeschreibung: El benötigte Incluir
Hochgeladen:25.04.2007
Ladeanzahl187
Descargar
 
Nico Madysa
25.04.2007  
 



 
- Página 2 -



GDL
En me funzt lo auch.

289 kB
Hochgeladen:26.04.2007
Ladeanzahl183
Descargar
 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.04.2007  
 



Leg simplemente Laufwerke a Horst!

Start → Ausführen → %comspec% [enter] subst /? [enter]
 
26.04.2007  
 




Jörg
Sellmeyer
¡Hola Horst,
Usted puede el sí selber con cualquier vielen Laufwerken einrichten.
Einfach bajo Start -> Ausführen así oft Subst M: C:Windows eingeben a Usted entweder genügend hast oder el Limit de 26 erreicht es. Natürlich muß el Laufwerksbuchstabe siempre una otro y una freies Laufwerk ser. Usted puede auch otro Ordner como virtuelles Laufwerk nehmen aber el muß no ser.

Ok, IF war más rápido
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
26.04.2007  
 



@ IF + Jörg
OK - y cómo bekomme Yo el Laufwerke otra vez weg ?
 
26.04.2007  
 




Jörg
Sellmeyer
Subst /D M:
Nach una Neustart son aber sowieso todos otra vez weg.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
26.04.2007  
 



Gracias
Funktioniert
Siehe Bild

124 kB
Hochgeladen:26.04.2007
Ladeanzahl189
Descargar
 
26.04.2007  
 




Nico
Madysa
OK, primero danke para el vielen Respuesta.
Den Tip con el Laden el Ordner si nötig es, voluntad I cada Fall umsetzen (como me ya así viele Personas dazu geraten haben )
AddFiles.dll y el Message voluntad Yo en cada Fall auch ansehen.

Der Fehler Das Element no existe. es simplemente a erklären: Der Code füllt el Element-Handles des Treeviews en una Array, el Yo vorläufig en 2000 Handles begrenzt habe, aber el es sí todavía erweiterbar. Der zweite Fehler Yo no soy erklärbar; por el Abfangen de rang% debería el maximale Rekursionstiefe eigentlich no überschritten voluntad. Aber si yo el Ordner sólo a Laufzeit lade, hätte se el problema sowieso hecho.

@Franco: Como komme Yo a el Handle el Sistema-Imagelist? Ohne el komm Yo más schlecht a el Liste heran.
 
Nico Madysa
27.04.2007  
 



So como yo beim Überfliegen gesehen habe podría rang% no siempre el deseado Zweck erfüllen. Besser en solchen Rekursionsgeschichten podría folgendes ser:
KompilierenMarcaSeparación
27.04.2007  
 



 
- Página 3 -



Nico
Madysa
Yo habe con uno globalen Variables no Problemas, es schließlich mein eigener Code.
 
Nico Madysa
27.04.2007  
 



@Nico


@Franco: Como komme Yo a el Handle el Sistema-Imagelist? Ohne el komm Yo más schlecht a el Liste heran.


Franco es anscheinend no como - geb Yo Usted sólo Auskunft:
Guck doch veces en el LISTVIEW-Ayuda bajo CreateImageList(F,B) después de - como es alles weitere
 
27.04.2007  
 




Frank
Abbing
Nico wills doch sin Dll hacer...

Geht en API SHGetFileInfo(), Nico. Como bekommst du una Pointer en una Kopie el SystemImageList. Ein Pointer el Original va auch, aber sólo encima zwei undokumentierte APIs de el SHELL32. Das lass bleiben. El Kopie enthält auch fast todos Icons.
 
27.04.2007  
 




Nico
Madysa
Alles klar, danke. Yo ahora de paso o ne- neue Concepto, el Wahl no a el ChooseDir- pero a el LoadFile-Diálogo anzulehnen, sprich, eijn Listview, en lugar de una Treeview redactar. Dann dauert auch el Laden no así lang.
 
Nico Madysa
02.05.2007  
 




Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

20.770 Views

Untitledvor 0 min.
Gast.081525.12.2024
Member 862464125.04.2024
Uwe Lang02.07.2023
H.Brill30.01.2021
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie