Denkanstoß für Combobox & Verzeichnisse

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Pebender

Betreff: Denkanstoß für Combobox & Verzeichnisse

BeitragDo, Sep 08, 2011 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

in meinem Programm habe ich 8 Comboboxen, diese sollen mir während der Laufzeit die Unterverzeichnisse
aus dem Programmverzeichnis auslesen.
In den Unterverzeichnissen befinden sich verschiedene Bilder, die anschließend angezeigt werden sollen.

Im Nachhinein soll es möglich sein weitere Unterverzeichnisse, ins Programmverzeichnis zu kopieren, diese müßten ebenfalls in der Combobox aufgelistet werden.

Nun habe ich einen absoluten Hänger und finde irgendwie den Anfang nicht.

Hoffe es versteht jemand worauf ich hinaus will.

mfg Peter
BMax & MaxGUI

Xeres

Moderator

BeitragDo, Sep 08, 2011 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Für jedes Verzeichnis eine Combobox erzeugen (ReadDir), am besten in einem Array verwalten.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Midimaster

BeitragDo, Sep 08, 2011 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
do drückst dich da ein wenig ungenau aus....

sind in den combo-boxen die Dateien (...der Bilder) aufgelistet? Oder sieht man in den Comboboxen alle Unterverzeichnisse aufgelistet?

zweite frage: sollen bei neu dazukommenden Unterverzeichnissem neue Einträge in den Combo-Boxen dazukommen? Oder wirklich neue Comboboxen entstehen? wenn ja, wie willst Du die auf dem Bildschirm unterbringen?
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Pebender

BeitragFr, Sep 09, 2011 7:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

erstmal danke für eure schnelle Antworten.

@Midimaster

Sorry, das es etwas unverständlich war.

Zitat:
sind in den combo-boxen die Dateien (...der Bilder) aufgelistet? Oder sieht man in den Comboboxen alle Unterverzeichnisse aufgelistet?


in den Comboboxen sollen die Unterverzeichnisse aufgelistet werden.

Zitat:
zweite frage: sollen bei neu dazukommenden Unterverzeichnissem neue Einträge in den Combo-Boxen dazukommen? Oder wirklich neue Comboboxen entstehen? wenn ja, wie willst Du die auf dem Bildschirm unterbringen?


es sollen bei neu dazukommenden Unterverzeichnissen neue Einträge in den Comboboxen erstellt werden.
es sollen keine neue Comboboxen entstehen.

mfg Peter
BMax & MaxGUI

Midimaster

BeitragFr, Sep 09, 2011 8:05
Antworten mit Zitat
Benutzer-Profile anzeigen
noch ne frage: warum dann genau 8?

Mit FileType kannst Du die Rückwerte der ReadDir unterscheiden. Wenn FileType eine 2 liefert ist es ein Directory und gehört in die Liste aufgenommen:

BlitzMax: [AUSKLAPPEN]
SuperStrict
'********************************************
'hier Start-Dir vorgeben:

FindDir "C:/Basic" , 0

'********************************************

Function FindDir(Path$ , Tiefe%)
Local Dir% , I%, Space$ , File$
'Einlesen des Verzeichnis:
dir = ReadDir(Path)

'nur schnickschnack: Einrücken der Texte
For i=1 To tiefe*4
Space$=Space$+" "
Next


Repeat
'nächstes File abscannen
File = NextFile( dir )

'Ende ist erreicht
If File ="" Exit

'virt. File, das immer eine Instanz zurück zeigt ausschließen
If File="." Or file=".." Continue

' nachsehen, ob es sich um ein Directory handelt
If FileType(Path +"/"+ File)=2
Print Space$ + file +"/..."
' rekursiver aufruf der Funktion eine Dir-Ebene tiefer
FindDir Path + "/" + File , Tiefe+1
EndIf
Forever
CloseDir dir
End Function



Jetzt müsstest Du nur noch schreiben, wobei du den "Hänger" hast. Was ist dir nicht klar? Wie man Direcories ausliest? Wie man Comboboxen füllt? Wie man das ganze aktuell hält?

Pebender

BeitragFr, Sep 09, 2011 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

@Midimaster

erstmal vielen Dank für eure Antworten

wenn du dich noch erinnerst, versuche ich einen Terrazzosimulator zu schreiben.
Mein "Hänger" liegt an meiner Vorgehensweise, ob dies der richtige Weg ist.
Ich denke das man die Körnungen am besten so auswählt.
ich stelle mir das ungefähr so vor:
ich habe halt etliche Verzeichnisse, die den Namen und die Korngröße des jeweiligen Materials tragen.
diese sollen dann in der Combobox erscheinen
in den Verzeichnissen sind Bilder von den einzelnen Körnern(Steinchen).
Wenn ich nun ein Verzeichnis auswähle,sollen die Steinchen in ein Array geladen werden und später prozentual in einem Canvas angezeigt werden.
Man soll auch nachträglich noch Körnungen hinzufügen können.

Dachte halt es gibt einen anderen ( besseren?? ) Weg.

das mit den 8 Comboboxen hat sich vom Platz her so ergeben, und man sieht fast keinen Terrazzo, der mehr als 8 verschiedene Körnungen aufweist.

mfg Peter
BMax & MaxGUI

Pebender

BeitragSo, Sep 25, 2011 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

da ich nicht der geborene Programmierer bin, fällt mir das alles etwas schwer.
wie bekomme ich die Verzeichnisse in eine Combobox ??

Ich bin am lesen und suchen aber irgendwie..........

mfg Peter
BMax & MaxGUI

Midimaster

BeitragSo, Sep 25, 2011 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir mal die Hilfe zum Befehl ReadDir() und das dazugehörende Beispiel an. So kommt du an die Dateinamen innerhalb eines Verzeichnis.

Und dann die Hilfe zum Befehl CreateComboBox() und das dazugehörende Beispiel an. So trägst du sie in die Combo-Box ein.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Shinkiro1

ehemals "Espada"

BeitragMo, Sep 26, 2011 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht ist für dein Vorhaben ein Treeview besser geeignet?

Pebender

BeitragDi, Sep 27, 2011 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

sorry das ich mich jetzt erst melde, habe leichte Probleme mit meinem T-Net Anschluß

@Midimaster

danke, so bin ich schon dabei es zu machen.

@Shinkiro1

nein, mit den Comboboxen ist es besser.

mfg Peter
BMax & MaxGUI

Pebender

BeitragMi, Sep 28, 2011 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich habe jetzt folgendes was auch soweit funktioniert:

Code: [AUSKLAPPEN]
Verz = ReadDir("C:\VTerrazzo\")

Repeat
   Dat$ = NextFile$(Verz)
   If Dat$ = "" Then Exit
   If FileType("C:\VTerrazzo\" + Dat$) = 2 Then
      Print "Ordner:" + Dat$
 AddGadgetItem Combobox2,Dat$
AddGadgetItem Combobox3, Dat$
   'Else
      'Print "Datei:" + Dat$
   End If
Forever
CloseDir Verz


Aber wie stelle ich das an, das der Pfad nicht C:\Verzeichnis ist, sondern der Applikationspfad.
Wenn ich das mit Appdir$ mache sin die Boxen leer, irgendwie bekomm ich das nicht so richtig verschachtelt.

mfg Peter
BMax & MaxGUI

Midimaster

BeitragMi, Sep 28, 2011 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da fehlt dir sicherlich der letzte Backslash hinter dem AppDir:

BlitzMax: [AUSKLAPPEN]
AktDir$ = AppDir + "\")
Verz = ReadDir(AktDir)

Repeat
Dat$ = NextFile$(Verz)
If Dat$ = "" Then Exit
If FileType( AktDir + Dat$) = 2 Then
.....
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Pebender

BeitragDo, Sep 29, 2011 7:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

vielen Dank, ich hatte es in dieser Richtung probiert :

Code: [AUSKLAPPEN]
Verz = ReadDir(AppDir$)

Repeat
   Dat$ = NextFile$(Verz)
   If Dat$ = "" Then Exit
   If FileType( AppDir$ + Dat$) = 2 Then


Dann bekam ich eine Fehlermeldung, habe es aber auch mit und ohne Backslash probiert.
Werde es später nach der Arbeit probieren.

mfg Peter
BMax & MaxGUI

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group