Grafische Oberfläche mit DatenbankSystem (SpieleKatalog)

Anfängerfragen zum Programmieren mit PureBasic.
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Grafische Oberfläche mit DatenbankSystem (SpieleKatalog)

Beitrag von Schongewusst99 »

Hi Leutz,
Ich bin sehr sehr neu in Sachen PureBasic. Meine Freunde programmieren allerdigns schon fleißig PureBasic und ich hab mir sagen lassen die Sprache sei einfach zu lernen. Erste Erfolge konnte ich auch schon verbuchen und mich hats jetzt offiziell gepackt. Ich konnte mal C## muss aber sagen mittlerweile bin ich so eingerpostet das C## für mich nichts mehr taugt.

Ich hatte mal Eine Oberfläche programmiert diese ist mir abhanden gekommen. Die Funktionalität war soweit in Ordnung aber ab 15 Spielen wurde diese so elendich langsam, sodass ich sie nicht mehr benutzen konnte.
Dort hatte ich Seite für Seite bearbeitet und mit einander "verlinkt".

Das möchte ich nun anders machen. Meine vorstellung der "Datenbank"-Datei werde ich später noch erläutern.

Ich hoffe ihr könnt mir jetzt schon ein bisschen helfen.

Mein Fortschritt bis jetzt:
Gamez.pb

Code: Alles auswählen

;--Start--;
IncludeFile "database.pb"
;------------------------------
;----Aufzählungen Constants----;
;--Windows--;
Enumeration
  #Window_Startseite
EndEnumeration
;--Gadgets--;
Enumeration
  #Image_0
  #Image_1
  #Frame_0
  #Gadget_Inhalt
  #Directoryname
EndEnumeration
;--Images--;
Enumeration
  #imgCover
  #imgUSK
EndEnumeration
;------------------------------
;--Plugins--;
UseJPEGImageDecoder()
;------------------------------
;--Images Laden--;
LoadImage(#Image_0, farcry2\cover)
LoadImage(#Image_1, farcry2\usk)
;------------------------------
;------------------------------
;------------------------------
;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)
Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_CloseWindow
    Quit = 1
  EndIf
Until Quit = 1
;------------------------------
;------------------------------
;------------------------------
Database.pb

Code: Alles auswählen

;--Start--;
Structure game
gamecontent.s
usk.s
cover.s
EndStructure
;--Games
farcry2.game
;--Inhalt
farcry2\gamecontent = "(...)"
farcry2\usk = "..\338.jpg"
farcry2\cover = "..\farcry2.jpg"
[Update 2.]Wie könnte ich Absätze vom TextGadget ausgeben lassen?
[Update 3.]IncludeBinary ist ersetzt durch LoadImage.
Zuletzt geändert von Schongewusst99 am 26.07.2009 16:52, insgesamt 13-mal geändert.
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Code: Alles auswählen

;-Aufzählungen Constants
Enumeration ;Startet mit 0
#Image_0 ; = 0
#Gadget_inhalt
EndEnumeration
...

Code: Alles auswählen

    ImageGadget(#Image_0, 10, 10, 520, 700, Cover)   ;Image_0 =0
    Frame3DGadget(0, 540, 20, 250, 250, "Game Content") 
2 Gadgets haben die gleiche ID nämlich 0.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Willkommen an Board!

... um dieses Problem zu vermeiden, solltest du alle Gadgets mit Konstanten benamsen
und diese in derselben Enumeration erzeugen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Beitrag von Schongewusst99 »

@Kaeru Gaman,
Wie ist das jetzt gemeint? Ich habe jetzt in der Aufzählung einfach hinter Image_0 = 1 ergänzt


Supi danke^^
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Schongewusst99 hat geschrieben:@Kaeru Gaman,
Wie ist das jetzt gemeint? Ich habe jetzt in der Aufzählung einfach hinter Image_0 = 1 ergänzt


Supi danke^^
Zum Bleistift so:

Code: Alles auswählen

Enumeration    ; <- Damit Kaeru ruhig schlafen kann. ;-)
  #Window_0
EndEnumeration

Enumeration
  #Image_0
  #Image_1
  #Frame3DGadget_0
  #Gadget_inhalt
EndEnumeration
Und dann:

Code: Alles auswählen

if OpenWindow(#Window_0,0,0,800,800,"Gamez",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) = 0 
und:

Code: Alles auswählen

Frame3DGadget(#Frame3DGadget_0, 540, 20, 250, 250, "Game Content") 
Zuletzt geändert von rolaf am 25.07.2009 19:48, insgesamt 4-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

argl nein!

Code: Alles auswählen

Enumeration
#Image_0
#Image_1
#Frame_0
#Gadget_inhalt
EndEnumeration 

Code: Alles auswählen

    ImageGadget(#Image_0, 10, 10, 520, 700, Cover)   
    ImageGadget(#Image_1, 620, 270, 80, 80, USK)
    Frame3DGadget(#Frame_0, 535, 5, 255, 250, "Game Content")
    TextGadget(#Gadget_inhalt, 540, 20, 245, 250, Inhalt.s) 
... und die Fenster gehören nicht mit in die selbe Enumeration!eins!elf!verdori!

PS:
ahja.. hast ja noch den Frame ergänzt. Darum gings ja, der muss mit in die Enum.
aber die Fenster sollten ihre eigene Enum bekommen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

* aber es hat nix mit dem thema zu tun "warum geht das gadget nicht"...

* und es ist ein falscher ratschlag.

* und es war das einzige, was in deinem posting drinstand, den frame hattest du noch nicht drin als ich geantwortet hab.

* und ja sorry, ich brauch immer drei minuten um mich wieder abzuregen,
und ich hatte grad auf Heise ein paar Ignoranten als "Braunes Gesocks" bezeichnet und Max Liebermann zitiert, da ist der Puls doch etwas oben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Beitrag von Schongewusst99 »

Jetzt hab ichs begriffen!
Jede ID kann ich mit ner Constant gleich setzten wenn ich vorher eine definiere.
[Erster Post Upgedatet]
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 »

So wird da ein Schuh draus:

Code: Alles auswählen

;--Start--;
;--Globales--;
Global Inhalt.s
;------------------------------
;--Aufzählungen Constants--;
Enumeration
  #Image_0
  #Image_1
  #Frame_0
  #Gadget_inhalt
EndEnumeration
Eine weitere Enumeration für die Bilder (nicht BilderGadget) wäre auch
sinnvoll. Einfach mal in die Hilfe gucken
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
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Schongewusst99 hat geschrieben:Jetzt hab ichs begriffen!
Jede ID kann ich mit ner Constant gleich setzten wenn ich vorher eine definiere.
Dabei brauchst du aber nicht = 1 , = 2 , = 3, etc. dahintersetzen, die werden automatisch nummeriert, wie es ts gezeigt hat. Was für ne Nummer die bekommen kannst du glatt vergessen, du hast ja die Konstante dafür. :wink:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten