Grafische Oberfläche mit DatenbankSystem (SpieleKatalog)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

So wie ich das sehe, ist IncludeBinary hier vollkommen fehl am Platze.

Einen Unterordner Namens "Daten" o. ä. anlegen und je Game 2 Dateien
hinzufügen: gamename.txt und gamename.jpg

Beim Start mit ExamineDirectory durch diesen Ordner iterieren (entweder
*.txt oder *.jpg, nicht beide) und die Dateinamen ohne Extension einem
ListView, einer ComboBox oder sonstwas hinzufügen, zur Auswahl.

Wenn dann was gewählt wird, an dem Namen nur noch jeweils die Extension
hinzufügen und dann ins ImageGadget und StringGadget einfügen.

Das sollte man unter zur Hilfename der Hilfe alleine schaffen können!

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Beitrag von Schongewusst99 »

Ich habs mal versucht umzusetzen:

Code: Alles auswählen

If OpenWindow(#Window_Startseite, 0, 0, 800, 800, "Gamez", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
EndIf
;ImageGadget(#Image_0, 10, 10, 520, 700, ImageID(#imgCover))
;ImageGadget(#Image_1, 620, 270, 80, 80, ImageID(#imgUSK))
Frame3DGadget(#Frame_0, 535, 5, 255, 250, "Game Content")
TextGadget(#Gadget_Inhalt, 540, 20, 245, 250, farcry2\gamecontent)
  Directory$ = "..\"
  If ExamineDirectory(#Directoryname, Directory$, "*.jpg")
    While NextDirectoryEntry(#Directoryname)
      If DirectoryEntryType(#Directoryname) = #PB_DirectoryEntry_File
      EndIf
ListViewGadget(#Directoryname, 10, 10, 250, 120)
      ;SetGadgetState(#Directoryname, 9)
      AddGadgetItem (#Directoryname, -1, DirectoryEntryName(#Directoryname))
      ;Debug DirectoryEntryName(#Directoryname)
    Wend
  EndIf
Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_CloseWindow
    Quit = 1
  EndIf
Until Quit = 1
FinishDirectory(#Directoryname)
Da wird mir im Listview Gadget jetzt nur der letzte eintrag angezeigt. In meinem Fall "farcry2.jpg".
Andere Files werden nur im Debug sichtbar.
Woran liegt das jetzt?
Ich bin keine kreative Signatur!
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du erstellst ja in der Schleife jedesmal ein neues ListView :freak:
Einmal erstellen und in der Schleife nur die Werte hinzufügen!
Bei Gadget mit mehreren Einträgen meist AddGadgetItem ansonsten
SetGadgetText, SetGadgetState (ImageGadget) usw.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Beitrag von Schongewusst99 »

Code: Alles auswählen

;MEIN FENSTER--;
If OpenWindow(#Window_Startseite, 0, 0, 800, 800, "Gamez", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0
EndIf
;ImageGadget(#Image_0, 10, 10, 520, 700, ImageID(#imgCover))
;ImageGadget(#Image_1, 620, 270, 80, 80, ImageID(#imgUSK))
Frame3DGadget(#Frame_0, 535, 5, 255, 250, "Game Content")
TextGadget(#Gadget_Inhalt, 540, 20, 245, 250, farcry2\gamecontent)
ListViewGadget(#Directoryname, 10, 10, 250, 120)
  Directory$ = "..\"
  If ExamineDirectory(#Directoryname, Directory$, "*.jpg")
    While NextDirectoryEntry(#Directoryname)
      If DirectoryEntryType(#Directoryname) = #PB_DirectoryEntry_File
      EndIf
      ;SetGadgetState(#Directoryname, 9)
      AddGadgetItem (#Directoryname, -1, DirectoryEntryName(#Directoryname))
      ;Debug DirectoryEntryName(#Directoryname)
    Wend
  EndIf
Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_CloseWindow
    Quit = 1
  EndIf
Until Quit = 1
FinishDirectory(#Directoryname)
So funktionierts. -.- danke

[Edit Firstpost]
Ich bin keine kreative Signatur!
Bild
Antworten