Grafische Oberfläche mit DatenbankSystem (SpieleKatalog)

Anfängerfragen zum Programmieren mit PureBasic.
Little John

Beitrag von Little John »

DrFalo hat geschrieben:
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:
Braucht er nicht nur nicht, sollte er sogar nicht, da das -- außer in einzelnen begründeten Ausnahmefällen -- den Nutzen von Enumeration ad absurdum führt (von der Lesbarkeit gar nicht zu reden).

Gruß, Little John
Schongewusst99
Beiträge: 9
Registriert: 25.07.2009 16:03

Beitrag von Schongewusst99 »

Und weg sind sie^^.
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 »

Schongewusst99 hat geschrieben:Und weg sind sie^^.
Vernünftig einrücken, Images auch enummerieren und dann wirds langsam:

Code: Alles auswählen

;--Start--;
IncludeFile "database.pb"
;--Globales--;
Global Inhalt.s
;------------------------------
;----Aufzählungen Constants----;
;--Windows--;
Enumeration
  #Window_Startseite
EndEnumeration
;--Gadgets--;
Enumeration
  #Image_0
  #Image_1
  #Frame_0
  #Gadget_Inhalt
EndEnumeration
;--Images--;
Enumeration 
  #imgCover
  #imgUSK
EndEnumeration
;------------------------------
;--Plugins--;
UseJPEGImageDecoder()
;------------------------------
;--Images Fangen--;
CatchImage(#imgCover, ?Image0)
CatchImage(#imgUSK, ?Image1)
;------------------------------
;--ImagePfade--;
;-USK18
DataSection
  Image1:
  IncludeBinary "..\338.jpg"
EndDataSection
;-Cover
DataSection
  Image0:
  IncludeBinary "..\farcry2.jpg"
EndDataSection
;------------------------------
;------------------------------
;------------------------------
;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
;------------------------------
;------------------------------
;------------------------------
:wink:
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 »

@ts-soft
Hm ja gut danke, hätt ich auch selbst gemacht. Jetzt darf ich mich wieder umorientieren was die einrückung betrifft. Aber das is nicht das Problem denk ich. DANKE.

@topic
Aber eine Sache steht noch aus. Die Bilder sind noch nicht dynamisch, denn IncludeBinary läßt keine Strings zu. Was mach ich da am besten?

Und ich habe etwas gegoogelt:
http://purebasic.fr/german/viewtopic.ph ... c8bcf82f4c
Dort wird in erster Linie von einem Absatz geredet. Aber könnte mir das auch helfen?
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 »

Schongewusst99 hat geschrieben: @topic
Aber eine Sache steht noch aus. Die Bilder sind noch nicht dynamisch, denn IncludeBinary läßt keine Strings zu. Was mach ich da am besten?
Kannste mal bitte erklären, was Du mit dynamisch meinst?
LoadImage?
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 »

Mit dynamisch meine ich nichts anderes als Das fenster bleibt aber auf eine Aktion ändert sich der Inhalt.
Ich habe z.B. eine Structure angelegt in der ich für farcry2 den Imagepfad für die USK abspeicher. diesen möchte ich aber verändern.
ich könnte jetzt z.B. nicht den Code so schreiben:

Code: Alles auswählen

DataSection
  Image1:
  IncludeBinary farcry2\usk
EndDataSection
Allerdings wäre das hilfreich.
Damit ich nicht für jedes Game was ich einfügen möchte eine neue Page proggen muss. Für den GameContent hab ich das denke ich ganz flott geschafft.

Ich such noch mal gründlich nach der schon "funktionierenden" Oberfläche.
Ich bin keine kreative Signatur!
Bild
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Wieso für jedes Game eine neues Fenster proggen?
Ändere doch einfach den Inhalt der Gadgets mit SetGadgetAttribute() und SetGadgetText()...
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

und die eigentlichen Daten wie die Bilder , Texte und Informationen solltest du in einer Datenbank ablegen,
oder in einer selbstgemachten Tabelle und die in eine LinkedList laden.

die dynamischen Daten sollten auf Platte sein und zur Laufzeit geladen werden.

IncludeBinary ist nur für Content, den du direkt innerhalb der EXE mitliefern willst, wie zum Beispiel die Männeken in nem Game,
und selbst dann ist es nur eine Alternative, auch dort kann man zur Laufzeit laden.
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 »

@volti,
ebend NICHT immer wieder ein neues Fenster.
Aber dein Lösungsvorschlag klingt interessant. Kannst du den evtl. noch etwas erläutern?

@Kaeru Gaman
in meinem First Post update ich meinen code mitlerweile hab ich auch mich daran versucht!
Zuletzt geändert von Schongewusst99 am 25.07.2009 23:20, insgesamt 2-mal geändert.
Ich bin keine kreative Signatur!
Bild
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Ich habe auch nie behauptet, dass man ein neues Fenster öffnen muss. <)

Du kannst den Inhalt von Gadgets ändern(siehe PB-Hilfe zu den einzelnen Gadgets). Das geht mit den Befehlen SetGadgetAttribute() und SetGadgetText(). So veränderst du immer nur den Inhalt der Gadgets, den du vorher irgendwo gespeichert hast(Am besten wie Kaeru sagte in einer Datenbank) und musst nicht für jedes Spiel das Fenster neu proggen. :wink:
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Antworten