[GELÖST] MaxGUI Menüfragen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] MaxGUI Menüfragen

BeitragSo, Sep 04, 2011 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich habe ein Problem mit der MaxGUI. Und zwar möchte ich ein Sprach-System einbauen (vorerst Englisch und Deutsch), und brauche dafür ein Menüpunkt mit untermenü. Also das man quasi auf "Extras" -> "Sprache" -> und dann Deutsch oder Englisch markieren kann (Das dann vor der Sprache ein Häckchen ist. Hoffe ihr könnt mir helfen,

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Mi, Sep 07, 2011 21:08, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragSo, Sep 04, 2011 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du eine Frage hast - bitte stelle eine! Ich hab' arge Probleme hier zu erkennen, wie man dir weiter helfen könnte, außer dich auf die Dokumentation zu verweisen, wo drin steht, wie man ein Menü erstellt.
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)

BladeRunner

Moderator

BeitragSo, Sep 04, 2011 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Createmenu, Checkmenu.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

jsp

BeitragSo, Sep 04, 2011 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfaches Beispiel:

Code: [AUSKLAPPEN]
SuperStrict

Import MaxGui.Drivers

Local Window1:TGadget = CreateWindow:TGadget("Window1",403,250,382,188,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_MENU |WINDOW_STATUS |WINDOW_CLIENTCOORDS )
   Local Window1_Sprache:TGadget = CreateMenu( "Sprache" , 100 , WindowMenu( Window1:TGadget ) )
      Local Window1_Deutsch:TGadget = CreateMenu( "Deutsch" , 101 , Window1_Sprache:TGadget  )
          CheckMenu( Window1_Deutsch:TGadget )
      Local Window1_Englisch:TGadget = CreateMenu( "Englisch" , 102 , Window1_Sprache:TGadget  )
   UpdateWindowMenu( Window1:TGadget )

Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case Window1   Window1_WC( Window1:TGadget )
         End Select

      Case EVENT_MENUACTION
         Select EventSource()
            'Menu_Events for Gadget = Window1
            Case Window1_Deutsch:TGadget   Window1_Deutsch_MA( Window1:TGadget , Window1_Sprache:TGadget , Window1_Deutsch:TGadget )
            Case Window1_Englisch:TGadget   Window1_Englisch_MA( Window1:TGadget , Window1_Sprache:TGadget , Window1_Englisch:TGadget )
         End Select

   End Select
Forever

Function Window1_WC( Window:TGadget )
   DebugLog "Window Window1 wants to be closed"
   End
End Function

Function Window1_Deutsch_MA( Window:TGadget , Parent:TGadget , Menu:TGadget )
   DebugLog "Menu Deutsch was selected from Window Window1"
   If MenuChecked(Menu:TGadget) Then UncheckMenu (Menu:TGadget) Else CheckMenu (Menu:TGadget)
   UpdateWindowMenu Window
End Function

Function Window1_Englisch_MA( Window:TGadget , Parent:TGadget , Menu:TGadget )
   DebugLog "Menu Englisch was selected from Window Window1"
   If MenuChecked(Menu:TGadget) Then UncheckMenu (Menu:TGadget) Else CheckMenu (Menu:TGadget)
   UpdateWindowMenu Window
End Function
Logic Gui Professional a Gui Designer for MaxGui
 

CO2

ehemals "SirMO"

BeitragMo, Sep 05, 2011 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal danke euch, und entschuldigung, das ich jetzt erst zurückschreibe Wink

So, habe jetzt anhand von Bladerunners Vorschlag ein bisschen rumgedoktert, und da kam das raus, was auch dein Code macht, jsp (nichts desto trotz danke nochmal an dich, jsp Wink ). Das ist auch wunderbar, nur wollte ich das ganze Sprachsystem noch etwas variabler gestalten, d.h.: leichtes einfügen von neuen sprachen durch verschiebung der .lng datei in den "lang" - Ordner. Also hab ich eine suchroutine für neue Sprachen geschrieben. Nun kommt das Problem: Wenn ich nun in einer For - Next schleife die Menüpunkte unter "Sprache" definiere, kann ich keine MenüID festlegen, da ich sonst in der Hauptschleife 100 (oder mehr) neue Cases einfügen müsste, und selbst dann wäre mir der Code noch zu unvariabel. Also habe ich mir überlegt, ob man den ausgewählten Menüpunkt nicht einfach mit "GadgetItemText()" auslesen kann. Hab also nochmal eine Stunde rumprobiert, mit dem Ergebnis, das ich es nicht hinkriege. Ganz ohne Ergebnis wollte ich mich aber nicht geschlagen geben, also habe ich eine Alternative programmiert: Ich habe ein 2. Fenster definiert, und Enable dies bei Betätigung des Sprachen-Menüs. Hier kann der User dann die Sprache auswählen, etc. Leider werden aber Fenster durch DisableGadget() nicht "unsichtbar", was die ganze Geschichte ein bisschen unansehlich macht (2 Fenster, davon das jeweils Enablete Anklickbar und benutzbar, das andere nur deselektiert im Hintergrund).

So, daraus entwickeln sich folgende Fragen:
1.) Kann man den MenüTitel und nicht die MenüID auch abfragen? (D.h.: Wird die Sprache "Deutsch" ausgewählt, so soll "Deutsch" zurückgegeben werden, und nicht z.B.: 105)
2.) Wie macht man ein Fenster "unsichtbar"?

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Midimaster

BeitragMo, Sep 05, 2011 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab dir hier mal was aus meiner Standard-GUI-Umgebung rauskopiert:

BlitzMax: [AUSKLAPPEN]
' bei dieser Verwendung von Menues geht sowas:

Global Menus:Tgadget[199] , LastMenuNr%

Const MENU_FILE%=1 , MENU_START%=2 , MENU_OPTI%=3
Const MENU_RECENT%=4 , MENU_OPEN%=10
Const MENU_SUB_%=31 ' freihalten bis 131!

'start mit 5 leeren:
Menus[MENU_FILE] = CreateMenu("{{File}} ",0,WindowMenu(Window))
Menus[MENU_OPEN] = CreateMenu ("{{Open}} " , MENU_OPEN , Menus[MENU_FILE],0,0)
Menus[MENU_RECENT] = CreateMenu( "{{Languages}}..." , 0 , Menus[MENU_FILE] ,0,0)

For Local i%=0 To 4
Menus[MENU_SUB+ i] = CreateMenu( "{{free}}" , MENU_SUB+i , Menus[MENU_RECENT] ,0,0 )
Next
LastMenuNr=5
UpdateWindowMenu window
.....


'weiteres dazunehmen:
Menus[MENU_SUB+LastMenuNr] = CreateMenu( "{{free}}" , MENU_SUB+LastMenuNr , Menus[MENU_RECENT] ,0,0 )
LastMenuNr = LastMenuNr+1
UpdateWindowMenu window
......


' so könnte man abfragen:
Function MenuAction(Event%)
Select Event
Case MENU_OPEN
AllLoadingActions
Case MENU_CLOSE
StartAls 4
End Select

For Local i%=0 To 99
If Event = MENU_SUB+i
Print "Language MENU " + i + "angeklickt"
EndIf
Next
.....


Das System kommt völlig ohne Gadget-Texte aus
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

jsp

BeitragMo, Sep 05, 2011 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also habe ich mir überlegt, ob man den ausgewählten Menüpunkt nicht einfach mit "GadgetItemText()" auslesen kann.


Ein Menu ist ein TGadget also sollte GadgetText() funktionieren um den Namen zu bekommen.

Zitat:
Kann man den MenüTitel und nicht die MenüID auch abfragen? (D.h.: Wird die Sprache "Deutsch" ausgewählt, so soll "Deutsch" zurückgegeben werden, und nicht z.B.: 105)


Wie gesagt GadgetText() aber wenn der Menütitel vielleicht nicht 100% das ist was du brauchst, kannst du auch an ein TGadget also dem MenüGadget mit SetGadgetExtra() etwas anhängen z.B. deinen eigenen Text. Name könnte ja "German" sein, dein angehängter Text "Deutsch"
DasMenue:TGadget = Createmenu...
SetGadgetExtra(DasMenue,"Hier mal die Sprache Deutsch")

und später wieder abfragen mit:
Text$= String( GadgetExtra(DasMenue) ) 'casten nach string könnte ja auch ein komplexer type sein.

Zitat:
Wie macht man ein Fenster "unsichtbar"?

HideGadget(Fenster)
Logic Gui Professional a Gui Designer for MaxGui

Midimaster

BeitragMo, Sep 05, 2011 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich verstehe nicht ganz, warum du nicht die 105 und lieber den Namen willst. Bei MENU-Einträgen ist es doch gerade gewünscht, das KEINE code-Unterschiede entstehen, bloß weil der User die Sprache geändert hat.

Mit der geplanten Vorgehensweise muss du ja eben grade doch für jede Sprache bei jedem Menüpunkt ein SELECT/CASE vorhalten, damit Du die unterschiedlichen Wörter für LADEN, LOAD ,... abfängst und sie alle in die gleiche Ruotine umlenkst.

Da ist doch die 105 eine viel eindeutigere Anweisung!


Zitat:
.... Menüpunkte unter "Sprache" definiere, kann ich keine MenüID festlegen, da ich sonst in der Hauptschleife 100 (oder mehr) neue Cases einfügen müsste, und selbst ...


warum? diese Argumentation habe ich nicht verstanden. Ich glaube es ist gerade anders herum! Ich biete meine Programme immer in mehreren Sprachen an um komme mit der Verwendung von IDs gut zurecht.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

BladeRunner

Moderator

BeitragMo, Sep 05, 2011 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest deine Sprachen aus dem LanguageFile in einer TList speichern, mit dem passenden MenuitemGadget dazu, dann kannst Du alles bequem in einer For-each-Schleife auswerten.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

CO2

ehemals "SirMO"

BeitragDi, Sep 06, 2011 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Gleich nochmal danke an alle,
@ Midimaster: Zitat:
Das System kommt völlig ohne Gadget-Texte aus
Wie meinst du das? Also was wären in diesem Fall die Gadget-Texte?
Zitat:
also ich verstehe nicht ganz, warum du nicht die 105 und lieber den Namen willst
Hab mich missverständlich ausgedrückt: Das restliche Menü basiert schon auf der MenüID, nur weil das Sprachen-Menü eben variabel sein muss, hab ich mir gedacht, das ich im Sprachen-Menü eine ausnahme mache, und mit den Texten arbeite Wink .
Zitat:
warum? diese Argumentation habe ich nicht verstanden.
Weil man doch das menü über die IDs abfragt, je mehr IDs, desto mehr Cases in der Hauptschleife. Und wenn ich das dingen möglichst variabel halten will, lege ich ein Array an, mit z.b.: 100 Plätzen (deshalb die 100 Cases), welches den "lang"-Ordner durchsucht und die enthaltenen Sprachen einspeichert. Dann im Hauptmenü wird jeder Array-Platz kontrolliert, so dachte ich mir das zumindest...
@ jsp: Achso, GadgetText ließt also die Texte des Menüs aus? Ich habs die ganze zeit mit GadgetItemText versucht... Kein wunder, das nix dabei rum kam Wink - Danke für den Hinweis mit dem GadgetExtra()... Wink - Entschuldigung, das ich die Befehle nicht kenne, ich benutze das MaxGUI Tutorial von Assari, und dort stehen keine der von dir aufgeführten Befehle drin Wink (Apropos: Kennt jmd von Euch eine komplette Funktionsübersicht der MaxGUI?)
@ Bladerunner: Also auch mit Types arbeiten?

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragDi, Sep 06, 2011 1:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Kennt jmd von Euch eine komplette Funktionsübersicht der MaxGUI?
Das Modul ist geradezu beispielhaft dokumentiert!
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)

BladeRunner

Moderator

BeitragDi, Sep 06, 2011 6:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
@ Bladerunner: Also auch mit Types arbeiten?

Darauf läuft es hinaus, wobei ein simpler Containertype ja schon reichen würde.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Midimaster

BeitragDi, Sep 06, 2011 9:00
Antworten mit Zitat
Benutzer-Profile anzeigen
zu CO2:Zitat:
....lege ich ein Array an, mit z.b.: 100 Plätzen (deshalb die 100 Cases), welches den "lang"-Ordner durchsucht und die enthaltenen Sprachen einspeichert. Dann im Hauptmenü wird jeder Array-Platz kontrolliert,...


genau... aber du weißt ja nicht ,welche Sprache irgendwer in den .lang-Ordner reingelegt hat. von daher kannst Du nicht mit deren Namen als "CASEs" im Programm arbeiten. Die einzige Chance ist, über die IDs.

Außerdem werden ja auch alle Sprachen "gleich" behandelt. Wenn der User eine Sprache anklickt, ist es ja programmtechnisch völlig egal, welche das war. Hauptsache die gesamten Texte im Programm ändern sich.

Was ich mit meinem Code sagen wollte ist, dass man nicht unbedingt 100 CASEs vorbereitet haben muss. Du kannst auch ruhig in einer FOR/NEXT-Schleife den angeklickten Eintrag herausfinden:

BlitzMax: [AUSKLAPPEN]

MENU_SUB=1000
For Local i%=0 To 99
If Event = MENU_SUB+i
Print "Language MENU " + i + "angeklickt"
EndIf
Next


Du kannst ja auch die Language-IDs mit völlig absurden Nummern belegen. Etwa von 1000 bis 1100. Die IDs müssen ja nicht fortlaufend gewählt werden.

Parallell dazu betreibst du weiterhin die SELECT/CASE für alle fixen Einträge.


zu Midimaster
Zitat:
Das System kommt völlig ohne Gadget-Texte aus

Da hab ich mich ungenau ausgedrückt. Ich meinte, man braucht die Gadget-Texte dann gar nicht für programmtechnische Dinge zu verwenden. Sie sind nur, was sie sind: die reine optische Darstellung.

In einem Mehr-Sprachen-System kannst du sie auch gar nicht zur Programm-Verzweigung benutzen, da sie ja in jeder Sprache anders heißen.

Hast Du dich schon mit dem Localitzation-Teil der MaxGui beschäftigt? Das ist optimal für Sprach-Wechsel.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

CO2

ehemals "SirMO"

BeitragDi, Sep 06, 2011 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, Danke an euch,
@ Xeres: Zitat:
Das Modul ist geradezu beispielhaft dokumentiert!
- Wie öffne ich denn diese .bbdoc dateien? Ich binde das Modul mit "Import" am anfang des Codes ein, somit ist bei mir auch kein Sytax-Highlightning (zumindest beim Modul) aktiv.
@ BladeRunner: Also ganz einfach: [PSEUDOCODE] BlitzMax: [AUSKLAPPEN]
Type TLanguage
Field LangName:String
Field LangFile:String
Field LangID:Int
End Type
Oder wie?
@ Midimaster: Zitat:
Du kannst auch ruhig in einer FOR/NEXT-Schleife den angeklickten Eintrag herausfinden
- Das in verbindung mit einem Type: Fertig. Also quasi [PSEUDOCODE] BlitzMax: [AUSKLAPPEN]
'Language Type
Type TLanguage
Field LangName:String
Field LangFile:String
Field LangID:Int
End Type

Global LangList:TList = CreateList()
'Sprachenmenü erstellen
Global LangMenu:TGadget = CreateMenu("Sprache", 0, xtramenu)
Local LangDir = ReadDir("lng\")
Local CurrID:Int = 1000
Repeat
Local NewLang:TLanguage
NewLang = New TLanguage

Local Datei:String = NextFile$(LangDir)
If Datei = ""
Exit
EndIf
If FileType("lng\" + Datei) = 1
NewLang.LangName = StripAll(Datei)
NewLang.LangFile = Datei
NewLang.LangID = CurrID
ListAddLast(LangList, NewLang)
CurrID = CurrID + 1
EndIf
Forever
CloseDir LangDir

For L:TLanguage = EachIn(LangList)
CreateMenu L.LangName, L.LangID, xtramenu
Next
'Hauptschleife
Repeat
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
Exit
Case EVENT_MENUACTION 'EDIT: Zeile hinzugefügt! :D
LangMenuID = 1000
For Local i:Int = 0 To 99
If Event = LangMenuID + i
For L2:TLanguage = EachIn LangList
If LangMenuID + 1 = L2.LangID
Local selLang:TStream = WriteFile("packager.cfg")
WriteLine selLang, L2.LangFile
CloseFile selLang
EndIf
Next
EndIf
Next
End Select
Forever
End
- Oder wie ist der Aufbau?
Zitat:
Hast Du dich schon mit dem Localitzation-Teil der MaxGui beschäftigt?
- Bisher noch nicht Embarassed Ich werde es mir mal anschauen Wink

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Di, Sep 06, 2011 20:10, insgesamt 2-mal bearbeitet

Xeres

Moderator

BeitragDi, Sep 06, 2011 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Die .bbdoc Dateien sind plain text, aber öffnen tut man die gar nicht. Du führst einmal "Rebuild Documentation" aus, wenn du ein neues Modul installiert hast, und ein Druck auf F1 auf dem entsprechendem Funktionsnamen im Code sollte dich zur HTML-Dokuseite bringen.
So wie mit jedem anderen Modul auch.
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)
 

CO2

ehemals "SirMO"

BeitragDi, Sep 06, 2011 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Xeres: Danke für den Tipp, jetzt wird auch endlich gehighlighted Very Happy

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Midimaster

BeitragDi, Sep 06, 2011 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
@CO2

den Teil mit dem Einlesen der Menüeinträge verstehe ich. So finde ich es auch sehr sinnvoll.

Aber ich bin mir nicht mehr ganz sicher ,ob ich wirklich verstanden habe, was Du genau machen willst, seit ich den zweiten Teil mit dem EVENT_WINDOWCLOSE gelesen habe.

Hier scheinst Du irgendwas beim Herunterfahren des Programms speichern zu wollen? Odr möchtest Du nur erreichen, dass der Computer beim nächsten Hochfahren automatisch wieder mit der zuletzt gewählten SprachDatei startet?
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

CO2

ehemals "SirMO"

BeitragDi, Sep 06, 2011 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
seit ich den zweiten Teil mit dem EVENT_WINDOWCLOSE gelesen habe.
Ich dachte diese For - Next Schleife wird darein gepackt - so ist es für mich eigentlich am logischten, denn er kontrolliert in jedem Durchlauf der Hauptschleife Jeden einzelnen Listen-Eintrag darauf, ob dieser angeklickt wurde.
Oder habe ich mich mit der Position der For Next Schleife vertan? (Das EVENT_WINDOWCLOSE war um zu verdeutlichen, wo ich die For Next Schleife platzieren würde... Ich habe nicht vor das zu speichern, wenn das Programm beendet wird, sondern wenn die Sprache ausgewählt wird Wink )

EDIT: Sorry, mein Fehler, lese Gerade, das ich die Zeile "Case EVENT_MENUACTION" vergessen habe, wird sofort geändert! Embarassed

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group